aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_ksc6.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_ksc6.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_ksc6.x307764
1 files changed, 307764 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_ksc6.x b/final/ABI-Testsuite/test/s2_6/T_ksc6.x
new file mode 100755
index 00000000..f7d14161
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_ksc6.x
@@ -0,0 +1,307764 @@
+// 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 bb60 : aa0 {
+ int b;
+ virtual void bar(); // _ZN4bb603barEv
+ virtual void foo(); // _ZN4bb603fooEv
+ ~bb60(); // tgen
+ bb60(); // tgen
+};
+//SIG(-1 bb60) C1{ BC2{ Fi} v1 v2 Fi}
+
+
+void bb60 ::bar(){vfunc_called(this, "_ZN4bb603barEv");}
+void bb60 ::foo(){vfunc_called(this, "_ZN4bb603fooEv");}
+bb60 ::~bb60(){ note_dtor("bb60", this);} // tgen
+bb60 ::bb60(){ note_ctor("bb60", this);} // tgen
+
+static void Test_bb60()
+{
+ extern Class_Descriptor cd_bb60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb60, buf);
+ bb60 *dp, &lv = *(dp=new (buf) bb60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb60)");
+ check_base_class_offset(lv, (aa0*), ABISELECT(8,4), "bb60");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb60.b");
+ test_class_info(&lv, &cd_bb60);
+ dp->~bb60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb60(Test_bb60, "bb60", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb60C1Ev();
+extern void _ZN4bb60D1Ev();
+Name_Map name_map_bb60[] = {
+ NSPAIR(_ZN4bb60C1Ev),
+ NSPAIR(_ZN4bb60D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb60[] = {
+ // 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 _ZTI4bb60[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_bb60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb60[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+Class_Descriptor cd_bb60 = { "bb60", // class name
+ bases_bb60, 1,
+ &(vtc_bb60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb60),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb60),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 cc060 : bb60 {
+ int c;
+ ~cc060(); // tgen
+ cc060(); // tgen
+};
+//SIG(-1 cc060) C1{ BC2{ BC3{ Fi} v1 v2 Fi} Fi}
+
+
+cc060 ::~cc060(){ note_dtor("cc060", this);} // tgen
+cc060 ::cc060(){ note_ctor("cc060", this);} // tgen
+
+static void Test_cc060()
+{
+ extern Class_Descriptor cd_cc060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc060, buf);
+ cc060 *dp, &lv = *(dp=new (buf) cc060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc060)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(8,4), "cc060");
+ check_base_class_offset(lv, (bb60*), 0, "cc060");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc060.c");
+ test_class_info(&lv, &cd_cc060);
+ dp->~cc060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc060(Test_cc060, "cc060", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc060C1Ev();
+extern void _ZN5cc060D1Ev();
+Name_Map name_map_cc060[] = {
+ NSPAIR(_ZN5cc060C1Ev),
+ NSPAIR(_ZN5cc060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc060[] = {
+ // 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_bb60, 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 _ZTI5cc060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_cc060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+Class_Descriptor cd_cc060 = { "cc060", // class name
+ bases_cc060, 2,
+ &(vtc_cc060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc060),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 dd0060 : cc060 {
+ int d;
+ ~dd0060(); // tgen
+ dd0060(); // tgen
+};
+//SIG(-1 dd0060) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0060 ::~dd0060(){ note_dtor("dd0060", this);} // tgen
+dd0060 ::dd0060(){ note_ctor("dd0060", this);} // tgen
+
+static void Test_dd0060()
+{
+ extern Class_Descriptor cd_dd0060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0060, buf);
+ dd0060 *dp, &lv = *(dp=new (buf) dd0060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(8,4), "dd0060");
+ check_base_class_offset(lv, (bb60*)(cc060*), 0, "dd0060");
+ check_base_class_offset(lv, (cc060*), 0, "dd0060");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0060.d");
+ test_class_info(&lv, &cd_dd0060);
+ dp->~dd0060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0060(Test_dd0060, "dd0060", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0060C1Ev();
+extern void _ZN6dd0060D1Ev();
+Name_Map name_map_dd0060[] = {
+ NSPAIR(_ZN6dd0060C1Ev),
+ NSPAIR(_ZN6dd0060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd0060[] = {
+ // 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_bb60, 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_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd0060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+Class_Descriptor cd_dd0060 = { "dd0060", // class name
+ bases_dd0060, 3,
+ &(vtc_dd0060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0060),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 ee00060 : dd0060 {
+ int e;
+ ~ee00060(); // tgen
+ ee00060(); // tgen
+};
+//SIG(1 ee00060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00060 ::~ee00060(){ note_dtor("ee00060", this);} // tgen
+ee00060 ::ee00060(){ note_ctor("ee00060", this);} // tgen
+
+static void Test_ee00060()
+{
+ extern Class_Descriptor cd_ee00060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00060, buf);
+ ee00060 *dp, &lv = *(dp=new (buf) ee00060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(8,4), "ee00060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), 0, "ee00060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), 0, "ee00060");
+ check_base_class_offset(lv, (dd0060*), 0, "ee00060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00060.e");
+ test_class_info(&lv, &cd_ee00060);
+ dp->~ee00060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00060(Test_ee00060, "ee00060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00060C1Ev();
+extern void _ZN7ee00060D1Ev();
+Name_Map name_map_ee00060[] = {
+ NSPAIR(_ZN7ee00060C1Ev),
+ NSPAIR(_ZN7ee00060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee00060[] = {
+ // 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_bb60, 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_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee00060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00060[];
+extern VTBL_ENTRY _ZTV7ee00060[];
+Class_Descriptor cd_ee00060 = { "ee00060", // class name
+ bases_ee00060, 4,
+ &(vtc_ee00060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00060),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 ee10060 : virtual dd0060 {
+ int e;
+ ~ee10060(); // tgen
+ ee10060(); // tgen
+};
+//SIG(1 ee10060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10060 ::~ee10060(){ note_dtor("ee10060", this);} // tgen
+ee10060 ::ee10060(){ note_ctor("ee10060", this);} // tgen
+
+static void Test_ee10060()
+{
+ extern Class_Descriptor cd_ee10060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10060, buf);
+ ee10060 *dp, &lv = *(dp=new (buf) ee10060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(24,12), "ee10060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), ABISELECT(16,8), "ee10060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), ABISELECT(16,8), "ee10060");
+ check_base_class_offset(lv, (dd0060*), ABISELECT(16,8), "ee10060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10060.e");
+ test_class_info(&lv, &cd_ee10060);
+ dp->~ee10060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10060(Test_ee10060, "ee10060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10060C1Ev();
+extern void _ZN7ee10060D1Ev();
+Name_Map name_map_ee10060[] = {
+ NSPAIR(_ZN7ee10060C1Ev),
+ NSPAIR(_ZN7ee10060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee10060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 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 _ZTI7ee10060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee10060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10060[];
+static VTT_ENTRY vtt_ee10060[] = {
+ {&(_ZTV7ee10060[3]), 3,9},
+ {&(_ZTV7ee10060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10060[];
+extern VTBL_ENTRY _ZTV7ee10060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10060[];
+Class_Descriptor cd_ee10060 = { "ee10060", // class name
+ bases_ee10060, 4,
+ &(vtc_ee10060[0]), // expected_vtbl_contents
+ &(vtt_ee10060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10060),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 ee20060 : dd0060 {
+ int e;
+ virtual void foo(); // _ZN7ee200603fooEv
+ ~ee20060(); // tgen
+ ee20060(); // tgen
+};
+//SIG(1 ee20060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20060 ::foo(){vfunc_called(this, "_ZN7ee200603fooEv");}
+ee20060 ::~ee20060(){ note_dtor("ee20060", this);} // tgen
+ee20060 ::ee20060(){ note_ctor("ee20060", this);} // tgen
+
+static void Test_ee20060()
+{
+ extern Class_Descriptor cd_ee20060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20060, buf);
+ ee20060 *dp, &lv = *(dp=new (buf) ee20060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(8,4), "ee20060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), 0, "ee20060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), 0, "ee20060");
+ check_base_class_offset(lv, (dd0060*), 0, "ee20060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20060.e");
+ test_class_info(&lv, &cd_ee20060);
+ dp->~ee20060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20060(Test_ee20060, "ee20060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20060C1Ev();
+extern void _ZN7ee20060D1Ev();
+Name_Map name_map_ee20060[] = {
+ NSPAIR(_ZN7ee20060C1Ev),
+ NSPAIR(_ZN7ee20060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee20060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20060[];
+extern void _ZN4bb603barEv();
+extern void _ZN7ee200603fooEv();
+static VTBL_ENTRY vtc_ee20060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN7ee200603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20060[];
+extern VTBL_ENTRY _ZTV7ee20060[];
+Class_Descriptor cd_ee20060 = { "ee20060", // class name
+ bases_ee20060, 4,
+ &(vtc_ee20060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20060),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 ee30060 : virtual dd0060 {
+ int e;
+ virtual void foo(); // _ZN7ee300603fooEv
+ ~ee30060(); // tgen
+ ee30060(); // tgen
+};
+//SIG(1 ee30060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30060 ::foo(){vfunc_called(this, "_ZN7ee300603fooEv");}
+ee30060 ::~ee30060(){ note_dtor("ee30060", this);} // tgen
+ee30060 ::ee30060(){ note_ctor("ee30060", this);} // tgen
+
+static void Test_ee30060()
+{
+ extern Class_Descriptor cd_ee30060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30060, buf);
+ ee30060 *dp, &lv = *(dp=new (buf) ee30060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(24,12), "ee30060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), ABISELECT(16,8), "ee30060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), ABISELECT(16,8), "ee30060");
+ check_base_class_offset(lv, (dd0060*), ABISELECT(16,8), "ee30060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30060.e");
+ test_class_info(&lv, &cd_ee30060);
+ dp->~ee30060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30060(Test_ee30060, "ee30060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30060C1Ev();
+extern void _ZN7ee30060D1Ev();
+Name_Map name_map_ee30060[] = {
+ NSPAIR(_ZN7ee30060C1Ev),
+ NSPAIR(_ZN7ee30060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee30060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 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 _ZTI7ee30060[];
+extern void _ZN7ee300603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee300603fooEv,_ZTv0_n16_N7ee300603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300603fooEv,_ZThn8_N7ee300603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30060[0]),
+ (VTBL_ENTRY)&_ZN7ee300603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee300603fooEv,_ZTv0_n16_N7ee300603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30060[];
+static VTT_ENTRY vtt_ee30060[] = {
+ {&(_ZTV7ee30060[3]), 3,10},
+ {&(_ZTV7ee30060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30060[];
+extern VTBL_ENTRY _ZTV7ee30060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30060[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee300603fooEv,_ZTv0_n16_N7ee300603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300603fooEv,_ZThn8_N7ee300603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30060 = { "ee30060", // class name
+ bases_ee30060, 4,
+ &(vtc_ee30060[0]), // expected_vtbl_contents
+ &(vtt_ee30060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30060),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 ee40060 : dd0060 {
+ int e;
+ virtual void bar(); // _ZN7ee400603barEv
+ ~ee40060(); // tgen
+ ee40060(); // tgen
+};
+//SIG(1 ee40060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40060 ::bar(){vfunc_called(this, "_ZN7ee400603barEv");}
+ee40060 ::~ee40060(){ note_dtor("ee40060", this);} // tgen
+ee40060 ::ee40060(){ note_ctor("ee40060", this);} // tgen
+
+static void Test_ee40060()
+{
+ extern Class_Descriptor cd_ee40060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40060, buf);
+ ee40060 *dp, &lv = *(dp=new (buf) ee40060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(8,4), "ee40060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), 0, "ee40060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), 0, "ee40060");
+ check_base_class_offset(lv, (dd0060*), 0, "ee40060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40060.e");
+ test_class_info(&lv, &cd_ee40060);
+ dp->~ee40060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40060(Test_ee40060, "ee40060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40060C1Ev();
+extern void _ZN7ee40060D1Ev();
+Name_Map name_map_ee40060[] = {
+ NSPAIR(_ZN7ee40060C1Ev),
+ NSPAIR(_ZN7ee40060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee40060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40060[];
+extern void _ZN7ee400603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee40060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40060[0]),
+ (VTBL_ENTRY)&_ZN7ee400603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee40060[];
+extern VTBL_ENTRY _ZTV7ee40060[];
+Class_Descriptor cd_ee40060 = { "ee40060", // class name
+ bases_ee40060, 4,
+ &(vtc_ee40060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40060),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 ee50060 : virtual dd0060 {
+ int e;
+ virtual void bar(); // _ZN7ee500603barEv
+ ~ee50060(); // tgen
+ ee50060(); // tgen
+};
+//SIG(1 ee50060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50060 ::bar(){vfunc_called(this, "_ZN7ee500603barEv");}
+ee50060 ::~ee50060(){ note_dtor("ee50060", this);} // tgen
+ee50060 ::ee50060(){ note_ctor("ee50060", this);} // tgen
+
+static void Test_ee50060()
+{
+ extern Class_Descriptor cd_ee50060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50060, buf);
+ ee50060 *dp, &lv = *(dp=new (buf) ee50060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(24,12), "ee50060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), ABISELECT(16,8), "ee50060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), ABISELECT(16,8), "ee50060");
+ check_base_class_offset(lv, (dd0060*), ABISELECT(16,8), "ee50060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50060.e");
+ test_class_info(&lv, &cd_ee50060);
+ dp->~ee50060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50060(Test_ee50060, "ee50060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50060C1Ev();
+extern void _ZN7ee50060D1Ev();
+Name_Map name_map_ee50060[] = {
+ NSPAIR(_ZN7ee50060C1Ev),
+ NSPAIR(_ZN7ee50060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee50060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 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 _ZTI7ee50060[];
+extern void _ZN7ee500603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee500603barEv,_ZTv0_n12_N7ee500603barEv)();
+extern void ABISELECT(_ZThn16_N7ee500603barEv,_ZThn8_N7ee500603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee50060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50060[0]),
+ (VTBL_ENTRY)&_ZN7ee500603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee500603barEv,_ZTv0_n12_N7ee500603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50060[];
+static VTT_ENTRY vtt_ee50060[] = {
+ {&(_ZTV7ee50060[3]), 3,10},
+ {&(_ZTV7ee50060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50060[];
+extern VTBL_ENTRY _ZTV7ee50060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50060[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee500603barEv,_ZTv0_n12_N7ee500603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500603barEv,_ZThn8_N7ee500603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50060 = { "ee50060", // class name
+ bases_ee50060, 4,
+ &(vtc_ee50060[0]), // expected_vtbl_contents
+ &(vtt_ee50060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50060),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 ee60060 : dd0060 {
+ int e;
+ virtual void foo(); // _ZN7ee600603fooEv
+ virtual void bar(); // _ZN7ee600603barEv
+ ~ee60060(); // tgen
+ ee60060(); // tgen
+};
+//SIG(1 ee60060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60060 ::foo(){vfunc_called(this, "_ZN7ee600603fooEv");}
+void ee60060 ::bar(){vfunc_called(this, "_ZN7ee600603barEv");}
+ee60060 ::~ee60060(){ note_dtor("ee60060", this);} // tgen
+ee60060 ::ee60060(){ note_ctor("ee60060", this);} // tgen
+
+static void Test_ee60060()
+{
+ extern Class_Descriptor cd_ee60060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60060, buf);
+ ee60060 *dp, &lv = *(dp=new (buf) ee60060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(8,4), "ee60060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), 0, "ee60060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), 0, "ee60060");
+ check_base_class_offset(lv, (dd0060*), 0, "ee60060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60060.e");
+ test_class_info(&lv, &cd_ee60060);
+ dp->~ee60060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60060(Test_ee60060, "ee60060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60060C1Ev();
+extern void _ZN7ee60060D1Ev();
+Name_Map name_map_ee60060[] = {
+ NSPAIR(_ZN7ee60060C1Ev),
+ NSPAIR(_ZN7ee60060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee60060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60060[];
+extern void _ZN7ee600603barEv();
+extern void _ZN7ee600603fooEv();
+static VTBL_ENTRY vtc_ee60060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60060[0]),
+ (VTBL_ENTRY)&_ZN7ee600603barEv,
+ (VTBL_ENTRY)&_ZN7ee600603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee60060[];
+extern VTBL_ENTRY _ZTV7ee60060[];
+Class_Descriptor cd_ee60060 = { "ee60060", // class name
+ bases_ee60060, 4,
+ &(vtc_ee60060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60060),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 ee70060 : virtual dd0060 {
+ int e;
+ virtual void foo(); // _ZN7ee700603fooEv
+ virtual void bar(); // _ZN7ee700603barEv
+ ~ee70060(); // tgen
+ ee70060(); // tgen
+};
+//SIG(1 ee70060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70060 ::foo(){vfunc_called(this, "_ZN7ee700603fooEv");}
+void ee70060 ::bar(){vfunc_called(this, "_ZN7ee700603barEv");}
+ee70060 ::~ee70060(){ note_dtor("ee70060", this);} // tgen
+ee70060 ::ee70060(){ note_ctor("ee70060", this);} // tgen
+
+static void Test_ee70060()
+{
+ extern Class_Descriptor cd_ee70060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70060, buf);
+ ee70060 *dp, &lv = *(dp=new (buf) ee70060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd0060*), ABISELECT(24,12), "ee70060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd0060*), ABISELECT(16,8), "ee70060");
+ check_base_class_offset(lv, (cc060*)(dd0060*), ABISELECT(16,8), "ee70060");
+ check_base_class_offset(lv, (dd0060*), ABISELECT(16,8), "ee70060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70060.e");
+ test_class_info(&lv, &cd_ee70060);
+ dp->~ee70060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70060(Test_ee70060, "ee70060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70060C1Ev();
+extern void _ZN7ee70060D1Ev();
+Name_Map name_map_ee70060[] = {
+ NSPAIR(_ZN7ee70060C1Ev),
+ NSPAIR(_ZN7ee70060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd0060;
+extern VTBL_ENTRY _ZTI6dd0060[];
+extern VTBL_ENTRY _ZTV6dd0060[];
+static Base_Class bases_ee70060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0060, 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 _ZTI7ee70060[];
+extern void _ZN7ee700603fooEv();
+extern void _ZN7ee700603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700603barEv,_ZTv0_n12_N7ee700603barEv)();
+extern void ABISELECT(_ZThn16_N7ee700603barEv,_ZThn8_N7ee700603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700603fooEv,_ZTv0_n16_N7ee700603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700603fooEv,_ZThn8_N7ee700603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70060[0]),
+ (VTBL_ENTRY)&_ZN7ee700603fooEv,
+ (VTBL_ENTRY)&_ZN7ee700603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700603barEv,_ZTv0_n12_N7ee700603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700603fooEv,_ZTv0_n16_N7ee700603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70060[];
+static VTT_ENTRY vtt_ee70060[] = {
+ {&(_ZTV7ee70060[3]), 3,11},
+ {&(_ZTV7ee70060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70060[];
+extern VTBL_ENTRY _ZTV7ee70060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70060[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700603fooEv,_ZTv0_n16_N7ee700603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700603fooEv,_ZThn8_N7ee700603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700603barEv,_ZTv0_n12_N7ee700603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700603barEv,_ZThn8_N7ee700603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70060 = { "ee70060", // class name
+ bases_ee70060, 4,
+ &(vtc_ee70060[0]), // expected_vtbl_contents
+ &(vtt_ee70060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70060),2, //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 dd1060 : virtual cc060 {
+ int d;
+ ~dd1060(); // tgen
+ dd1060(); // tgen
+};
+//SIG(-1 dd1060) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1060 ::~dd1060(){ note_dtor("dd1060", this);} // tgen
+dd1060 ::dd1060(){ note_ctor("dd1060", this);} // tgen
+
+static void Test_dd1060()
+{
+ extern Class_Descriptor cd_dd1060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1060, buf);
+ dd1060 *dp, &lv = *(dp=new (buf) dd1060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,12), "dd1060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,8), "dd1060");
+ check_base_class_offset(lv, (cc060*), ABISELECT(16,8), "dd1060");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1060.d");
+ test_class_info(&lv, &cd_dd1060);
+ dp->~dd1060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1060(Test_dd1060, "dd1060", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1060C1Ev();
+extern void _ZN6dd1060D1Ev();
+Name_Map name_map_dd1060[] = {
+ NSPAIR(_ZN6dd1060C1Ev),
+ NSPAIR(_ZN6dd1060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd1060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd1060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1060[];
+static VTT_ENTRY vtt_dd1060[] = {
+ {&(_ZTV6dd1060[3]), 3,9},
+ {&(_ZTV6dd1060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+Class_Descriptor cd_dd1060 = { "dd1060", // class name
+ bases_dd1060, 3,
+ &(vtc_dd1060[0]), // expected_vtbl_contents
+ &(vtt_dd1060[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1060),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 ee01060 : dd1060 {
+ int e;
+ ~ee01060(); // tgen
+ ee01060(); // tgen
+};
+//SIG(1 ee01060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01060 ::~ee01060(){ note_dtor("ee01060", this);} // tgen
+ee01060 ::ee01060(){ note_ctor("ee01060", this);} // tgen
+
+static void Test_ee01060()
+{
+ extern Class_Descriptor cd_ee01060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01060, buf);
+ ee01060 *dp, &lv = *(dp=new (buf) ee01060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee01060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee01060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(16,12), "ee01060");
+ check_base_class_offset(lv, (dd1060*), 0, "ee01060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01060.e");
+ test_class_info(&lv, &cd_ee01060);
+ dp->~ee01060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01060(Test_ee01060, "ee01060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01060C1Ev();
+extern void _ZN7ee01060D1Ev();
+Name_Map name_map_ee01060[] = {
+ NSPAIR(_ZN7ee01060C1Ev),
+ NSPAIR(_ZN7ee01060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee01060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee01060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee01060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee01060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee01060[] = {
+ {&(_ZTV7ee01060[3]), 3,9},
+ {&(_tg__ZTV6dd1060__7ee01060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee01060[4]), 4,6},
+ {&(_ZTV7ee01060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01060[];
+extern VTBL_ENTRY _ZTV7ee01060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01060[];
+Class_Descriptor cd_ee01060 = { "ee01060", // class name
+ bases_ee01060, 4,
+ &(vtc_ee01060[0]), // expected_vtbl_contents
+ &(vtt_ee01060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01060),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 ee11060 : virtual dd1060 {
+ int e;
+ ~ee11060(); // tgen
+ ee11060(); // tgen
+};
+//SIG(1 ee11060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11060 ::~ee11060(){ note_dtor("ee11060", this);} // tgen
+ee11060 ::ee11060(){ note_ctor("ee11060", this);} // tgen
+
+static void Test_ee11060()
+{
+ extern Class_Descriptor cd_ee11060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11060, buf);
+ ee11060 *dp, &lv = *(dp=new (buf) ee11060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee11060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee11060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(32,16), "ee11060");
+ check_base_class_offset(lv, (dd1060*), ABISELECT(16,8), "ee11060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11060.e");
+ test_class_info(&lv, &cd_ee11060);
+ dp->~ee11060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11060(Test_ee11060, "ee11060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11060C1Ev();
+extern void _ZN7ee11060D1Ev();
+Name_Map name_map_ee11060[] = {
+ NSPAIR(_ZN7ee11060C1Ev),
+ NSPAIR(_ZN7ee11060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee11060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 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 _ZTI7ee11060[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee11060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11060[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11060[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee11060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee11060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee11060[] = {
+ {&(_ZTV7ee11060[4]), 4,13},
+ {&(_ZTV7ee11060[7]), 7,13},
+ {&(_ZTV7ee11060[11]), 11,13},
+ {&(_tg__ZTV6dd1060__7ee11060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee11060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11060[];
+extern VTBL_ENTRY _ZTV7ee11060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11060[];
+Class_Descriptor cd_ee11060 = { "ee11060", // class name
+ bases_ee11060, 4,
+ &(vtc_ee11060[0]), // expected_vtbl_contents
+ &(vtt_ee11060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11060),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11060),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 ee21060 : dd1060 {
+ int e;
+ virtual void foo(); // _ZN7ee210603fooEv
+ ~ee21060(); // tgen
+ ee21060(); // tgen
+};
+//SIG(1 ee21060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21060 ::foo(){vfunc_called(this, "_ZN7ee210603fooEv");}
+ee21060 ::~ee21060(){ note_dtor("ee21060", this);} // tgen
+ee21060 ::ee21060(){ note_ctor("ee21060", this);} // tgen
+
+static void Test_ee21060()
+{
+ extern Class_Descriptor cd_ee21060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21060, buf);
+ ee21060 *dp, &lv = *(dp=new (buf) ee21060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee21060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee21060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(16,12), "ee21060");
+ check_base_class_offset(lv, (dd1060*), 0, "ee21060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21060.e");
+ test_class_info(&lv, &cd_ee21060);
+ dp->~ee21060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21060(Test_ee21060, "ee21060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21060C1Ev();
+extern void _ZN7ee21060D1Ev();
+Name_Map name_map_ee21060[] = {
+ NSPAIR(_ZN7ee21060C1Ev),
+ NSPAIR(_ZN7ee21060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee21060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21060[];
+extern void _ZN7ee210603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee210603fooEv,_ZTv0_n16_N7ee210603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210603fooEv,_ZThn12_N7ee210603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21060[0]),
+ (VTBL_ENTRY)&_ZN7ee210603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee210603fooEv,_ZTv0_n16_N7ee210603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee21060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee21060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee21060[] = {
+ {&(_ZTV7ee21060[3]), 3,10},
+ {&(_tg__ZTV6dd1060__7ee21060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee21060[4]), 4,6},
+ {&(_ZTV7ee21060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21060[];
+extern VTBL_ENTRY _ZTV7ee21060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21060[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee210603fooEv,_ZTv0_n16_N7ee210603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210603fooEv,_ZThn12_N7ee210603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21060 = { "ee21060", // class name
+ bases_ee21060, 4,
+ &(vtc_ee21060[0]), // expected_vtbl_contents
+ &(vtt_ee21060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21060),4, //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 ee31060 : virtual dd1060 {
+ int e;
+ virtual void foo(); // _ZN7ee310603fooEv
+ ~ee31060(); // tgen
+ ee31060(); // tgen
+};
+//SIG(1 ee31060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31060 ::foo(){vfunc_called(this, "_ZN7ee310603fooEv");}
+ee31060 ::~ee31060(){ note_dtor("ee31060", this);} // tgen
+ee31060 ::ee31060(){ note_ctor("ee31060", this);} // tgen
+
+static void Test_ee31060()
+{
+ extern Class_Descriptor cd_ee31060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31060, buf);
+ ee31060 *dp, &lv = *(dp=new (buf) ee31060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee31060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee31060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(32,16), "ee31060");
+ check_base_class_offset(lv, (dd1060*), ABISELECT(16,8), "ee31060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31060.e");
+ test_class_info(&lv, &cd_ee31060);
+ dp->~ee31060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31060(Test_ee31060, "ee31060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31060C1Ev();
+extern void _ZN7ee31060D1Ev();
+Name_Map name_map_ee31060[] = {
+ NSPAIR(_ZN7ee31060C1Ev),
+ NSPAIR(_ZN7ee31060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee31060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 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 _ZTI7ee31060[];
+extern void _ZN7ee310603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee310603fooEv,_ZTv0_n16_N7ee310603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310603fooEv,_ZThn16_N7ee310603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31060[0]),
+ (VTBL_ENTRY)&_ZN7ee310603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31060[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee310603fooEv,_ZTv0_n16_N7ee310603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee31060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee31060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee31060[] = {
+ {&(_ZTV7ee31060[4]), 4,14},
+ {&(_ZTV7ee31060[8]), 8,14},
+ {&(_ZTV7ee31060[12]), 12,14},
+ {&(_tg__ZTV6dd1060__7ee31060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee31060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31060[];
+extern VTBL_ENTRY _ZTV7ee31060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31060[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee310603fooEv,_ZTv0_n16_N7ee310603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310603fooEv,_ZThn16_N7ee310603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31060 = { "ee31060", // class name
+ bases_ee31060, 4,
+ &(vtc_ee31060[0]), // expected_vtbl_contents
+ &(vtt_ee31060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31060),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31060),5, //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 ee41060 : dd1060 {
+ int e;
+ virtual void bar(); // _ZN7ee410603barEv
+ ~ee41060(); // tgen
+ ee41060(); // tgen
+};
+//SIG(1 ee41060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41060 ::bar(){vfunc_called(this, "_ZN7ee410603barEv");}
+ee41060 ::~ee41060(){ note_dtor("ee41060", this);} // tgen
+ee41060 ::ee41060(){ note_ctor("ee41060", this);} // tgen
+
+static void Test_ee41060()
+{
+ extern Class_Descriptor cd_ee41060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41060, buf);
+ ee41060 *dp, &lv = *(dp=new (buf) ee41060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee41060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee41060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(16,12), "ee41060");
+ check_base_class_offset(lv, (dd1060*), 0, "ee41060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41060.e");
+ test_class_info(&lv, &cd_ee41060);
+ dp->~ee41060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41060(Test_ee41060, "ee41060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41060C1Ev();
+extern void _ZN7ee41060D1Ev();
+Name_Map name_map_ee41060[] = {
+ NSPAIR(_ZN7ee41060C1Ev),
+ NSPAIR(_ZN7ee41060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee41060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41060[];
+extern void _ZN7ee410603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee410603barEv,_ZTv0_n12_N7ee410603barEv)();
+extern void ABISELECT(_ZThn16_N7ee410603barEv,_ZThn12_N7ee410603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee41060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41060[0]),
+ (VTBL_ENTRY)&_ZN7ee410603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee410603barEv,_ZTv0_n12_N7ee410603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee41060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee41060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee41060[] = {
+ {&(_ZTV7ee41060[3]), 3,10},
+ {&(_tg__ZTV6dd1060__7ee41060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee41060[4]), 4,6},
+ {&(_ZTV7ee41060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41060[];
+extern VTBL_ENTRY _ZTV7ee41060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41060[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee410603barEv,_ZTv0_n12_N7ee410603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410603barEv,_ZThn12_N7ee410603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41060 = { "ee41060", // class name
+ bases_ee41060, 4,
+ &(vtc_ee41060[0]), // expected_vtbl_contents
+ &(vtt_ee41060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41060),4, //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 ee51060 : virtual dd1060 {
+ int e;
+ virtual void bar(); // _ZN7ee510603barEv
+ ~ee51060(); // tgen
+ ee51060(); // tgen
+};
+//SIG(1 ee51060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51060 ::bar(){vfunc_called(this, "_ZN7ee510603barEv");}
+ee51060 ::~ee51060(){ note_dtor("ee51060", this);} // tgen
+ee51060 ::ee51060(){ note_ctor("ee51060", this);} // tgen
+
+static void Test_ee51060()
+{
+ extern Class_Descriptor cd_ee51060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51060, buf);
+ ee51060 *dp, &lv = *(dp=new (buf) ee51060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee51060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee51060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(32,16), "ee51060");
+ check_base_class_offset(lv, (dd1060*), ABISELECT(16,8), "ee51060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51060.e");
+ test_class_info(&lv, &cd_ee51060);
+ dp->~ee51060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51060(Test_ee51060, "ee51060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51060C1Ev();
+extern void _ZN7ee51060D1Ev();
+Name_Map name_map_ee51060[] = {
+ NSPAIR(_ZN7ee51060C1Ev),
+ NSPAIR(_ZN7ee51060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee51060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 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 _ZTI7ee51060[];
+extern void _ZN7ee510603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee510603barEv,_ZTv0_n12_N7ee510603barEv)();
+extern void ABISELECT(_ZThn32_N7ee510603barEv,_ZThn16_N7ee510603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee51060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51060[0]),
+ (VTBL_ENTRY)&_ZN7ee510603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51060[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee510603barEv,_ZTv0_n12_N7ee510603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee51060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee51060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee51060[] = {
+ {&(_ZTV7ee51060[4]), 4,14},
+ {&(_ZTV7ee51060[8]), 8,14},
+ {&(_ZTV7ee51060[12]), 12,14},
+ {&(_tg__ZTV6dd1060__7ee51060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee51060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51060[];
+extern VTBL_ENTRY _ZTV7ee51060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51060[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee510603barEv,_ZTv0_n12_N7ee510603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510603barEv,_ZThn16_N7ee510603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51060 = { "ee51060", // class name
+ bases_ee51060, 4,
+ &(vtc_ee51060[0]), // expected_vtbl_contents
+ &(vtt_ee51060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51060),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51060),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61060 : dd1060 {
+ int e;
+ virtual void foo(); // _ZN7ee610603fooEv
+ virtual void bar(); // _ZN7ee610603barEv
+ ~ee61060(); // tgen
+ ee61060(); // tgen
+};
+//SIG(1 ee61060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61060 ::foo(){vfunc_called(this, "_ZN7ee610603fooEv");}
+void ee61060 ::bar(){vfunc_called(this, "_ZN7ee610603barEv");}
+ee61060 ::~ee61060(){ note_dtor("ee61060", this);} // tgen
+ee61060 ::ee61060(){ note_ctor("ee61060", this);} // tgen
+
+static void Test_ee61060()
+{
+ extern Class_Descriptor cd_ee61060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61060, buf);
+ ee61060 *dp, &lv = *(dp=new (buf) ee61060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee61060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee61060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(16,12), "ee61060");
+ check_base_class_offset(lv, (dd1060*), 0, "ee61060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61060.e");
+ test_class_info(&lv, &cd_ee61060);
+ dp->~ee61060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61060(Test_ee61060, "ee61060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61060C1Ev();
+extern void _ZN7ee61060D1Ev();
+Name_Map name_map_ee61060[] = {
+ NSPAIR(_ZN7ee61060C1Ev),
+ NSPAIR(_ZN7ee61060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee61060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61060[];
+extern void _ZN7ee610603fooEv();
+extern void _ZN7ee610603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610603barEv,_ZTv0_n12_N7ee610603barEv)();
+extern void ABISELECT(_ZThn16_N7ee610603barEv,_ZThn12_N7ee610603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610603fooEv,_ZTv0_n16_N7ee610603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610603fooEv,_ZThn12_N7ee610603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61060[0]),
+ (VTBL_ENTRY)&_ZN7ee610603fooEv,
+ (VTBL_ENTRY)&_ZN7ee610603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610603barEv,_ZTv0_n12_N7ee610603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610603fooEv,_ZTv0_n16_N7ee610603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee61060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee61060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee61060[] = {
+ {&(_ZTV7ee61060[3]), 3,11},
+ {&(_tg__ZTV6dd1060__7ee61060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee61060[4]), 4,6},
+ {&(_ZTV7ee61060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61060[];
+extern VTBL_ENTRY _ZTV7ee61060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61060[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610603fooEv,_ZTv0_n16_N7ee610603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610603fooEv,_ZThn12_N7ee610603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610603barEv,_ZTv0_n12_N7ee610603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610603barEv,_ZThn12_N7ee610603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61060 = { "ee61060", // class name
+ bases_ee61060, 4,
+ &(vtc_ee61060[0]), // expected_vtbl_contents
+ &(vtt_ee61060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61060),4, //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 ee71060 : virtual dd1060 {
+ int e;
+ virtual void foo(); // _ZN7ee710603fooEv
+ virtual void bar(); // _ZN7ee710603barEv
+ ~ee71060(); // tgen
+ ee71060(); // tgen
+};
+//SIG(1 ee71060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71060 ::foo(){vfunc_called(this, "_ZN7ee710603fooEv");}
+void ee71060 ::bar(){vfunc_called(this, "_ZN7ee710603barEv");}
+ee71060 ::~ee71060(){ note_dtor("ee71060", this);} // tgen
+ee71060 ::ee71060(){ note_ctor("ee71060", this);} // tgen
+
+static void Test_ee71060()
+{
+ extern Class_Descriptor cd_ee71060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71060, buf);
+ ee71060 *dp, &lv = *(dp=new (buf) ee71060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee71060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee71060");
+ check_base_class_offset(lv, (cc060*)(dd1060*), ABISELECT(32,16), "ee71060");
+ check_base_class_offset(lv, (dd1060*), ABISELECT(16,8), "ee71060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71060.e");
+ test_class_info(&lv, &cd_ee71060);
+ dp->~ee71060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71060(Test_ee71060, "ee71060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71060C1Ev();
+extern void _ZN7ee71060D1Ev();
+Name_Map name_map_ee71060[] = {
+ NSPAIR(_ZN7ee71060C1Ev),
+ NSPAIR(_ZN7ee71060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd1060;
+extern VTBL_ENTRY _ZTI6dd1060[];
+extern VTBL_ENTRY _ZTV6dd1060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1060[];
+static Base_Class bases_ee71060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1060, 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 _ZTI7ee71060[];
+extern void _ZN7ee710603fooEv();
+extern void _ZN7ee710603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710603barEv,_ZTv0_n12_N7ee710603barEv)();
+extern void ABISELECT(_ZThn32_N7ee710603barEv,_ZThn16_N7ee710603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710603fooEv,_ZTv0_n16_N7ee710603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710603fooEv,_ZThn16_N7ee710603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71060[0]),
+ (VTBL_ENTRY)&_ZN7ee710603fooEv,
+ (VTBL_ENTRY)&_ZN7ee710603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71060[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710603barEv,_ZTv0_n12_N7ee710603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710603fooEv,_ZTv0_n16_N7ee710603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71060[];
+static VTBL_ENTRY _tg__ZTV6dd1060__7ee71060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd1060__7ee71060[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee71060[] = {
+ {&(_ZTV7ee71060[4]), 4,15},
+ {&(_ZTV7ee71060[9]), 9,15},
+ {&(_ZTV7ee71060[13]), 13,15},
+ {&(_tg__ZTV6dd1060__7ee71060[3]), 3,3},
+ {&(_tg__ZTV4bb605cc060__6dd1060__7ee71060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71060[];
+extern VTBL_ENTRY _ZTV7ee71060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71060[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710603fooEv,_ZTv0_n16_N7ee710603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710603fooEv,_ZThn16_N7ee710603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710603barEv,_ZTv0_n12_N7ee710603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710603barEv,_ZThn16_N7ee710603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71060 = { "ee71060", // class name
+ bases_ee71060, 4,
+ &(vtc_ee71060[0]), // expected_vtbl_contents
+ &(vtt_ee71060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71060),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71060),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2060 : cc060 {
+ int d;
+ virtual void foo(); // _ZN6dd20603fooEv
+ ~dd2060(); // tgen
+ dd2060(); // tgen
+};
+//SIG(-1 dd2060) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2060 ::foo(){vfunc_called(this, "_ZN6dd20603fooEv");}
+dd2060 ::~dd2060(){ note_dtor("dd2060", this);} // tgen
+dd2060 ::dd2060(){ note_ctor("dd2060", this);} // tgen
+
+static void Test_dd2060()
+{
+ extern Class_Descriptor cd_dd2060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2060, buf);
+ dd2060 *dp, &lv = *(dp=new (buf) dd2060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(8,4), "dd2060");
+ check_base_class_offset(lv, (bb60*)(cc060*), 0, "dd2060");
+ check_base_class_offset(lv, (cc060*), 0, "dd2060");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2060.d");
+ test_class_info(&lv, &cd_dd2060);
+ dp->~dd2060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2060(Test_dd2060, "dd2060", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2060C1Ev();
+extern void _ZN6dd2060D1Ev();
+Name_Map name_map_dd2060[] = {
+ NSPAIR(_ZN6dd2060C1Ev),
+ NSPAIR(_ZN6dd2060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd2060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2060[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd20603fooEv();
+static VTBL_ENTRY vtc_dd2060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd20603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+Class_Descriptor cd_dd2060 = { "dd2060", // class name
+ bases_dd2060, 3,
+ &(vtc_dd2060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2060),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 ee02060 : dd2060 {
+ int e;
+ ~ee02060(); // tgen
+ ee02060(); // tgen
+};
+//SIG(1 ee02060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02060 ::~ee02060(){ note_dtor("ee02060", this);} // tgen
+ee02060 ::ee02060(){ note_ctor("ee02060", this);} // tgen
+
+static void Test_ee02060()
+{
+ extern Class_Descriptor cd_ee02060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02060, buf);
+ ee02060 *dp, &lv = *(dp=new (buf) ee02060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(8,4), "ee02060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), 0, "ee02060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), 0, "ee02060");
+ check_base_class_offset(lv, (dd2060*), 0, "ee02060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02060.e");
+ test_class_info(&lv, &cd_ee02060);
+ dp->~ee02060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02060(Test_ee02060, "ee02060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02060C1Ev();
+extern void _ZN7ee02060D1Ev();
+Name_Map name_map_ee02060[] = {
+ NSPAIR(_ZN7ee02060C1Ev),
+ NSPAIR(_ZN7ee02060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee02060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, 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 _ZTI7ee02060[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd20603fooEv();
+static VTBL_ENTRY vtc_ee02060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd20603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02060[];
+extern VTBL_ENTRY _ZTV7ee02060[];
+Class_Descriptor cd_ee02060 = { "ee02060", // class name
+ bases_ee02060, 4,
+ &(vtc_ee02060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02060),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 ee12060 : virtual dd2060 {
+ int e;
+ ~ee12060(); // tgen
+ ee12060(); // tgen
+};
+//SIG(1 ee12060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12060 ::~ee12060(){ note_dtor("ee12060", this);} // tgen
+ee12060 ::ee12060(){ note_ctor("ee12060", this);} // tgen
+
+static void Test_ee12060()
+{
+ extern Class_Descriptor cd_ee12060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12060, buf);
+ ee12060 *dp, &lv = *(dp=new (buf) ee12060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(24,12), "ee12060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), ABISELECT(16,8), "ee12060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), ABISELECT(16,8), "ee12060");
+ check_base_class_offset(lv, (dd2060*), ABISELECT(16,8), "ee12060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12060.e");
+ test_class_info(&lv, &cd_ee12060);
+ dp->~ee12060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12060(Test_ee12060, "ee12060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12060C1Ev();
+extern void _ZN7ee12060D1Ev();
+Name_Map name_map_ee12060[] = {
+ NSPAIR(_ZN7ee12060C1Ev),
+ NSPAIR(_ZN7ee12060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee12060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, 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 _ZTI7ee12060[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd20603fooEv();
+static VTBL_ENTRY vtc_ee12060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd20603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12060[];
+static VTT_ENTRY vtt_ee12060[] = {
+ {&(_ZTV7ee12060[3]), 3,9},
+ {&(_ZTV7ee12060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12060[];
+extern VTBL_ENTRY _ZTV7ee12060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12060[];
+Class_Descriptor cd_ee12060 = { "ee12060", // class name
+ bases_ee12060, 4,
+ &(vtc_ee12060[0]), // expected_vtbl_contents
+ &(vtt_ee12060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12060),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 ee22060 : dd2060 {
+ int e;
+ virtual void foo(); // _ZN7ee220603fooEv
+ ~ee22060(); // tgen
+ ee22060(); // tgen
+};
+//SIG(1 ee22060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22060 ::foo(){vfunc_called(this, "_ZN7ee220603fooEv");}
+ee22060 ::~ee22060(){ note_dtor("ee22060", this);} // tgen
+ee22060 ::ee22060(){ note_ctor("ee22060", this);} // tgen
+
+static void Test_ee22060()
+{
+ extern Class_Descriptor cd_ee22060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22060, buf);
+ ee22060 *dp, &lv = *(dp=new (buf) ee22060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(8,4), "ee22060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), 0, "ee22060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), 0, "ee22060");
+ check_base_class_offset(lv, (dd2060*), 0, "ee22060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22060.e");
+ test_class_info(&lv, &cd_ee22060);
+ dp->~ee22060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22060(Test_ee22060, "ee22060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22060C1Ev();
+extern void _ZN7ee22060D1Ev();
+Name_Map name_map_ee22060[] = {
+ NSPAIR(_ZN7ee22060C1Ev),
+ NSPAIR(_ZN7ee22060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee22060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22060[];
+extern void _ZN4bb603barEv();
+extern void _ZN7ee220603fooEv();
+static VTBL_ENTRY vtc_ee22060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN7ee220603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22060[];
+extern VTBL_ENTRY _ZTV7ee22060[];
+Class_Descriptor cd_ee22060 = { "ee22060", // class name
+ bases_ee22060, 4,
+ &(vtc_ee22060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22060),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 ee32060 : virtual dd2060 {
+ int e;
+ virtual void foo(); // _ZN7ee320603fooEv
+ ~ee32060(); // tgen
+ ee32060(); // tgen
+};
+//SIG(1 ee32060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32060 ::foo(){vfunc_called(this, "_ZN7ee320603fooEv");}
+ee32060 ::~ee32060(){ note_dtor("ee32060", this);} // tgen
+ee32060 ::ee32060(){ note_ctor("ee32060", this);} // tgen
+
+static void Test_ee32060()
+{
+ extern Class_Descriptor cd_ee32060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32060, buf);
+ ee32060 *dp, &lv = *(dp=new (buf) ee32060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(24,12), "ee32060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), ABISELECT(16,8), "ee32060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), ABISELECT(16,8), "ee32060");
+ check_base_class_offset(lv, (dd2060*), ABISELECT(16,8), "ee32060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32060.e");
+ test_class_info(&lv, &cd_ee32060);
+ dp->~ee32060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32060(Test_ee32060, "ee32060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32060C1Ev();
+extern void _ZN7ee32060D1Ev();
+Name_Map name_map_ee32060[] = {
+ NSPAIR(_ZN7ee32060C1Ev),
+ NSPAIR(_ZN7ee32060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee32060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, ABISELECT(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 _ZTI7ee32060[];
+extern void _ZN7ee320603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee320603fooEv,_ZTv0_n16_N7ee320603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320603fooEv,_ZThn8_N7ee320603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32060[0]),
+ (VTBL_ENTRY)&_ZN7ee320603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee320603fooEv,_ZTv0_n16_N7ee320603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32060[];
+static VTT_ENTRY vtt_ee32060[] = {
+ {&(_ZTV7ee32060[3]), 3,10},
+ {&(_ZTV7ee32060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32060[];
+extern VTBL_ENTRY _ZTV7ee32060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32060[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee320603fooEv,_ZTv0_n16_N7ee320603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320603fooEv,_ZThn8_N7ee320603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32060 = { "ee32060", // class name
+ bases_ee32060, 4,
+ &(vtc_ee32060[0]), // expected_vtbl_contents
+ &(vtt_ee32060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32060),2, //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 ee42060 : dd2060 {
+ int e;
+ virtual void bar(); // _ZN7ee420603barEv
+ ~ee42060(); // tgen
+ ee42060(); // tgen
+};
+//SIG(1 ee42060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42060 ::bar(){vfunc_called(this, "_ZN7ee420603barEv");}
+ee42060 ::~ee42060(){ note_dtor("ee42060", this);} // tgen
+ee42060 ::ee42060(){ note_ctor("ee42060", this);} // tgen
+
+static void Test_ee42060()
+{
+ extern Class_Descriptor cd_ee42060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42060, buf);
+ ee42060 *dp, &lv = *(dp=new (buf) ee42060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(8,4), "ee42060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), 0, "ee42060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), 0, "ee42060");
+ check_base_class_offset(lv, (dd2060*), 0, "ee42060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42060.e");
+ test_class_info(&lv, &cd_ee42060);
+ dp->~ee42060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42060(Test_ee42060, "ee42060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42060C1Ev();
+extern void _ZN7ee42060D1Ev();
+Name_Map name_map_ee42060[] = {
+ NSPAIR(_ZN7ee42060C1Ev),
+ NSPAIR(_ZN7ee42060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee42060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42060[];
+extern void _ZN7ee420603barEv();
+extern void _ZN6dd20603fooEv();
+static VTBL_ENTRY vtc_ee42060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42060[0]),
+ (VTBL_ENTRY)&_ZN7ee420603barEv,
+ (VTBL_ENTRY)&_ZN6dd20603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee42060[];
+extern VTBL_ENTRY _ZTV7ee42060[];
+Class_Descriptor cd_ee42060 = { "ee42060", // class name
+ bases_ee42060, 4,
+ &(vtc_ee42060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42060),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 ee52060 : virtual dd2060 {
+ int e;
+ virtual void bar(); // _ZN7ee520603barEv
+ ~ee52060(); // tgen
+ ee52060(); // tgen
+};
+//SIG(1 ee52060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52060 ::bar(){vfunc_called(this, "_ZN7ee520603barEv");}
+ee52060 ::~ee52060(){ note_dtor("ee52060", this);} // tgen
+ee52060 ::ee52060(){ note_ctor("ee52060", this);} // tgen
+
+static void Test_ee52060()
+{
+ extern Class_Descriptor cd_ee52060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52060, buf);
+ ee52060 *dp, &lv = *(dp=new (buf) ee52060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(24,12), "ee52060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), ABISELECT(16,8), "ee52060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), ABISELECT(16,8), "ee52060");
+ check_base_class_offset(lv, (dd2060*), ABISELECT(16,8), "ee52060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52060.e");
+ test_class_info(&lv, &cd_ee52060);
+ dp->~ee52060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52060(Test_ee52060, "ee52060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52060C1Ev();
+extern void _ZN7ee52060D1Ev();
+Name_Map name_map_ee52060[] = {
+ NSPAIR(_ZN7ee52060C1Ev),
+ NSPAIR(_ZN7ee52060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee52060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, ABISELECT(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 _ZTI7ee52060[];
+extern void _ZN7ee520603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee520603barEv,_ZTv0_n12_N7ee520603barEv)();
+extern void ABISELECT(_ZThn16_N7ee520603barEv,_ZThn8_N7ee520603barEv)() __attribute__((weak));
+extern void _ZN6dd20603fooEv();
+static VTBL_ENTRY vtc_ee52060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52060[0]),
+ (VTBL_ENTRY)&_ZN7ee520603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee520603barEv,_ZTv0_n12_N7ee520603barEv),
+ (VTBL_ENTRY)&_ZN6dd20603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52060[];
+static VTT_ENTRY vtt_ee52060[] = {
+ {&(_ZTV7ee52060[3]), 3,10},
+ {&(_ZTV7ee52060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52060[];
+extern VTBL_ENTRY _ZTV7ee52060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52060[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee520603barEv,_ZTv0_n12_N7ee520603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520603barEv,_ZThn8_N7ee520603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52060 = { "ee52060", // class name
+ bases_ee52060, 4,
+ &(vtc_ee52060[0]), // expected_vtbl_contents
+ &(vtt_ee52060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52060),2, //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 ee62060 : dd2060 {
+ int e;
+ virtual void foo(); // _ZN7ee620603fooEv
+ virtual void bar(); // _ZN7ee620603barEv
+ ~ee62060(); // tgen
+ ee62060(); // tgen
+};
+//SIG(1 ee62060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62060 ::foo(){vfunc_called(this, "_ZN7ee620603fooEv");}
+void ee62060 ::bar(){vfunc_called(this, "_ZN7ee620603barEv");}
+ee62060 ::~ee62060(){ note_dtor("ee62060", this);} // tgen
+ee62060 ::ee62060(){ note_ctor("ee62060", this);} // tgen
+
+static void Test_ee62060()
+{
+ extern Class_Descriptor cd_ee62060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62060, buf);
+ ee62060 *dp, &lv = *(dp=new (buf) ee62060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(8,4), "ee62060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), 0, "ee62060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), 0, "ee62060");
+ check_base_class_offset(lv, (dd2060*), 0, "ee62060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62060.e");
+ test_class_info(&lv, &cd_ee62060);
+ dp->~ee62060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62060(Test_ee62060, "ee62060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62060C1Ev();
+extern void _ZN7ee62060D1Ev();
+Name_Map name_map_ee62060[] = {
+ NSPAIR(_ZN7ee62060C1Ev),
+ NSPAIR(_ZN7ee62060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee62060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62060[];
+extern void _ZN7ee620603barEv();
+extern void _ZN7ee620603fooEv();
+static VTBL_ENTRY vtc_ee62060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62060[0]),
+ (VTBL_ENTRY)&_ZN7ee620603barEv,
+ (VTBL_ENTRY)&_ZN7ee620603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee62060[];
+extern VTBL_ENTRY _ZTV7ee62060[];
+Class_Descriptor cd_ee62060 = { "ee62060", // class name
+ bases_ee62060, 4,
+ &(vtc_ee62060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62060),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 ee72060 : virtual dd2060 {
+ int e;
+ virtual void foo(); // _ZN7ee720603fooEv
+ virtual void bar(); // _ZN7ee720603barEv
+ ~ee72060(); // tgen
+ ee72060(); // tgen
+};
+//SIG(1 ee72060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72060 ::foo(){vfunc_called(this, "_ZN7ee720603fooEv");}
+void ee72060 ::bar(){vfunc_called(this, "_ZN7ee720603barEv");}
+ee72060 ::~ee72060(){ note_dtor("ee72060", this);} // tgen
+ee72060 ::ee72060(){ note_ctor("ee72060", this);} // tgen
+
+static void Test_ee72060()
+{
+ extern Class_Descriptor cd_ee72060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72060, buf);
+ ee72060 *dp, &lv = *(dp=new (buf) ee72060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd2060*), ABISELECT(24,12), "ee72060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd2060*), ABISELECT(16,8), "ee72060");
+ check_base_class_offset(lv, (cc060*)(dd2060*), ABISELECT(16,8), "ee72060");
+ check_base_class_offset(lv, (dd2060*), ABISELECT(16,8), "ee72060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72060.e");
+ test_class_info(&lv, &cd_ee72060);
+ dp->~ee72060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72060(Test_ee72060, "ee72060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72060C1Ev();
+extern void _ZN7ee72060D1Ev();
+Name_Map name_map_ee72060[] = {
+ NSPAIR(_ZN7ee72060C1Ev),
+ NSPAIR(_ZN7ee72060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd2060;
+extern VTBL_ENTRY _ZTI6dd2060[];
+extern VTBL_ENTRY _ZTV6dd2060[];
+static Base_Class bases_ee72060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2060, ABISELECT(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 _ZTI7ee72060[];
+extern void _ZN7ee720603fooEv();
+extern void _ZN7ee720603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720603barEv,_ZTv0_n12_N7ee720603barEv)();
+extern void ABISELECT(_ZThn16_N7ee720603barEv,_ZThn8_N7ee720603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720603fooEv,_ZTv0_n16_N7ee720603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720603fooEv,_ZThn8_N7ee720603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72060[0]),
+ (VTBL_ENTRY)&_ZN7ee720603fooEv,
+ (VTBL_ENTRY)&_ZN7ee720603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720603barEv,_ZTv0_n12_N7ee720603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720603fooEv,_ZTv0_n16_N7ee720603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72060[];
+static VTT_ENTRY vtt_ee72060[] = {
+ {&(_ZTV7ee72060[3]), 3,11},
+ {&(_ZTV7ee72060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72060[];
+extern VTBL_ENTRY _ZTV7ee72060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72060[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720603fooEv,_ZTv0_n16_N7ee720603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720603fooEv,_ZThn8_N7ee720603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720603barEv,_ZTv0_n12_N7ee720603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720603barEv,_ZThn8_N7ee720603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72060 = { "ee72060", // class name
+ bases_ee72060, 4,
+ &(vtc_ee72060[0]), // expected_vtbl_contents
+ &(vtt_ee72060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72060),2, //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 dd3060 : virtual cc060 {
+ int d;
+ virtual void foo(); // _ZN6dd30603fooEv
+ ~dd3060(); // tgen
+ dd3060(); // tgen
+};
+//SIG(-1 dd3060) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3060 ::foo(){vfunc_called(this, "_ZN6dd30603fooEv");}
+dd3060 ::~dd3060(){ note_dtor("dd3060", this);} // tgen
+dd3060 ::dd3060(){ note_ctor("dd3060", this);} // tgen
+
+static void Test_dd3060()
+{
+ extern Class_Descriptor cd_dd3060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3060, buf);
+ dd3060 *dp, &lv = *(dp=new (buf) dd3060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,12), "dd3060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,8), "dd3060");
+ check_base_class_offset(lv, (cc060*), ABISELECT(16,8), "dd3060");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3060.d");
+ test_class_info(&lv, &cd_dd3060);
+ dp->~dd3060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3060(Test_dd3060, "dd3060", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3060C1Ev();
+extern void _ZN6dd3060D1Ev();
+Name_Map name_map_dd3060[] = {
+ NSPAIR(_ZN6dd3060C1Ev),
+ NSPAIR(_ZN6dd3060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd3060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern void _ZN6dd30603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3060[];
+static VTT_ENTRY vtt_dd3060[] = {
+ {&(_ZTV6dd3060[3]), 3,10},
+ {&(_ZTV6dd3060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3060 = { "dd3060", // class name
+ bases_dd3060, 3,
+ &(vtc_dd3060[0]), // expected_vtbl_contents
+ &(vtt_dd3060[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3060),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03060 : dd3060 {
+ int e;
+ ~ee03060(); // tgen
+ ee03060(); // tgen
+};
+//SIG(1 ee03060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03060 ::~ee03060(){ note_dtor("ee03060", this);} // tgen
+ee03060 ::ee03060(){ note_ctor("ee03060", this);} // tgen
+
+static void Test_ee03060()
+{
+ extern Class_Descriptor cd_ee03060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03060, buf);
+ ee03060 *dp, &lv = *(dp=new (buf) ee03060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee03060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee03060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(16,12), "ee03060");
+ check_base_class_offset(lv, (dd3060*), 0, "ee03060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03060.e");
+ test_class_info(&lv, &cd_ee03060);
+ dp->~ee03060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03060(Test_ee03060, "ee03060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03060C1Ev();
+extern void _ZN7ee03060D1Ev();
+Name_Map name_map_ee03060[] = {
+ NSPAIR(_ZN7ee03060C1Ev),
+ NSPAIR(_ZN7ee03060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee03060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03060[];
+extern void _ZN6dd30603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee03060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee03060[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee03060[] = {
+ {&(_ZTV7ee03060[3]), 3,10},
+ {&(_tg__ZTV6dd3060__7ee03060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee03060[4]), 4,6},
+ {&(_ZTV7ee03060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03060[];
+extern VTBL_ENTRY _ZTV7ee03060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03060[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03060 = { "ee03060", // class name
+ bases_ee03060, 4,
+ &(vtc_ee03060[0]), // expected_vtbl_contents
+ &(vtt_ee03060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03060),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 ee13060 : virtual dd3060 {
+ int e;
+ ~ee13060(); // tgen
+ ee13060(); // tgen
+};
+//SIG(1 ee13060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13060 ::~ee13060(){ note_dtor("ee13060", this);} // tgen
+ee13060 ::ee13060(){ note_ctor("ee13060", this);} // tgen
+
+static void Test_ee13060()
+{
+ extern Class_Descriptor cd_ee13060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13060, buf);
+ ee13060 *dp, &lv = *(dp=new (buf) ee13060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee13060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee13060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(32,16), "ee13060");
+ check_base_class_offset(lv, (dd3060*), ABISELECT(16,8), "ee13060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13060.e");
+ test_class_info(&lv, &cd_ee13060);
+ dp->~ee13060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13060(Test_ee13060, "ee13060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13060C1Ev();
+extern void _ZN7ee13060D1Ev();
+Name_Map name_map_ee13060[] = {
+ NSPAIR(_ZN7ee13060C1Ev),
+ NSPAIR(_ZN7ee13060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee13060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, ABISELECT(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 _ZTI7ee13060[];
+extern void _ZN6dd30603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13060[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee13060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee13060[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee13060[] = {
+ {&(_ZTV7ee13060[4]), 4,15},
+ {&(_ZTV7ee13060[8]), 8,15},
+ {&(_ZTV7ee13060[13]), 13,15},
+ {&(_tg__ZTV6dd3060__7ee13060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee13060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13060[];
+extern VTBL_ENTRY _ZTV7ee13060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13060[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13060 = { "ee13060", // class name
+ bases_ee13060, 4,
+ &(vtc_ee13060[0]), // expected_vtbl_contents
+ &(vtt_ee13060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13060),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13060),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 ee23060 : dd3060 {
+ int e;
+ virtual void foo(); // _ZN7ee230603fooEv
+ ~ee23060(); // tgen
+ ee23060(); // tgen
+};
+//SIG(1 ee23060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23060 ::foo(){vfunc_called(this, "_ZN7ee230603fooEv");}
+ee23060 ::~ee23060(){ note_dtor("ee23060", this);} // tgen
+ee23060 ::ee23060(){ note_ctor("ee23060", this);} // tgen
+
+static void Test_ee23060()
+{
+ extern Class_Descriptor cd_ee23060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23060, buf);
+ ee23060 *dp, &lv = *(dp=new (buf) ee23060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee23060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee23060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(16,12), "ee23060");
+ check_base_class_offset(lv, (dd3060*), 0, "ee23060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23060.e");
+ test_class_info(&lv, &cd_ee23060);
+ dp->~ee23060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23060(Test_ee23060, "ee23060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23060C1Ev();
+extern void _ZN7ee23060D1Ev();
+Name_Map name_map_ee23060[] = {
+ NSPAIR(_ZN7ee23060C1Ev),
+ NSPAIR(_ZN7ee23060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee23060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23060[];
+extern void _ZN7ee230603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee230603fooEv,_ZTv0_n16_N7ee230603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230603fooEv,_ZThn12_N7ee230603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23060[0]),
+ (VTBL_ENTRY)&_ZN7ee230603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee230603fooEv,_ZTv0_n16_N7ee230603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee23060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee23060[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee23060[] = {
+ {&(_ZTV7ee23060[3]), 3,10},
+ {&(_tg__ZTV6dd3060__7ee23060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee23060[4]), 4,6},
+ {&(_ZTV7ee23060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23060[];
+extern VTBL_ENTRY _ZTV7ee23060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23060[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee230603fooEv,_ZTv0_n16_N7ee230603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230603fooEv,_ZThn12_N7ee230603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23060 = { "ee23060", // class name
+ bases_ee23060, 4,
+ &(vtc_ee23060[0]), // expected_vtbl_contents
+ &(vtt_ee23060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23060),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 ee33060 : virtual dd3060 {
+ int e;
+ virtual void foo(); // _ZN7ee330603fooEv
+ ~ee33060(); // tgen
+ ee33060(); // tgen
+};
+//SIG(1 ee33060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33060 ::foo(){vfunc_called(this, "_ZN7ee330603fooEv");}
+ee33060 ::~ee33060(){ note_dtor("ee33060", this);} // tgen
+ee33060 ::ee33060(){ note_ctor("ee33060", this);} // tgen
+
+static void Test_ee33060()
+{
+ extern Class_Descriptor cd_ee33060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33060, buf);
+ ee33060 *dp, &lv = *(dp=new (buf) ee33060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee33060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee33060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(32,16), "ee33060");
+ check_base_class_offset(lv, (dd3060*), ABISELECT(16,8), "ee33060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33060.e");
+ test_class_info(&lv, &cd_ee33060);
+ dp->~ee33060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33060(Test_ee33060, "ee33060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33060C1Ev();
+extern void _ZN7ee33060D1Ev();
+Name_Map name_map_ee33060[] = {
+ NSPAIR(_ZN7ee33060C1Ev),
+ NSPAIR(_ZN7ee33060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee33060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, ABISELECT(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 _ZTI7ee33060[];
+extern void _ZN7ee330603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330603fooEv,_ZTv0_n16_N7ee330603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330603fooEv,_ZThn8_N7ee330603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330603fooEv,_ZTv0_n16_N7ee330603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330603fooEv,_ZThn16_N7ee330603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33060[0]),
+ (VTBL_ENTRY)&_ZN7ee330603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330603fooEv,_ZTv0_n16_N7ee330603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330603fooEv,_ZTv0_n16_N7ee330603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee33060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee33060[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee33060[] = {
+ {&(_ZTV7ee33060[4]), 4,16},
+ {&(_ZTV7ee33060[9]), 9,16},
+ {&(_ZTV7ee33060[14]), 14,16},
+ {&(_tg__ZTV6dd3060__7ee33060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee33060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33060[];
+extern VTBL_ENTRY _ZTV7ee33060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33060[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330603fooEv,_ZTv0_n16_N7ee330603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330603fooEv,_ZThn16_N7ee330603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330603fooEv,_ZThn8_N7ee330603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33060 = { "ee33060", // class name
+ bases_ee33060, 4,
+ &(vtc_ee33060[0]), // expected_vtbl_contents
+ &(vtt_ee33060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33060),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33060),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 ee43060 : dd3060 {
+ int e;
+ virtual void bar(); // _ZN7ee430603barEv
+ ~ee43060(); // tgen
+ ee43060(); // tgen
+};
+//SIG(1 ee43060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43060 ::bar(){vfunc_called(this, "_ZN7ee430603barEv");}
+ee43060 ::~ee43060(){ note_dtor("ee43060", this);} // tgen
+ee43060 ::ee43060(){ note_ctor("ee43060", this);} // tgen
+
+static void Test_ee43060()
+{
+ extern Class_Descriptor cd_ee43060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43060, buf);
+ ee43060 *dp, &lv = *(dp=new (buf) ee43060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee43060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee43060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(16,12), "ee43060");
+ check_base_class_offset(lv, (dd3060*), 0, "ee43060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43060.e");
+ test_class_info(&lv, &cd_ee43060);
+ dp->~ee43060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43060(Test_ee43060, "ee43060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43060C1Ev();
+extern void _ZN7ee43060D1Ev();
+Name_Map name_map_ee43060[] = {
+ NSPAIR(_ZN7ee43060C1Ev),
+ NSPAIR(_ZN7ee43060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee43060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43060[];
+extern void _ZN6dd30603fooEv();
+extern void _ZN7ee430603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee430603barEv,_ZTv0_n12_N7ee430603barEv)();
+extern void ABISELECT(_ZThn16_N7ee430603barEv,_ZThn12_N7ee430603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+ (VTBL_ENTRY)&_ZN7ee430603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee430603barEv,_ZTv0_n12_N7ee430603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee43060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee43060[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee43060[] = {
+ {&(_ZTV7ee43060[3]), 3,11},
+ {&(_tg__ZTV6dd3060__7ee43060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee43060[4]), 4,6},
+ {&(_ZTV7ee43060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43060[];
+extern VTBL_ENTRY _ZTV7ee43060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43060[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee430603barEv,_ZTv0_n12_N7ee430603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430603barEv,_ZThn12_N7ee430603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43060 = { "ee43060", // class name
+ bases_ee43060, 4,
+ &(vtc_ee43060[0]), // expected_vtbl_contents
+ &(vtt_ee43060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43060),4, //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 ee53060 : virtual dd3060 {
+ int e;
+ virtual void bar(); // _ZN7ee530603barEv
+ ~ee53060(); // tgen
+ ee53060(); // tgen
+};
+//SIG(1 ee53060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53060 ::bar(){vfunc_called(this, "_ZN7ee530603barEv");}
+ee53060 ::~ee53060(){ note_dtor("ee53060", this);} // tgen
+ee53060 ::ee53060(){ note_ctor("ee53060", this);} // tgen
+
+static void Test_ee53060()
+{
+ extern Class_Descriptor cd_ee53060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53060, buf);
+ ee53060 *dp, &lv = *(dp=new (buf) ee53060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee53060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee53060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(32,16), "ee53060");
+ check_base_class_offset(lv, (dd3060*), ABISELECT(16,8), "ee53060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53060.e");
+ test_class_info(&lv, &cd_ee53060);
+ dp->~ee53060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53060(Test_ee53060, "ee53060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53060C1Ev();
+extern void _ZN7ee53060D1Ev();
+Name_Map name_map_ee53060[] = {
+ NSPAIR(_ZN7ee53060C1Ev),
+ NSPAIR(_ZN7ee53060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee53060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, ABISELECT(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 _ZTI7ee53060[];
+extern void _ZN7ee530603barEv();
+extern void _ZN6dd30603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee530603barEv,_ZTv0_n12_N7ee530603barEv)();
+extern void ABISELECT(_ZThn32_N7ee530603barEv,_ZThn16_N7ee530603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53060[0]),
+ (VTBL_ENTRY)&_ZN7ee530603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee530603barEv,_ZTv0_n12_N7ee530603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee53060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee53060[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee53060[] = {
+ {&(_ZTV7ee53060[4]), 4,16},
+ {&(_ZTV7ee53060[9]), 9,16},
+ {&(_ZTV7ee53060[14]), 14,16},
+ {&(_tg__ZTV6dd3060__7ee53060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee53060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53060[];
+extern VTBL_ENTRY _ZTV7ee53060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53060[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee530603barEv,_ZTv0_n12_N7ee530603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530603barEv,_ZThn16_N7ee530603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53060 = { "ee53060", // class name
+ bases_ee53060, 4,
+ &(vtc_ee53060[0]), // expected_vtbl_contents
+ &(vtt_ee53060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53060),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53060),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63060 : dd3060 {
+ int e;
+ virtual void foo(); // _ZN7ee630603fooEv
+ virtual void bar(); // _ZN7ee630603barEv
+ ~ee63060(); // tgen
+ ee63060(); // tgen
+};
+//SIG(1 ee63060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63060 ::foo(){vfunc_called(this, "_ZN7ee630603fooEv");}
+void ee63060 ::bar(){vfunc_called(this, "_ZN7ee630603barEv");}
+ee63060 ::~ee63060(){ note_dtor("ee63060", this);} // tgen
+ee63060 ::ee63060(){ note_ctor("ee63060", this);} // tgen
+
+static void Test_ee63060()
+{
+ extern Class_Descriptor cd_ee63060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63060, buf);
+ ee63060 *dp, &lv = *(dp=new (buf) ee63060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee63060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee63060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(16,12), "ee63060");
+ check_base_class_offset(lv, (dd3060*), 0, "ee63060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63060.e");
+ test_class_info(&lv, &cd_ee63060);
+ dp->~ee63060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63060(Test_ee63060, "ee63060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63060C1Ev();
+extern void _ZN7ee63060D1Ev();
+Name_Map name_map_ee63060[] = {
+ NSPAIR(_ZN7ee63060C1Ev),
+ NSPAIR(_ZN7ee63060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee63060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63060[];
+extern void _ZN7ee630603fooEv();
+extern void _ZN7ee630603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630603barEv,_ZTv0_n12_N7ee630603barEv)();
+extern void ABISELECT(_ZThn16_N7ee630603barEv,_ZThn12_N7ee630603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630603fooEv,_ZTv0_n16_N7ee630603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630603fooEv,_ZThn12_N7ee630603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63060[0]),
+ (VTBL_ENTRY)&_ZN7ee630603fooEv,
+ (VTBL_ENTRY)&_ZN7ee630603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630603barEv,_ZTv0_n12_N7ee630603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630603fooEv,_ZTv0_n16_N7ee630603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee63060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee63060[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee63060[] = {
+ {&(_ZTV7ee63060[3]), 3,11},
+ {&(_tg__ZTV6dd3060__7ee63060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee63060[4]), 4,6},
+ {&(_ZTV7ee63060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63060[];
+extern VTBL_ENTRY _ZTV7ee63060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63060[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn12_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630603fooEv,_ZTv0_n16_N7ee630603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630603fooEv,_ZThn12_N7ee630603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630603barEv,_ZTv0_n12_N7ee630603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630603barEv,_ZThn12_N7ee630603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63060 = { "ee63060", // class name
+ bases_ee63060, 4,
+ &(vtc_ee63060[0]), // expected_vtbl_contents
+ &(vtt_ee63060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63060),4, //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 ee73060 : virtual dd3060 {
+ int e;
+ virtual void foo(); // _ZN7ee730603fooEv
+ virtual void bar(); // _ZN7ee730603barEv
+ ~ee73060(); // tgen
+ ee73060(); // tgen
+};
+//SIG(1 ee73060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73060 ::foo(){vfunc_called(this, "_ZN7ee730603fooEv");}
+void ee73060 ::bar(){vfunc_called(this, "_ZN7ee730603barEv");}
+ee73060 ::~ee73060(){ note_dtor("ee73060", this);} // tgen
+ee73060 ::ee73060(){ note_ctor("ee73060", this);} // tgen
+
+static void Test_ee73060()
+{
+ extern Class_Descriptor cd_ee73060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73060, buf);
+ ee73060 *dp, &lv = *(dp=new (buf) ee73060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee73060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee73060");
+ check_base_class_offset(lv, (cc060*)(dd3060*), ABISELECT(32,16), "ee73060");
+ check_base_class_offset(lv, (dd3060*), ABISELECT(16,8), "ee73060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73060.e");
+ test_class_info(&lv, &cd_ee73060);
+ dp->~ee73060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73060(Test_ee73060, "ee73060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73060C1Ev();
+extern void _ZN7ee73060D1Ev();
+Name_Map name_map_ee73060[] = {
+ NSPAIR(_ZN7ee73060C1Ev),
+ NSPAIR(_ZN7ee73060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd3060;
+extern VTBL_ENTRY _ZTI6dd3060[];
+extern VTBL_ENTRY _ZTV6dd3060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3060[];
+static Base_Class bases_ee73060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3060, 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 _ZTI7ee73060[];
+extern void _ZN7ee730603fooEv();
+extern void _ZN7ee730603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730603fooEv,_ZTv0_n16_N7ee730603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730603fooEv,_ZThn8_N7ee730603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730603barEv,_ZTv0_n12_N7ee730603barEv)();
+extern void ABISELECT(_ZThn32_N7ee730603barEv,_ZThn16_N7ee730603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730603fooEv,_ZTv0_n16_N7ee730603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730603fooEv,_ZThn16_N7ee730603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73060[0]),
+ (VTBL_ENTRY)&_ZN7ee730603fooEv,
+ (VTBL_ENTRY)&_ZN7ee730603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730603fooEv,_ZTv0_n16_N7ee730603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730603barEv,_ZTv0_n12_N7ee730603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730603fooEv,_ZTv0_n16_N7ee730603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73060[];
+extern void _ZN6dd30603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3060__7ee73060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN6dd30603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd3060__7ee73060[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3060[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv),
+};
+static VTT_ENTRY vtt_ee73060[] = {
+ {&(_ZTV7ee73060[4]), 4,17},
+ {&(_ZTV7ee73060[10]), 10,17},
+ {&(_ZTV7ee73060[15]), 15,17},
+ {&(_tg__ZTV6dd3060__7ee73060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd3060__7ee73060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73060[];
+extern VTBL_ENTRY _ZTV7ee73060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73060[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30603fooEv,_ZTv0_n16_N6dd30603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30603fooEv,_ZThn8_N6dd30603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730603barEv,_ZTv0_n12_N7ee730603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730603barEv,_ZThn16_N7ee730603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730603fooEv,_ZTv0_n16_N7ee730603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730603fooEv,_ZThn16_N7ee730603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730603fooEv,_ZThn8_N7ee730603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73060 = { "ee73060", // class name
+ bases_ee73060, 4,
+ &(vtc_ee73060[0]), // expected_vtbl_contents
+ &(vtt_ee73060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73060),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73060),5, //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 dd4060 : cc060 {
+ int d;
+ virtual void bar(); // _ZN6dd40603barEv
+ ~dd4060(); // tgen
+ dd4060(); // tgen
+};
+//SIG(-1 dd4060) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4060 ::bar(){vfunc_called(this, "_ZN6dd40603barEv");}
+dd4060 ::~dd4060(){ note_dtor("dd4060", this);} // tgen
+dd4060 ::dd4060(){ note_ctor("dd4060", this);} // tgen
+
+static void Test_dd4060()
+{
+ extern Class_Descriptor cd_dd4060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4060, buf);
+ dd4060 *dp, &lv = *(dp=new (buf) dd4060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(8,4), "dd4060");
+ check_base_class_offset(lv, (bb60*)(cc060*), 0, "dd4060");
+ check_base_class_offset(lv, (cc060*), 0, "dd4060");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4060.d");
+ test_class_info(&lv, &cd_dd4060);
+ dp->~dd4060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4060(Test_dd4060, "dd4060", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4060C1Ev();
+extern void _ZN6dd4060D1Ev();
+Name_Map name_map_dd4060[] = {
+ NSPAIR(_ZN6dd4060C1Ev),
+ NSPAIR(_ZN6dd4060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd4060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4060[];
+extern void _ZN6dd40603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd4060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4060[0]),
+ (VTBL_ENTRY)&_ZN6dd40603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+Class_Descriptor cd_dd4060 = { "dd4060", // class name
+ bases_dd4060, 3,
+ &(vtc_dd4060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4060),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 ee04060 : dd4060 {
+ int e;
+ ~ee04060(); // tgen
+ ee04060(); // tgen
+};
+//SIG(1 ee04060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04060 ::~ee04060(){ note_dtor("ee04060", this);} // tgen
+ee04060 ::ee04060(){ note_ctor("ee04060", this);} // tgen
+
+static void Test_ee04060()
+{
+ extern Class_Descriptor cd_ee04060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04060, buf);
+ ee04060 *dp, &lv = *(dp=new (buf) ee04060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(8,4), "ee04060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), 0, "ee04060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), 0, "ee04060");
+ check_base_class_offset(lv, (dd4060*), 0, "ee04060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04060.e");
+ test_class_info(&lv, &cd_ee04060);
+ dp->~ee04060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04060(Test_ee04060, "ee04060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04060C1Ev();
+extern void _ZN7ee04060D1Ev();
+Name_Map name_map_ee04060[] = {
+ NSPAIR(_ZN7ee04060C1Ev),
+ NSPAIR(_ZN7ee04060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee04060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, 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 _ZTI7ee04060[];
+extern void _ZN6dd40603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee04060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04060[0]),
+ (VTBL_ENTRY)&_ZN6dd40603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee04060[];
+extern VTBL_ENTRY _ZTV7ee04060[];
+Class_Descriptor cd_ee04060 = { "ee04060", // class name
+ bases_ee04060, 4,
+ &(vtc_ee04060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04060),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 ee14060 : virtual dd4060 {
+ int e;
+ ~ee14060(); // tgen
+ ee14060(); // tgen
+};
+//SIG(1 ee14060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14060 ::~ee14060(){ note_dtor("ee14060", this);} // tgen
+ee14060 ::ee14060(){ note_ctor("ee14060", this);} // tgen
+
+static void Test_ee14060()
+{
+ extern Class_Descriptor cd_ee14060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14060, buf);
+ ee14060 *dp, &lv = *(dp=new (buf) ee14060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(24,12), "ee14060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), ABISELECT(16,8), "ee14060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), ABISELECT(16,8), "ee14060");
+ check_base_class_offset(lv, (dd4060*), ABISELECT(16,8), "ee14060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14060.e");
+ test_class_info(&lv, &cd_ee14060);
+ dp->~ee14060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14060(Test_ee14060, "ee14060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14060C1Ev();
+extern void _ZN7ee14060D1Ev();
+Name_Map name_map_ee14060[] = {
+ NSPAIR(_ZN7ee14060C1Ev),
+ NSPAIR(_ZN7ee14060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee14060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, 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 _ZTI7ee14060[];
+extern void _ZN6dd40603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee14060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14060[0]),
+ (VTBL_ENTRY)&_ZN6dd40603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14060[];
+static VTT_ENTRY vtt_ee14060[] = {
+ {&(_ZTV7ee14060[3]), 3,9},
+ {&(_ZTV7ee14060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14060[];
+extern VTBL_ENTRY _ZTV7ee14060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14060[];
+Class_Descriptor cd_ee14060 = { "ee14060", // class name
+ bases_ee14060, 4,
+ &(vtc_ee14060[0]), // expected_vtbl_contents
+ &(vtt_ee14060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14060),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 ee24060 : dd4060 {
+ int e;
+ virtual void foo(); // _ZN7ee240603fooEv
+ ~ee24060(); // tgen
+ ee24060(); // tgen
+};
+//SIG(1 ee24060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24060 ::foo(){vfunc_called(this, "_ZN7ee240603fooEv");}
+ee24060 ::~ee24060(){ note_dtor("ee24060", this);} // tgen
+ee24060 ::ee24060(){ note_ctor("ee24060", this);} // tgen
+
+static void Test_ee24060()
+{
+ extern Class_Descriptor cd_ee24060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24060, buf);
+ ee24060 *dp, &lv = *(dp=new (buf) ee24060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(8,4), "ee24060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), 0, "ee24060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), 0, "ee24060");
+ check_base_class_offset(lv, (dd4060*), 0, "ee24060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24060.e");
+ test_class_info(&lv, &cd_ee24060);
+ dp->~ee24060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24060(Test_ee24060, "ee24060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24060C1Ev();
+extern void _ZN7ee24060D1Ev();
+Name_Map name_map_ee24060[] = {
+ NSPAIR(_ZN7ee24060C1Ev),
+ NSPAIR(_ZN7ee24060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee24060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24060[];
+extern void _ZN6dd40603barEv();
+extern void _ZN7ee240603fooEv();
+static VTBL_ENTRY vtc_ee24060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24060[0]),
+ (VTBL_ENTRY)&_ZN6dd40603barEv,
+ (VTBL_ENTRY)&_ZN7ee240603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24060[];
+extern VTBL_ENTRY _ZTV7ee24060[];
+Class_Descriptor cd_ee24060 = { "ee24060", // class name
+ bases_ee24060, 4,
+ &(vtc_ee24060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24060),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 ee34060 : virtual dd4060 {
+ int e;
+ virtual void foo(); // _ZN7ee340603fooEv
+ ~ee34060(); // tgen
+ ee34060(); // tgen
+};
+//SIG(1 ee34060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34060 ::foo(){vfunc_called(this, "_ZN7ee340603fooEv");}
+ee34060 ::~ee34060(){ note_dtor("ee34060", this);} // tgen
+ee34060 ::ee34060(){ note_ctor("ee34060", this);} // tgen
+
+static void Test_ee34060()
+{
+ extern Class_Descriptor cd_ee34060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34060, buf);
+ ee34060 *dp, &lv = *(dp=new (buf) ee34060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(24,12), "ee34060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), ABISELECT(16,8), "ee34060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), ABISELECT(16,8), "ee34060");
+ check_base_class_offset(lv, (dd4060*), ABISELECT(16,8), "ee34060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34060.e");
+ test_class_info(&lv, &cd_ee34060);
+ dp->~ee34060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34060(Test_ee34060, "ee34060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34060C1Ev();
+extern void _ZN7ee34060D1Ev();
+Name_Map name_map_ee34060[] = {
+ NSPAIR(_ZN7ee34060C1Ev),
+ NSPAIR(_ZN7ee34060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee34060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, ABISELECT(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 _ZTI7ee34060[];
+extern void _ZN7ee340603fooEv();
+extern void _ZN6dd40603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee340603fooEv,_ZTv0_n16_N7ee340603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340603fooEv,_ZThn8_N7ee340603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34060[0]),
+ (VTBL_ENTRY)&_ZN7ee340603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34060[0]),
+ (VTBL_ENTRY)&_ZN6dd40603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee340603fooEv,_ZTv0_n16_N7ee340603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34060[];
+static VTT_ENTRY vtt_ee34060[] = {
+ {&(_ZTV7ee34060[3]), 3,10},
+ {&(_ZTV7ee34060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34060[];
+extern VTBL_ENTRY _ZTV7ee34060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34060[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee340603fooEv,_ZTv0_n16_N7ee340603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340603fooEv,_ZThn8_N7ee340603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34060 = { "ee34060", // class name
+ bases_ee34060, 4,
+ &(vtc_ee34060[0]), // expected_vtbl_contents
+ &(vtt_ee34060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34060),2, //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 ee44060 : dd4060 {
+ int e;
+ virtual void bar(); // _ZN7ee440603barEv
+ ~ee44060(); // tgen
+ ee44060(); // tgen
+};
+//SIG(1 ee44060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44060 ::bar(){vfunc_called(this, "_ZN7ee440603barEv");}
+ee44060 ::~ee44060(){ note_dtor("ee44060", this);} // tgen
+ee44060 ::ee44060(){ note_ctor("ee44060", this);} // tgen
+
+static void Test_ee44060()
+{
+ extern Class_Descriptor cd_ee44060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44060, buf);
+ ee44060 *dp, &lv = *(dp=new (buf) ee44060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(8,4), "ee44060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), 0, "ee44060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), 0, "ee44060");
+ check_base_class_offset(lv, (dd4060*), 0, "ee44060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44060.e");
+ test_class_info(&lv, &cd_ee44060);
+ dp->~ee44060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44060(Test_ee44060, "ee44060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44060C1Ev();
+extern void _ZN7ee44060D1Ev();
+Name_Map name_map_ee44060[] = {
+ NSPAIR(_ZN7ee44060C1Ev),
+ NSPAIR(_ZN7ee44060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee44060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44060[];
+extern void _ZN7ee440603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee44060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44060[0]),
+ (VTBL_ENTRY)&_ZN7ee440603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee44060[];
+extern VTBL_ENTRY _ZTV7ee44060[];
+Class_Descriptor cd_ee44060 = { "ee44060", // class name
+ bases_ee44060, 4,
+ &(vtc_ee44060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44060),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 ee54060 : virtual dd4060 {
+ int e;
+ virtual void bar(); // _ZN7ee540603barEv
+ ~ee54060(); // tgen
+ ee54060(); // tgen
+};
+//SIG(1 ee54060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54060 ::bar(){vfunc_called(this, "_ZN7ee540603barEv");}
+ee54060 ::~ee54060(){ note_dtor("ee54060", this);} // tgen
+ee54060 ::ee54060(){ note_ctor("ee54060", this);} // tgen
+
+static void Test_ee54060()
+{
+ extern Class_Descriptor cd_ee54060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54060, buf);
+ ee54060 *dp, &lv = *(dp=new (buf) ee54060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(24,12), "ee54060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), ABISELECT(16,8), "ee54060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), ABISELECT(16,8), "ee54060");
+ check_base_class_offset(lv, (dd4060*), ABISELECT(16,8), "ee54060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54060.e");
+ test_class_info(&lv, &cd_ee54060);
+ dp->~ee54060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54060(Test_ee54060, "ee54060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54060C1Ev();
+extern void _ZN7ee54060D1Ev();
+Name_Map name_map_ee54060[] = {
+ NSPAIR(_ZN7ee54060C1Ev),
+ NSPAIR(_ZN7ee54060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee54060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, ABISELECT(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 _ZTI7ee54060[];
+extern void _ZN7ee540603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee540603barEv,_ZTv0_n12_N7ee540603barEv)();
+extern void ABISELECT(_ZThn16_N7ee540603barEv,_ZThn8_N7ee540603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee54060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54060[0]),
+ (VTBL_ENTRY)&_ZN7ee540603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee540603barEv,_ZTv0_n12_N7ee540603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54060[];
+static VTT_ENTRY vtt_ee54060[] = {
+ {&(_ZTV7ee54060[3]), 3,10},
+ {&(_ZTV7ee54060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54060[];
+extern VTBL_ENTRY _ZTV7ee54060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54060[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee540603barEv,_ZTv0_n12_N7ee540603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540603barEv,_ZThn8_N7ee540603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54060 = { "ee54060", // class name
+ bases_ee54060, 4,
+ &(vtc_ee54060[0]), // expected_vtbl_contents
+ &(vtt_ee54060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54060),2, //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 ee64060 : dd4060 {
+ int e;
+ virtual void foo(); // _ZN7ee640603fooEv
+ virtual void bar(); // _ZN7ee640603barEv
+ ~ee64060(); // tgen
+ ee64060(); // tgen
+};
+//SIG(1 ee64060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64060 ::foo(){vfunc_called(this, "_ZN7ee640603fooEv");}
+void ee64060 ::bar(){vfunc_called(this, "_ZN7ee640603barEv");}
+ee64060 ::~ee64060(){ note_dtor("ee64060", this);} // tgen
+ee64060 ::ee64060(){ note_ctor("ee64060", this);} // tgen
+
+static void Test_ee64060()
+{
+ extern Class_Descriptor cd_ee64060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64060, buf);
+ ee64060 *dp, &lv = *(dp=new (buf) ee64060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(8,4), "ee64060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), 0, "ee64060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), 0, "ee64060");
+ check_base_class_offset(lv, (dd4060*), 0, "ee64060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64060.e");
+ test_class_info(&lv, &cd_ee64060);
+ dp->~ee64060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64060(Test_ee64060, "ee64060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64060C1Ev();
+extern void _ZN7ee64060D1Ev();
+Name_Map name_map_ee64060[] = {
+ NSPAIR(_ZN7ee64060C1Ev),
+ NSPAIR(_ZN7ee64060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee64060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64060[];
+extern void _ZN7ee640603barEv();
+extern void _ZN7ee640603fooEv();
+static VTBL_ENTRY vtc_ee64060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64060[0]),
+ (VTBL_ENTRY)&_ZN7ee640603barEv,
+ (VTBL_ENTRY)&_ZN7ee640603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64060[];
+extern VTBL_ENTRY _ZTV7ee64060[];
+Class_Descriptor cd_ee64060 = { "ee64060", // class name
+ bases_ee64060, 4,
+ &(vtc_ee64060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64060),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 ee74060 : virtual dd4060 {
+ int e;
+ virtual void foo(); // _ZN7ee740603fooEv
+ virtual void bar(); // _ZN7ee740603barEv
+ ~ee74060(); // tgen
+ ee74060(); // tgen
+};
+//SIG(1 ee74060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74060 ::foo(){vfunc_called(this, "_ZN7ee740603fooEv");}
+void ee74060 ::bar(){vfunc_called(this, "_ZN7ee740603barEv");}
+ee74060 ::~ee74060(){ note_dtor("ee74060", this);} // tgen
+ee74060 ::ee74060(){ note_ctor("ee74060", this);} // tgen
+
+static void Test_ee74060()
+{
+ extern Class_Descriptor cd_ee74060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74060, buf);
+ ee74060 *dp, &lv = *(dp=new (buf) ee74060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd4060*), ABISELECT(24,12), "ee74060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd4060*), ABISELECT(16,8), "ee74060");
+ check_base_class_offset(lv, (cc060*)(dd4060*), ABISELECT(16,8), "ee74060");
+ check_base_class_offset(lv, (dd4060*), ABISELECT(16,8), "ee74060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74060.e");
+ test_class_info(&lv, &cd_ee74060);
+ dp->~ee74060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74060(Test_ee74060, "ee74060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74060C1Ev();
+extern void _ZN7ee74060D1Ev();
+Name_Map name_map_ee74060[] = {
+ NSPAIR(_ZN7ee74060C1Ev),
+ NSPAIR(_ZN7ee74060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd4060;
+extern VTBL_ENTRY _ZTI6dd4060[];
+extern VTBL_ENTRY _ZTV6dd4060[];
+static Base_Class bases_ee74060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4060, ABISELECT(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 _ZTI7ee74060[];
+extern void _ZN7ee740603fooEv();
+extern void _ZN7ee740603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740603barEv,_ZTv0_n12_N7ee740603barEv)();
+extern void ABISELECT(_ZThn16_N7ee740603barEv,_ZThn8_N7ee740603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740603fooEv,_ZTv0_n16_N7ee740603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740603fooEv,_ZThn8_N7ee740603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74060[0]),
+ (VTBL_ENTRY)&_ZN7ee740603fooEv,
+ (VTBL_ENTRY)&_ZN7ee740603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740603barEv,_ZTv0_n12_N7ee740603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740603fooEv,_ZTv0_n16_N7ee740603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74060[];
+static VTT_ENTRY vtt_ee74060[] = {
+ {&(_ZTV7ee74060[3]), 3,11},
+ {&(_ZTV7ee74060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74060[];
+extern VTBL_ENTRY _ZTV7ee74060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74060[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740603fooEv,_ZTv0_n16_N7ee740603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740603fooEv,_ZThn8_N7ee740603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740603barEv,_ZTv0_n12_N7ee740603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740603barEv,_ZThn8_N7ee740603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74060 = { "ee74060", // class name
+ bases_ee74060, 4,
+ &(vtc_ee74060[0]), // expected_vtbl_contents
+ &(vtt_ee74060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74060),2, //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 dd5060 : virtual cc060 {
+ int d;
+ virtual void bar(); // _ZN6dd50603barEv
+ ~dd5060(); // tgen
+ dd5060(); // tgen
+};
+//SIG(-1 dd5060) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5060 ::bar(){vfunc_called(this, "_ZN6dd50603barEv");}
+dd5060 ::~dd5060(){ note_dtor("dd5060", this);} // tgen
+dd5060 ::dd5060(){ note_ctor("dd5060", this);} // tgen
+
+static void Test_dd5060()
+{
+ extern Class_Descriptor cd_dd5060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5060, buf);
+ dd5060 *dp, &lv = *(dp=new (buf) dd5060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,12), "dd5060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,8), "dd5060");
+ check_base_class_offset(lv, (cc060*), ABISELECT(16,8), "dd5060");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5060.d");
+ test_class_info(&lv, &cd_dd5060);
+ dp->~dd5060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5060(Test_dd5060, "dd5060", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5060C1Ev();
+extern void _ZN6dd5060D1Ev();
+Name_Map name_map_dd5060[] = {
+ NSPAIR(_ZN6dd5060C1Ev),
+ NSPAIR(_ZN6dd5060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd5060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern void _ZN6dd50603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd5060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5060[];
+static VTT_ENTRY vtt_dd5060[] = {
+ {&(_ZTV6dd5060[3]), 3,10},
+ {&(_ZTV6dd5060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5060 = { "dd5060", // class name
+ bases_dd5060, 3,
+ &(vtc_dd5060[0]), // expected_vtbl_contents
+ &(vtt_dd5060[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5060),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05060 : dd5060 {
+ int e;
+ ~ee05060(); // tgen
+ ee05060(); // tgen
+};
+//SIG(1 ee05060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05060 ::~ee05060(){ note_dtor("ee05060", this);} // tgen
+ee05060 ::ee05060(){ note_ctor("ee05060", this);} // tgen
+
+static void Test_ee05060()
+{
+ extern Class_Descriptor cd_ee05060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05060, buf);
+ ee05060 *dp, &lv = *(dp=new (buf) ee05060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee05060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee05060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(16,12), "ee05060");
+ check_base_class_offset(lv, (dd5060*), 0, "ee05060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05060.e");
+ test_class_info(&lv, &cd_ee05060);
+ dp->~ee05060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05060(Test_ee05060, "ee05060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05060C1Ev();
+extern void _ZN7ee05060D1Ev();
+Name_Map name_map_ee05060[] = {
+ NSPAIR(_ZN7ee05060C1Ev),
+ NSPAIR(_ZN7ee05060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee05060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05060[];
+extern void _ZN6dd50603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee05060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee05060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee05060[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee05060[] = {
+ {&(_ZTV7ee05060[3]), 3,10},
+ {&(_tg__ZTV6dd5060__7ee05060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee05060[4]), 4,6},
+ {&(_ZTV7ee05060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05060[];
+extern VTBL_ENTRY _ZTV7ee05060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05060[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05060 = { "ee05060", // class name
+ bases_ee05060, 4,
+ &(vtc_ee05060[0]), // expected_vtbl_contents
+ &(vtt_ee05060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05060),4, //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 ee15060 : virtual dd5060 {
+ int e;
+ ~ee15060(); // tgen
+ ee15060(); // tgen
+};
+//SIG(1 ee15060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15060 ::~ee15060(){ note_dtor("ee15060", this);} // tgen
+ee15060 ::ee15060(){ note_ctor("ee15060", this);} // tgen
+
+static void Test_ee15060()
+{
+ extern Class_Descriptor cd_ee15060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15060, buf);
+ ee15060 *dp, &lv = *(dp=new (buf) ee15060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee15060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee15060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(32,16), "ee15060");
+ check_base_class_offset(lv, (dd5060*), ABISELECT(16,8), "ee15060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15060.e");
+ test_class_info(&lv, &cd_ee15060);
+ dp->~ee15060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15060(Test_ee15060, "ee15060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15060C1Ev();
+extern void _ZN7ee15060D1Ev();
+Name_Map name_map_ee15060[] = {
+ NSPAIR(_ZN7ee15060C1Ev),
+ NSPAIR(_ZN7ee15060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee15060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, ABISELECT(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 _ZTI7ee15060[];
+extern void _ZN6dd50603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee15060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15060[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee15060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee15060[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee15060[] = {
+ {&(_ZTV7ee15060[4]), 4,15},
+ {&(_ZTV7ee15060[8]), 8,15},
+ {&(_ZTV7ee15060[13]), 13,15},
+ {&(_tg__ZTV6dd5060__7ee15060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee15060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15060[];
+extern VTBL_ENTRY _ZTV7ee15060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15060[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15060 = { "ee15060", // class name
+ bases_ee15060, 4,
+ &(vtc_ee15060[0]), // expected_vtbl_contents
+ &(vtt_ee15060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15060),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15060),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25060 : dd5060 {
+ int e;
+ virtual void foo(); // _ZN7ee250603fooEv
+ ~ee25060(); // tgen
+ ee25060(); // tgen
+};
+//SIG(1 ee25060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25060 ::foo(){vfunc_called(this, "_ZN7ee250603fooEv");}
+ee25060 ::~ee25060(){ note_dtor("ee25060", this);} // tgen
+ee25060 ::ee25060(){ note_ctor("ee25060", this);} // tgen
+
+static void Test_ee25060()
+{
+ extern Class_Descriptor cd_ee25060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25060, buf);
+ ee25060 *dp, &lv = *(dp=new (buf) ee25060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee25060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee25060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(16,12), "ee25060");
+ check_base_class_offset(lv, (dd5060*), 0, "ee25060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25060.e");
+ test_class_info(&lv, &cd_ee25060);
+ dp->~ee25060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25060(Test_ee25060, "ee25060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25060C1Ev();
+extern void _ZN7ee25060D1Ev();
+Name_Map name_map_ee25060[] = {
+ NSPAIR(_ZN7ee25060C1Ev),
+ NSPAIR(_ZN7ee25060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee25060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25060[];
+extern void _ZN6dd50603barEv();
+extern void _ZN7ee250603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee250603fooEv,_ZTv0_n16_N7ee250603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250603fooEv,_ZThn12_N7ee250603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+ (VTBL_ENTRY)&_ZN7ee250603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee250603fooEv,_ZTv0_n16_N7ee250603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee25060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee25060[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee25060[] = {
+ {&(_ZTV7ee25060[3]), 3,11},
+ {&(_tg__ZTV6dd5060__7ee25060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee25060[4]), 4,6},
+ {&(_ZTV7ee25060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25060[];
+extern VTBL_ENTRY _ZTV7ee25060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25060[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee250603fooEv,_ZTv0_n16_N7ee250603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250603fooEv,_ZThn12_N7ee250603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25060 = { "ee25060", // class name
+ bases_ee25060, 4,
+ &(vtc_ee25060[0]), // expected_vtbl_contents
+ &(vtt_ee25060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25060),4, //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 ee35060 : virtual dd5060 {
+ int e;
+ virtual void foo(); // _ZN7ee350603fooEv
+ ~ee35060(); // tgen
+ ee35060(); // tgen
+};
+//SIG(1 ee35060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35060 ::foo(){vfunc_called(this, "_ZN7ee350603fooEv");}
+ee35060 ::~ee35060(){ note_dtor("ee35060", this);} // tgen
+ee35060 ::ee35060(){ note_ctor("ee35060", this);} // tgen
+
+static void Test_ee35060()
+{
+ extern Class_Descriptor cd_ee35060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35060, buf);
+ ee35060 *dp, &lv = *(dp=new (buf) ee35060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee35060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee35060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(32,16), "ee35060");
+ check_base_class_offset(lv, (dd5060*), ABISELECT(16,8), "ee35060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35060.e");
+ test_class_info(&lv, &cd_ee35060);
+ dp->~ee35060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35060(Test_ee35060, "ee35060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35060C1Ev();
+extern void _ZN7ee35060D1Ev();
+Name_Map name_map_ee35060[] = {
+ NSPAIR(_ZN7ee35060C1Ev),
+ NSPAIR(_ZN7ee35060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee35060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, ABISELECT(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 _ZTI7ee35060[];
+extern void _ZN7ee350603fooEv();
+extern void _ZN6dd50603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee350603fooEv,_ZTv0_n16_N7ee350603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350603fooEv,_ZThn16_N7ee350603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35060[0]),
+ (VTBL_ENTRY)&_ZN7ee350603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee350603fooEv,_ZTv0_n16_N7ee350603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee35060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee35060[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee35060[] = {
+ {&(_ZTV7ee35060[4]), 4,16},
+ {&(_ZTV7ee35060[9]), 9,16},
+ {&(_ZTV7ee35060[14]), 14,16},
+ {&(_tg__ZTV6dd5060__7ee35060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee35060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35060[];
+extern VTBL_ENTRY _ZTV7ee35060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35060[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee350603fooEv,_ZTv0_n16_N7ee350603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350603fooEv,_ZThn16_N7ee350603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35060 = { "ee35060", // class name
+ bases_ee35060, 4,
+ &(vtc_ee35060[0]), // expected_vtbl_contents
+ &(vtt_ee35060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35060),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35060),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names29,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45060 : dd5060 {
+ int e;
+ virtual void bar(); // _ZN7ee450603barEv
+ ~ee45060(); // tgen
+ ee45060(); // tgen
+};
+//SIG(1 ee45060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45060 ::bar(){vfunc_called(this, "_ZN7ee450603barEv");}
+ee45060 ::~ee45060(){ note_dtor("ee45060", this);} // tgen
+ee45060 ::ee45060(){ note_ctor("ee45060", this);} // tgen
+
+static void Test_ee45060()
+{
+ extern Class_Descriptor cd_ee45060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45060, buf);
+ ee45060 *dp, &lv = *(dp=new (buf) ee45060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee45060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee45060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(16,12), "ee45060");
+ check_base_class_offset(lv, (dd5060*), 0, "ee45060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45060.e");
+ test_class_info(&lv, &cd_ee45060);
+ dp->~ee45060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45060(Test_ee45060, "ee45060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45060C1Ev();
+extern void _ZN7ee45060D1Ev();
+Name_Map name_map_ee45060[] = {
+ NSPAIR(_ZN7ee45060C1Ev),
+ NSPAIR(_ZN7ee45060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee45060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45060[];
+extern void _ZN7ee450603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee450603barEv,_ZTv0_n12_N7ee450603barEv)();
+extern void ABISELECT(_ZThn16_N7ee450603barEv,_ZThn12_N7ee450603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee45060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45060[0]),
+ (VTBL_ENTRY)&_ZN7ee450603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee450603barEv,_ZTv0_n12_N7ee450603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee45060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee45060[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee45060[] = {
+ {&(_ZTV7ee45060[3]), 3,10},
+ {&(_tg__ZTV6dd5060__7ee45060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee45060[4]), 4,6},
+ {&(_ZTV7ee45060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45060[];
+extern VTBL_ENTRY _ZTV7ee45060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45060[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee450603barEv,_ZTv0_n12_N7ee450603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450603barEv,_ZThn12_N7ee450603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45060 = { "ee45060", // class name
+ bases_ee45060, 4,
+ &(vtc_ee45060[0]), // expected_vtbl_contents
+ &(vtt_ee45060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45060),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 ee55060 : virtual dd5060 {
+ int e;
+ virtual void bar(); // _ZN7ee550603barEv
+ ~ee55060(); // tgen
+ ee55060(); // tgen
+};
+//SIG(1 ee55060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55060 ::bar(){vfunc_called(this, "_ZN7ee550603barEv");}
+ee55060 ::~ee55060(){ note_dtor("ee55060", this);} // tgen
+ee55060 ::ee55060(){ note_ctor("ee55060", this);} // tgen
+
+static void Test_ee55060()
+{
+ extern Class_Descriptor cd_ee55060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55060, buf);
+ ee55060 *dp, &lv = *(dp=new (buf) ee55060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee55060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee55060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(32,16), "ee55060");
+ check_base_class_offset(lv, (dd5060*), ABISELECT(16,8), "ee55060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55060.e");
+ test_class_info(&lv, &cd_ee55060);
+ dp->~ee55060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55060(Test_ee55060, "ee55060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55060C1Ev();
+extern void _ZN7ee55060D1Ev();
+Name_Map name_map_ee55060[] = {
+ NSPAIR(_ZN7ee55060C1Ev),
+ NSPAIR(_ZN7ee55060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee55060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, ABISELECT(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 _ZTI7ee55060[];
+extern void _ZN7ee550603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550603barEv,_ZTv0_n16_N7ee550603barEv)();
+extern void ABISELECT(_ZThn16_N7ee550603barEv,_ZThn8_N7ee550603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee550603barEv,_ZTv0_n12_N7ee550603barEv)();
+extern void ABISELECT(_ZThn32_N7ee550603barEv,_ZThn16_N7ee550603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee55060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55060[0]),
+ (VTBL_ENTRY)&_ZN7ee550603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550603barEv,_ZTv0_n16_N7ee550603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee550603barEv,_ZTv0_n12_N7ee550603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee55060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee55060[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee55060[] = {
+ {&(_ZTV7ee55060[4]), 4,16},
+ {&(_ZTV7ee55060[9]), 9,16},
+ {&(_ZTV7ee55060[14]), 14,16},
+ {&(_tg__ZTV6dd5060__7ee55060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee55060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55060[];
+extern VTBL_ENTRY _ZTV7ee55060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55060[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee550603barEv,_ZTv0_n12_N7ee550603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550603barEv,_ZThn16_N7ee550603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550603barEv,_ZTv0_n16_N7ee550603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550603barEv,_ZThn8_N7ee550603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55060 = { "ee55060", // class name
+ bases_ee55060, 4,
+ &(vtc_ee55060[0]), // expected_vtbl_contents
+ &(vtt_ee55060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55060),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55060),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 ee65060 : dd5060 {
+ int e;
+ virtual void foo(); // _ZN7ee650603fooEv
+ virtual void bar(); // _ZN7ee650603barEv
+ ~ee65060(); // tgen
+ ee65060(); // tgen
+};
+//SIG(1 ee65060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65060 ::foo(){vfunc_called(this, "_ZN7ee650603fooEv");}
+void ee65060 ::bar(){vfunc_called(this, "_ZN7ee650603barEv");}
+ee65060 ::~ee65060(){ note_dtor("ee65060", this);} // tgen
+ee65060 ::ee65060(){ note_ctor("ee65060", this);} // tgen
+
+static void Test_ee65060()
+{
+ extern Class_Descriptor cd_ee65060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65060, buf);
+ ee65060 *dp, &lv = *(dp=new (buf) ee65060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee65060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee65060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(16,12), "ee65060");
+ check_base_class_offset(lv, (dd5060*), 0, "ee65060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65060.e");
+ test_class_info(&lv, &cd_ee65060);
+ dp->~ee65060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65060(Test_ee65060, "ee65060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65060C1Ev();
+extern void _ZN7ee65060D1Ev();
+Name_Map name_map_ee65060[] = {
+ NSPAIR(_ZN7ee65060C1Ev),
+ NSPAIR(_ZN7ee65060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee65060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65060[];
+extern void _ZN7ee650603barEv();
+extern void _ZN7ee650603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650603barEv,_ZTv0_n12_N7ee650603barEv)();
+extern void ABISELECT(_ZThn16_N7ee650603barEv,_ZThn12_N7ee650603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650603fooEv,_ZTv0_n16_N7ee650603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650603fooEv,_ZThn12_N7ee650603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65060[0]),
+ (VTBL_ENTRY)&_ZN7ee650603barEv,
+ (VTBL_ENTRY)&_ZN7ee650603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650603barEv,_ZTv0_n12_N7ee650603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650603fooEv,_ZTv0_n16_N7ee650603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee65060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee65060[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee65060[] = {
+ {&(_ZTV7ee65060[3]), 3,11},
+ {&(_tg__ZTV6dd5060__7ee65060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee65060[4]), 4,6},
+ {&(_ZTV7ee65060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65060[];
+extern VTBL_ENTRY _ZTV7ee65060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65060[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn12_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650603fooEv,_ZTv0_n16_N7ee650603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650603fooEv,_ZThn12_N7ee650603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650603barEv,_ZTv0_n12_N7ee650603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650603barEv,_ZThn12_N7ee650603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65060 = { "ee65060", // class name
+ bases_ee65060, 4,
+ &(vtc_ee65060[0]), // expected_vtbl_contents
+ &(vtt_ee65060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65060),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 ee75060 : virtual dd5060 {
+ int e;
+ virtual void foo(); // _ZN7ee750603fooEv
+ virtual void bar(); // _ZN7ee750603barEv
+ ~ee75060(); // tgen
+ ee75060(); // tgen
+};
+//SIG(1 ee75060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75060 ::foo(){vfunc_called(this, "_ZN7ee750603fooEv");}
+void ee75060 ::bar(){vfunc_called(this, "_ZN7ee750603barEv");}
+ee75060 ::~ee75060(){ note_dtor("ee75060", this);} // tgen
+ee75060 ::ee75060(){ note_ctor("ee75060", this);} // tgen
+
+static void Test_ee75060()
+{
+ extern Class_Descriptor cd_ee75060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75060, buf);
+ ee75060 *dp, &lv = *(dp=new (buf) ee75060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee75060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee75060");
+ check_base_class_offset(lv, (cc060*)(dd5060*), ABISELECT(32,16), "ee75060");
+ check_base_class_offset(lv, (dd5060*), ABISELECT(16,8), "ee75060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75060.e");
+ test_class_info(&lv, &cd_ee75060);
+ dp->~ee75060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75060(Test_ee75060, "ee75060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75060C1Ev();
+extern void _ZN7ee75060D1Ev();
+Name_Map name_map_ee75060[] = {
+ NSPAIR(_ZN7ee75060C1Ev),
+ NSPAIR(_ZN7ee75060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd5060;
+extern VTBL_ENTRY _ZTI6dd5060[];
+extern VTBL_ENTRY _ZTV6dd5060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5060[];
+static Base_Class bases_ee75060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5060, 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 _ZTI7ee75060[];
+extern void _ZN7ee750603fooEv();
+extern void _ZN7ee750603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750603barEv,_ZTv0_n16_N7ee750603barEv)();
+extern void ABISELECT(_ZThn16_N7ee750603barEv,_ZThn8_N7ee750603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750603barEv,_ZTv0_n12_N7ee750603barEv)();
+extern void ABISELECT(_ZThn32_N7ee750603barEv,_ZThn16_N7ee750603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750603fooEv,_ZTv0_n16_N7ee750603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750603fooEv,_ZThn16_N7ee750603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75060[0]),
+ (VTBL_ENTRY)&_ZN7ee750603fooEv,
+ (VTBL_ENTRY)&_ZN7ee750603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750603barEv,_ZTv0_n16_N7ee750603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750603barEv,_ZTv0_n12_N7ee750603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750603fooEv,_ZTv0_n16_N7ee750603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75060[];
+extern void _ZN6dd50603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5060__7ee75060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&_ZN6dd50603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv)();
+extern void ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd5060__7ee75060[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee75060[] = {
+ {&(_ZTV7ee75060[4]), 4,17},
+ {&(_ZTV7ee75060[10]), 10,17},
+ {&(_ZTV7ee75060[15]), 15,17},
+ {&(_tg__ZTV6dd5060__7ee75060[3]), 3,4},
+ {&(_tg__ZTV4bb605cc060__6dd5060__7ee75060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75060[];
+extern VTBL_ENTRY _ZTV7ee75060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75060[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd50603barEv,_ZTv0_n12_N6dd50603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50603barEv,_ZThn8_N6dd50603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750603fooEv,_ZTv0_n16_N7ee750603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750603fooEv,_ZThn16_N7ee750603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750603barEv,_ZTv0_n12_N7ee750603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750603barEv,_ZThn16_N7ee750603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750603barEv,_ZTv0_n16_N7ee750603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750603barEv,_ZThn8_N7ee750603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75060 = { "ee75060", // class name
+ bases_ee75060, 4,
+ &(vtc_ee75060[0]), // expected_vtbl_contents
+ &(vtt_ee75060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75060),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75060),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 dd6060 : cc060 {
+ int d;
+ virtual void bar(); // _ZN6dd60603barEv
+ virtual void foo(); // _ZN6dd60603fooEv
+ ~dd6060(); // tgen
+ dd6060(); // tgen
+};
+//SIG(-1 dd6060) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6060 ::bar(){vfunc_called(this, "_ZN6dd60603barEv");}
+void dd6060 ::foo(){vfunc_called(this, "_ZN6dd60603fooEv");}
+dd6060 ::~dd6060(){ note_dtor("dd6060", this);} // tgen
+dd6060 ::dd6060(){ note_ctor("dd6060", this);} // tgen
+
+static void Test_dd6060()
+{
+ extern Class_Descriptor cd_dd6060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6060, buf);
+ dd6060 *dp, &lv = *(dp=new (buf) dd6060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(8,4), "dd6060");
+ check_base_class_offset(lv, (bb60*)(cc060*), 0, "dd6060");
+ check_base_class_offset(lv, (cc060*), 0, "dd6060");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6060.d");
+ test_class_info(&lv, &cd_dd6060);
+ dp->~dd6060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6060(Test_dd6060, "dd6060", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6060C1Ev();
+extern void _ZN6dd6060D1Ev();
+Name_Map name_map_dd6060[] = {
+ NSPAIR(_ZN6dd6060C1Ev),
+ NSPAIR(_ZN6dd6060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd6060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6060[];
+extern void _ZN6dd60603barEv();
+extern void _ZN6dd60603fooEv();
+static VTBL_ENTRY vtc_dd6060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6060[0]),
+ (VTBL_ENTRY)&_ZN6dd60603barEv,
+ (VTBL_ENTRY)&_ZN6dd60603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+Class_Descriptor cd_dd6060 = { "dd6060", // class name
+ bases_dd6060, 3,
+ &(vtc_dd6060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6060),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 ee06060 : dd6060 {
+ int e;
+ ~ee06060(); // tgen
+ ee06060(); // tgen
+};
+//SIG(1 ee06060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06060 ::~ee06060(){ note_dtor("ee06060", this);} // tgen
+ee06060 ::ee06060(){ note_ctor("ee06060", this);} // tgen
+
+static void Test_ee06060()
+{
+ extern Class_Descriptor cd_ee06060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06060, buf);
+ ee06060 *dp, &lv = *(dp=new (buf) ee06060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(8,4), "ee06060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), 0, "ee06060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), 0, "ee06060");
+ check_base_class_offset(lv, (dd6060*), 0, "ee06060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06060.e");
+ test_class_info(&lv, &cd_ee06060);
+ dp->~ee06060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06060(Test_ee06060, "ee06060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06060C1Ev();
+extern void _ZN7ee06060D1Ev();
+Name_Map name_map_ee06060[] = {
+ NSPAIR(_ZN7ee06060C1Ev),
+ NSPAIR(_ZN7ee06060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee06060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, 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 _ZTI7ee06060[];
+extern void _ZN6dd60603barEv();
+extern void _ZN6dd60603fooEv();
+static VTBL_ENTRY vtc_ee06060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06060[0]),
+ (VTBL_ENTRY)&_ZN6dd60603barEv,
+ (VTBL_ENTRY)&_ZN6dd60603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06060[];
+extern VTBL_ENTRY _ZTV7ee06060[];
+Class_Descriptor cd_ee06060 = { "ee06060", // class name
+ bases_ee06060, 4,
+ &(vtc_ee06060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06060),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 ee16060 : virtual dd6060 {
+ int e;
+ ~ee16060(); // tgen
+ ee16060(); // tgen
+};
+//SIG(1 ee16060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16060 ::~ee16060(){ note_dtor("ee16060", this);} // tgen
+ee16060 ::ee16060(){ note_ctor("ee16060", this);} // tgen
+
+static void Test_ee16060()
+{
+ extern Class_Descriptor cd_ee16060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16060, buf);
+ ee16060 *dp, &lv = *(dp=new (buf) ee16060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(24,12), "ee16060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), ABISELECT(16,8), "ee16060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), ABISELECT(16,8), "ee16060");
+ check_base_class_offset(lv, (dd6060*), ABISELECT(16,8), "ee16060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16060.e");
+ test_class_info(&lv, &cd_ee16060);
+ dp->~ee16060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16060(Test_ee16060, "ee16060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16060C1Ev();
+extern void _ZN7ee16060D1Ev();
+Name_Map name_map_ee16060[] = {
+ NSPAIR(_ZN7ee16060C1Ev),
+ NSPAIR(_ZN7ee16060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee16060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, 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 _ZTI7ee16060[];
+extern void _ZN6dd60603barEv();
+extern void _ZN6dd60603fooEv();
+static VTBL_ENTRY vtc_ee16060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16060[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16060[0]),
+ (VTBL_ENTRY)&_ZN6dd60603barEv,
+ (VTBL_ENTRY)&_ZN6dd60603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16060[];
+static VTT_ENTRY vtt_ee16060[] = {
+ {&(_ZTV7ee16060[3]), 3,9},
+ {&(_ZTV7ee16060[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16060[];
+extern VTBL_ENTRY _ZTV7ee16060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16060[];
+Class_Descriptor cd_ee16060 = { "ee16060", // class name
+ bases_ee16060, 4,
+ &(vtc_ee16060[0]), // expected_vtbl_contents
+ &(vtt_ee16060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16060),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16060),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 ee26060 : dd6060 {
+ int e;
+ virtual void foo(); // _ZN7ee260603fooEv
+ ~ee26060(); // tgen
+ ee26060(); // tgen
+};
+//SIG(1 ee26060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26060 ::foo(){vfunc_called(this, "_ZN7ee260603fooEv");}
+ee26060 ::~ee26060(){ note_dtor("ee26060", this);} // tgen
+ee26060 ::ee26060(){ note_ctor("ee26060", this);} // tgen
+
+static void Test_ee26060()
+{
+ extern Class_Descriptor cd_ee26060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26060, buf);
+ ee26060 *dp, &lv = *(dp=new (buf) ee26060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(8,4), "ee26060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), 0, "ee26060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), 0, "ee26060");
+ check_base_class_offset(lv, (dd6060*), 0, "ee26060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26060.e");
+ test_class_info(&lv, &cd_ee26060);
+ dp->~ee26060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26060(Test_ee26060, "ee26060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26060C1Ev();
+extern void _ZN7ee26060D1Ev();
+Name_Map name_map_ee26060[] = {
+ NSPAIR(_ZN7ee26060C1Ev),
+ NSPAIR(_ZN7ee26060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee26060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26060[];
+extern void _ZN6dd60603barEv();
+extern void _ZN7ee260603fooEv();
+static VTBL_ENTRY vtc_ee26060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26060[0]),
+ (VTBL_ENTRY)&_ZN6dd60603barEv,
+ (VTBL_ENTRY)&_ZN7ee260603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26060[];
+extern VTBL_ENTRY _ZTV7ee26060[];
+Class_Descriptor cd_ee26060 = { "ee26060", // class name
+ bases_ee26060, 4,
+ &(vtc_ee26060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26060),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 ee36060 : virtual dd6060 {
+ int e;
+ virtual void foo(); // _ZN7ee360603fooEv
+ ~ee36060(); // tgen
+ ee36060(); // tgen
+};
+//SIG(1 ee36060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36060 ::foo(){vfunc_called(this, "_ZN7ee360603fooEv");}
+ee36060 ::~ee36060(){ note_dtor("ee36060", this);} // tgen
+ee36060 ::ee36060(){ note_ctor("ee36060", this);} // tgen
+
+static void Test_ee36060()
+{
+ extern Class_Descriptor cd_ee36060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36060, buf);
+ ee36060 *dp, &lv = *(dp=new (buf) ee36060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(24,12), "ee36060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), ABISELECT(16,8), "ee36060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), ABISELECT(16,8), "ee36060");
+ check_base_class_offset(lv, (dd6060*), ABISELECT(16,8), "ee36060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36060.e");
+ test_class_info(&lv, &cd_ee36060);
+ dp->~ee36060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36060(Test_ee36060, "ee36060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36060C1Ev();
+extern void _ZN7ee36060D1Ev();
+Name_Map name_map_ee36060[] = {
+ NSPAIR(_ZN7ee36060C1Ev),
+ NSPAIR(_ZN7ee36060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee36060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, ABISELECT(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 _ZTI7ee36060[];
+extern void _ZN7ee360603fooEv();
+extern void _ZN6dd60603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee360603fooEv,_ZTv0_n16_N7ee360603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360603fooEv,_ZThn8_N7ee360603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36060[0]),
+ (VTBL_ENTRY)&_ZN7ee360603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36060[0]),
+ (VTBL_ENTRY)&_ZN6dd60603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee360603fooEv,_ZTv0_n16_N7ee360603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36060[];
+static VTT_ENTRY vtt_ee36060[] = {
+ {&(_ZTV7ee36060[3]), 3,10},
+ {&(_ZTV7ee36060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36060[];
+extern VTBL_ENTRY _ZTV7ee36060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36060[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee360603fooEv,_ZTv0_n16_N7ee360603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360603fooEv,_ZThn8_N7ee360603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36060 = { "ee36060", // class name
+ bases_ee36060, 4,
+ &(vtc_ee36060[0]), // expected_vtbl_contents
+ &(vtt_ee36060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36060),2, //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 ee46060 : dd6060 {
+ int e;
+ virtual void bar(); // _ZN7ee460603barEv
+ ~ee46060(); // tgen
+ ee46060(); // tgen
+};
+//SIG(1 ee46060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46060 ::bar(){vfunc_called(this, "_ZN7ee460603barEv");}
+ee46060 ::~ee46060(){ note_dtor("ee46060", this);} // tgen
+ee46060 ::ee46060(){ note_ctor("ee46060", this);} // tgen
+
+static void Test_ee46060()
+{
+ extern Class_Descriptor cd_ee46060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46060, buf);
+ ee46060 *dp, &lv = *(dp=new (buf) ee46060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(8,4), "ee46060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), 0, "ee46060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), 0, "ee46060");
+ check_base_class_offset(lv, (dd6060*), 0, "ee46060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46060.e");
+ test_class_info(&lv, &cd_ee46060);
+ dp->~ee46060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46060(Test_ee46060, "ee46060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46060C1Ev();
+extern void _ZN7ee46060D1Ev();
+Name_Map name_map_ee46060[] = {
+ NSPAIR(_ZN7ee46060C1Ev),
+ NSPAIR(_ZN7ee46060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee46060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46060[];
+extern void _ZN7ee460603barEv();
+extern void _ZN6dd60603fooEv();
+static VTBL_ENTRY vtc_ee46060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46060[0]),
+ (VTBL_ENTRY)&_ZN7ee460603barEv,
+ (VTBL_ENTRY)&_ZN6dd60603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46060[];
+extern VTBL_ENTRY _ZTV7ee46060[];
+Class_Descriptor cd_ee46060 = { "ee46060", // class name
+ bases_ee46060, 4,
+ &(vtc_ee46060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46060),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 ee56060 : virtual dd6060 {
+ int e;
+ virtual void bar(); // _ZN7ee560603barEv
+ ~ee56060(); // tgen
+ ee56060(); // tgen
+};
+//SIG(1 ee56060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56060 ::bar(){vfunc_called(this, "_ZN7ee560603barEv");}
+ee56060 ::~ee56060(){ note_dtor("ee56060", this);} // tgen
+ee56060 ::ee56060(){ note_ctor("ee56060", this);} // tgen
+
+static void Test_ee56060()
+{
+ extern Class_Descriptor cd_ee56060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56060, buf);
+ ee56060 *dp, &lv = *(dp=new (buf) ee56060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(24,12), "ee56060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), ABISELECT(16,8), "ee56060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), ABISELECT(16,8), "ee56060");
+ check_base_class_offset(lv, (dd6060*), ABISELECT(16,8), "ee56060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56060.e");
+ test_class_info(&lv, &cd_ee56060);
+ dp->~ee56060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56060(Test_ee56060, "ee56060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56060C1Ev();
+extern void _ZN7ee56060D1Ev();
+Name_Map name_map_ee56060[] = {
+ NSPAIR(_ZN7ee56060C1Ev),
+ NSPAIR(_ZN7ee56060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee56060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, ABISELECT(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 _ZTI7ee56060[];
+extern void _ZN7ee560603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee560603barEv,_ZTv0_n12_N7ee560603barEv)();
+extern void ABISELECT(_ZThn16_N7ee560603barEv,_ZThn8_N7ee560603barEv)() __attribute__((weak));
+extern void _ZN6dd60603fooEv();
+static VTBL_ENTRY vtc_ee56060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56060[0]),
+ (VTBL_ENTRY)&_ZN7ee560603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee560603barEv,_ZTv0_n12_N7ee560603barEv),
+ (VTBL_ENTRY)&_ZN6dd60603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56060[];
+static VTT_ENTRY vtt_ee56060[] = {
+ {&(_ZTV7ee56060[3]), 3,10},
+ {&(_ZTV7ee56060[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56060[];
+extern VTBL_ENTRY _ZTV7ee56060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56060[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee560603barEv,_ZTv0_n12_N7ee560603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560603barEv,_ZThn8_N7ee560603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56060 = { "ee56060", // class name
+ bases_ee56060, 4,
+ &(vtc_ee56060[0]), // expected_vtbl_contents
+ &(vtt_ee56060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56060),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56060),2, //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 ee66060 : dd6060 {
+ int e;
+ virtual void foo(); // _ZN7ee660603fooEv
+ virtual void bar(); // _ZN7ee660603barEv
+ ~ee66060(); // tgen
+ ee66060(); // tgen
+};
+//SIG(1 ee66060) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66060 ::foo(){vfunc_called(this, "_ZN7ee660603fooEv");}
+void ee66060 ::bar(){vfunc_called(this, "_ZN7ee660603barEv");}
+ee66060 ::~ee66060(){ note_dtor("ee66060", this);} // tgen
+ee66060 ::ee66060(){ note_ctor("ee66060", this);} // tgen
+
+static void Test_ee66060()
+{
+ extern Class_Descriptor cd_ee66060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66060, buf);
+ ee66060 *dp, &lv = *(dp=new (buf) ee66060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(8,4), "ee66060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), 0, "ee66060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), 0, "ee66060");
+ check_base_class_offset(lv, (dd6060*), 0, "ee66060");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66060.e");
+ test_class_info(&lv, &cd_ee66060);
+ dp->~ee66060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66060(Test_ee66060, "ee66060", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66060C1Ev();
+extern void _ZN7ee66060D1Ev();
+Name_Map name_map_ee66060[] = {
+ NSPAIR(_ZN7ee66060C1Ev),
+ NSPAIR(_ZN7ee66060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee66060[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66060[];
+extern void _ZN7ee660603barEv();
+extern void _ZN7ee660603fooEv();
+static VTBL_ENTRY vtc_ee66060[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66060[0]),
+ (VTBL_ENTRY)&_ZN7ee660603barEv,
+ (VTBL_ENTRY)&_ZN7ee660603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66060[];
+extern VTBL_ENTRY _ZTV7ee66060[];
+Class_Descriptor cd_ee66060 = { "ee66060", // class name
+ bases_ee66060, 4,
+ &(vtc_ee66060[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66060),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 ee76060 : virtual dd6060 {
+ int e;
+ virtual void foo(); // _ZN7ee760603fooEv
+ virtual void bar(); // _ZN7ee760603barEv
+ ~ee76060(); // tgen
+ ee76060(); // tgen
+};
+//SIG(1 ee76060) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76060 ::foo(){vfunc_called(this, "_ZN7ee760603fooEv");}
+void ee76060 ::bar(){vfunc_called(this, "_ZN7ee760603barEv");}
+ee76060 ::~ee76060(){ note_dtor("ee76060", this);} // tgen
+ee76060 ::ee76060(){ note_ctor("ee76060", this);} // tgen
+
+static void Test_ee76060()
+{
+ extern Class_Descriptor cd_ee76060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76060, buf);
+ ee76060 *dp, &lv = *(dp=new (buf) ee76060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*)(dd6060*), ABISELECT(24,12), "ee76060");
+ check_base_class_offset(lv, (bb60*)(cc060*)(dd6060*), ABISELECT(16,8), "ee76060");
+ check_base_class_offset(lv, (cc060*)(dd6060*), ABISELECT(16,8), "ee76060");
+ check_base_class_offset(lv, (dd6060*), ABISELECT(16,8), "ee76060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76060.e");
+ test_class_info(&lv, &cd_ee76060);
+ dp->~ee76060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76060(Test_ee76060, "ee76060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76060C1Ev();
+extern void _ZN7ee76060D1Ev();
+Name_Map name_map_ee76060[] = {
+ NSPAIR(_ZN7ee76060C1Ev),
+ NSPAIR(_ZN7ee76060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd6060;
+extern VTBL_ENTRY _ZTI6dd6060[];
+extern VTBL_ENTRY _ZTV6dd6060[];
+static Base_Class bases_ee76060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6060, ABISELECT(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 _ZTI7ee76060[];
+extern void _ZN7ee760603fooEv();
+extern void _ZN7ee760603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760603barEv,_ZTv0_n12_N7ee760603barEv)();
+extern void ABISELECT(_ZThn16_N7ee760603barEv,_ZThn8_N7ee760603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760603fooEv,_ZTv0_n16_N7ee760603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760603fooEv,_ZThn8_N7ee760603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76060[0]),
+ (VTBL_ENTRY)&_ZN7ee760603fooEv,
+ (VTBL_ENTRY)&_ZN7ee760603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760603barEv,_ZTv0_n12_N7ee760603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760603fooEv,_ZTv0_n16_N7ee760603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76060[];
+static VTT_ENTRY vtt_ee76060[] = {
+ {&(_ZTV7ee76060[3]), 3,11},
+ {&(_ZTV7ee76060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76060[];
+extern VTBL_ENTRY _ZTV7ee76060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76060[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760603fooEv,_ZTv0_n16_N7ee760603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760603fooEv,_ZThn8_N7ee760603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760603barEv,_ZTv0_n12_N7ee760603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760603barEv,_ZThn8_N7ee760603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76060 = { "ee76060", // class name
+ bases_ee76060, 4,
+ &(vtc_ee76060[0]), // expected_vtbl_contents
+ &(vtt_ee76060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76060),2, //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 dd7060 : virtual cc060 {
+ int d;
+ virtual void bar(); // _ZN6dd70603barEv
+ virtual void foo(); // _ZN6dd70603fooEv
+ ~dd7060(); // tgen
+ dd7060(); // tgen
+};
+//SIG(-1 dd7060) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7060 ::bar(){vfunc_called(this, "_ZN6dd70603barEv");}
+void dd7060 ::foo(){vfunc_called(this, "_ZN6dd70603fooEv");}
+dd7060 ::~dd7060(){ note_dtor("dd7060", this);} // tgen
+dd7060 ::dd7060(){ note_ctor("dd7060", this);} // tgen
+
+static void Test_dd7060()
+{
+ extern Class_Descriptor cd_dd7060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7060, buf);
+ dd7060 *dp, &lv = *(dp=new (buf) dd7060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,12), "dd7060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,8), "dd7060");
+ check_base_class_offset(lv, (cc060*), ABISELECT(16,8), "dd7060");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7060.d");
+ test_class_info(&lv, &cd_dd7060);
+ dp->~dd7060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7060(Test_dd7060, "dd7060", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7060C1Ev();
+extern void _ZN6dd7060D1Ev();
+Name_Map name_map_dd7060[] = {
+ NSPAIR(_ZN6dd7060C1Ev),
+ NSPAIR(_ZN6dd7060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+static Base_Class bases_dd7060[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7060[];
+static VTT_ENTRY vtt_dd7060[] = {
+ {&(_ZTV6dd7060[3]), 3,11},
+ {&(_ZTV6dd7060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7060 = { "dd7060", // class name
+ bases_dd7060, 3,
+ &(vtc_dd7060[0]), // expected_vtbl_contents
+ &(vtt_dd7060[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7060),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07060 : dd7060 {
+ int e;
+ ~ee07060(); // tgen
+ ee07060(); // tgen
+};
+//SIG(1 ee07060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07060 ::~ee07060(){ note_dtor("ee07060", this);} // tgen
+ee07060 ::ee07060(){ note_ctor("ee07060", this);} // tgen
+
+static void Test_ee07060()
+{
+ extern Class_Descriptor cd_ee07060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07060, buf);
+ ee07060 *dp, &lv = *(dp=new (buf) ee07060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee07060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee07060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(16,12), "ee07060");
+ check_base_class_offset(lv, (dd7060*), 0, "ee07060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07060.e");
+ test_class_info(&lv, &cd_ee07060);
+ dp->~ee07060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07060(Test_ee07060, "ee07060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07060C1Ev();
+extern void _ZN7ee07060D1Ev();
+Name_Map name_map_ee07060[] = {
+ NSPAIR(_ZN7ee07060C1Ev),
+ NSPAIR(_ZN7ee07060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee07060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee07060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee07060[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee07060[] = {
+ {&(_ZTV7ee07060[3]), 3,11},
+ {&(_tg__ZTV6dd7060__7ee07060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee07060[4]), 4,6},
+ {&(_ZTV7ee07060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07060[];
+extern VTBL_ENTRY _ZTV7ee07060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07060[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07060 = { "ee07060", // class name
+ bases_ee07060, 4,
+ &(vtc_ee07060[0]), // expected_vtbl_contents
+ &(vtt_ee07060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07060),4, //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 ee17060 : virtual dd7060 {
+ int e;
+ ~ee17060(); // tgen
+ ee17060(); // tgen
+};
+//SIG(1 ee17060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17060 ::~ee17060(){ note_dtor("ee17060", this);} // tgen
+ee17060 ::ee17060(){ note_ctor("ee17060", this);} // tgen
+
+static void Test_ee17060()
+{
+ extern Class_Descriptor cd_ee17060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17060, buf);
+ ee17060 *dp, &lv = *(dp=new (buf) ee17060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee17060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee17060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(32,16), "ee17060");
+ check_base_class_offset(lv, (dd7060*), ABISELECT(16,8), "ee17060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17060.e");
+ test_class_info(&lv, &cd_ee17060);
+ dp->~ee17060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17060(Test_ee17060, "ee17060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17060C1Ev();
+extern void _ZN7ee17060D1Ev();
+Name_Map name_map_ee17060[] = {
+ NSPAIR(_ZN7ee17060C1Ev),
+ NSPAIR(_ZN7ee17060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee17060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, 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 _ZTI7ee17060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17060[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee17060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee17060[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee17060[] = {
+ {&(_ZTV7ee17060[4]), 4,17},
+ {&(_ZTV7ee17060[9]), 9,17},
+ {&(_ZTV7ee17060[15]), 15,17},
+ {&(_tg__ZTV6dd7060__7ee17060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee17060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17060[];
+extern VTBL_ENTRY _ZTV7ee17060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17060[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17060 = { "ee17060", // class name
+ bases_ee17060, 4,
+ &(vtc_ee17060[0]), // expected_vtbl_contents
+ &(vtt_ee17060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17060),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17060),5, //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 ee27060 : dd7060 {
+ int e;
+ virtual void foo(); // _ZN7ee270603fooEv
+ ~ee27060(); // tgen
+ ee27060(); // tgen
+};
+//SIG(1 ee27060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27060 ::foo(){vfunc_called(this, "_ZN7ee270603fooEv");}
+ee27060 ::~ee27060(){ note_dtor("ee27060", this);} // tgen
+ee27060 ::ee27060(){ note_ctor("ee27060", this);} // tgen
+
+static void Test_ee27060()
+{
+ extern Class_Descriptor cd_ee27060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27060, buf);
+ ee27060 *dp, &lv = *(dp=new (buf) ee27060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee27060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee27060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(16,12), "ee27060");
+ check_base_class_offset(lv, (dd7060*), 0, "ee27060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27060.e");
+ test_class_info(&lv, &cd_ee27060);
+ dp->~ee27060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27060(Test_ee27060, "ee27060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27060C1Ev();
+extern void _ZN7ee27060D1Ev();
+Name_Map name_map_ee27060[] = {
+ NSPAIR(_ZN7ee27060C1Ev),
+ NSPAIR(_ZN7ee27060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee27060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN7ee270603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee270603fooEv,_ZTv0_n16_N7ee270603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270603fooEv,_ZThn12_N7ee270603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN7ee270603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee270603fooEv,_ZTv0_n16_N7ee270603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee27060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee27060[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee27060[] = {
+ {&(_ZTV7ee27060[3]), 3,11},
+ {&(_tg__ZTV6dd7060__7ee27060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee27060[4]), 4,6},
+ {&(_ZTV7ee27060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27060[];
+extern VTBL_ENTRY _ZTV7ee27060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27060[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee270603fooEv,_ZTv0_n16_N7ee270603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270603fooEv,_ZThn12_N7ee270603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27060 = { "ee27060", // class name
+ bases_ee27060, 4,
+ &(vtc_ee27060[0]), // expected_vtbl_contents
+ &(vtt_ee27060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27060),4, //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 ee37060 : virtual dd7060 {
+ int e;
+ virtual void foo(); // _ZN7ee370603fooEv
+ ~ee37060(); // tgen
+ ee37060(); // tgen
+};
+//SIG(1 ee37060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37060 ::foo(){vfunc_called(this, "_ZN7ee370603fooEv");}
+ee37060 ::~ee37060(){ note_dtor("ee37060", this);} // tgen
+ee37060 ::ee37060(){ note_ctor("ee37060", this);} // tgen
+
+static void Test_ee37060()
+{
+ extern Class_Descriptor cd_ee37060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37060, buf);
+ ee37060 *dp, &lv = *(dp=new (buf) ee37060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee37060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee37060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(32,16), "ee37060");
+ check_base_class_offset(lv, (dd7060*), ABISELECT(16,8), "ee37060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37060.e");
+ test_class_info(&lv, &cd_ee37060);
+ dp->~ee37060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37060(Test_ee37060, "ee37060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37060C1Ev();
+extern void _ZN7ee37060D1Ev();
+Name_Map name_map_ee37060[] = {
+ NSPAIR(_ZN7ee37060C1Ev),
+ NSPAIR(_ZN7ee37060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee37060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, ABISELECT(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 _ZTI7ee37060[];
+extern void _ZN7ee370603fooEv();
+extern void _ZN6dd70603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370603fooEv,_ZTv0_n20_N7ee370603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370603fooEv,_ZThn8_N7ee370603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee370603fooEv,_ZTv0_n16_N7ee370603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370603fooEv,_ZThn16_N7ee370603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37060[0]),
+ (VTBL_ENTRY)&_ZN7ee370603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370603fooEv,_ZTv0_n20_N7ee370603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee370603fooEv,_ZTv0_n16_N7ee370603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee37060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee37060[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee37060[] = {
+ {&(_ZTV7ee37060[4]), 4,18},
+ {&(_ZTV7ee37060[10]), 10,18},
+ {&(_ZTV7ee37060[16]), 16,18},
+ {&(_tg__ZTV6dd7060__7ee37060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee37060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37060[];
+extern VTBL_ENTRY _ZTV7ee37060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37060[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee370603fooEv,_ZTv0_n16_N7ee370603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370603fooEv,_ZThn16_N7ee370603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370603fooEv,_ZTv0_n20_N7ee370603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370603fooEv,_ZThn8_N7ee370603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37060 = { "ee37060", // class name
+ bases_ee37060, 4,
+ &(vtc_ee37060[0]), // expected_vtbl_contents
+ &(vtt_ee37060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37060),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37060),5, //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 ee47060 : dd7060 {
+ int e;
+ virtual void bar(); // _ZN7ee470603barEv
+ ~ee47060(); // tgen
+ ee47060(); // tgen
+};
+//SIG(1 ee47060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47060 ::bar(){vfunc_called(this, "_ZN7ee470603barEv");}
+ee47060 ::~ee47060(){ note_dtor("ee47060", this);} // tgen
+ee47060 ::ee47060(){ note_ctor("ee47060", this);} // tgen
+
+static void Test_ee47060()
+{
+ extern Class_Descriptor cd_ee47060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47060, buf);
+ ee47060 *dp, &lv = *(dp=new (buf) ee47060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee47060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee47060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(16,12), "ee47060");
+ check_base_class_offset(lv, (dd7060*), 0, "ee47060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47060.e");
+ test_class_info(&lv, &cd_ee47060);
+ dp->~ee47060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47060(Test_ee47060, "ee47060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47060C1Ev();
+extern void _ZN7ee47060D1Ev();
+Name_Map name_map_ee47060[] = {
+ NSPAIR(_ZN7ee47060C1Ev),
+ NSPAIR(_ZN7ee47060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee47060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47060[];
+extern void _ZN7ee470603barEv();
+extern void _ZN6dd70603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee470603barEv,_ZTv0_n12_N7ee470603barEv)();
+extern void ABISELECT(_ZThn16_N7ee470603barEv,_ZThn12_N7ee470603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47060[0]),
+ (VTBL_ENTRY)&_ZN7ee470603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee470603barEv,_ZTv0_n12_N7ee470603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee47060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee47060[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee47060[] = {
+ {&(_ZTV7ee47060[3]), 3,11},
+ {&(_tg__ZTV6dd7060__7ee47060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee47060[4]), 4,6},
+ {&(_ZTV7ee47060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47060[];
+extern VTBL_ENTRY _ZTV7ee47060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47060[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee470603barEv,_ZTv0_n12_N7ee470603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470603barEv,_ZThn12_N7ee470603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47060 = { "ee47060", // class name
+ bases_ee47060, 4,
+ &(vtc_ee47060[0]), // expected_vtbl_contents
+ &(vtt_ee47060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47060),4, //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 ee57060 : virtual dd7060 {
+ int e;
+ virtual void bar(); // _ZN7ee570603barEv
+ ~ee57060(); // tgen
+ ee57060(); // tgen
+};
+//SIG(1 ee57060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57060 ::bar(){vfunc_called(this, "_ZN7ee570603barEv");}
+ee57060 ::~ee57060(){ note_dtor("ee57060", this);} // tgen
+ee57060 ::ee57060(){ note_ctor("ee57060", this);} // tgen
+
+static void Test_ee57060()
+{
+ extern Class_Descriptor cd_ee57060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57060, buf);
+ ee57060 *dp, &lv = *(dp=new (buf) ee57060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee57060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee57060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(32,16), "ee57060");
+ check_base_class_offset(lv, (dd7060*), ABISELECT(16,8), "ee57060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57060.e");
+ test_class_info(&lv, &cd_ee57060);
+ dp->~ee57060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57060(Test_ee57060, "ee57060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57060C1Ev();
+extern void _ZN7ee57060D1Ev();
+Name_Map name_map_ee57060[] = {
+ NSPAIR(_ZN7ee57060C1Ev),
+ NSPAIR(_ZN7ee57060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee57060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, ABISELECT(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 _ZTI7ee57060[];
+extern void _ZN7ee570603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570603barEv,_ZTv0_n16_N7ee570603barEv)();
+extern void ABISELECT(_ZThn16_N7ee570603barEv,_ZThn8_N7ee570603barEv)() __attribute__((weak));
+extern void _ZN6dd70603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee570603barEv,_ZTv0_n12_N7ee570603barEv)();
+extern void ABISELECT(_ZThn32_N7ee570603barEv,_ZThn16_N7ee570603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57060[0]),
+ (VTBL_ENTRY)&_ZN7ee570603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570603barEv,_ZTv0_n16_N7ee570603barEv),
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee570603barEv,_ZTv0_n12_N7ee570603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee57060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee57060[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee57060[] = {
+ {&(_ZTV7ee57060[4]), 4,18},
+ {&(_ZTV7ee57060[10]), 10,18},
+ {&(_ZTV7ee57060[16]), 16,18},
+ {&(_tg__ZTV6dd7060__7ee57060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee57060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57060[];
+extern VTBL_ENTRY _ZTV7ee57060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57060[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee570603barEv,_ZTv0_n12_N7ee570603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570603barEv,_ZThn16_N7ee570603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570603barEv,_ZTv0_n16_N7ee570603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570603barEv,_ZThn8_N7ee570603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57060 = { "ee57060", // class name
+ bases_ee57060, 4,
+ &(vtc_ee57060[0]), // expected_vtbl_contents
+ &(vtt_ee57060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57060),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57060),5, //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 ee67060 : dd7060 {
+ int e;
+ virtual void foo(); // _ZN7ee670603fooEv
+ virtual void bar(); // _ZN7ee670603barEv
+ ~ee67060(); // tgen
+ ee67060(); // tgen
+};
+//SIG(1 ee67060) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67060 ::foo(){vfunc_called(this, "_ZN7ee670603fooEv");}
+void ee67060 ::bar(){vfunc_called(this, "_ZN7ee670603barEv");}
+ee67060 ::~ee67060(){ note_dtor("ee67060", this);} // tgen
+ee67060 ::ee67060(){ note_ctor("ee67060", this);} // tgen
+
+static void Test_ee67060()
+{
+ extern Class_Descriptor cd_ee67060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67060, buf);
+ ee67060 *dp, &lv = *(dp=new (buf) ee67060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(24,16), "ee67060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(16,12), "ee67060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(16,12), "ee67060");
+ check_base_class_offset(lv, (dd7060*), 0, "ee67060");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67060.e");
+ test_class_info(&lv, &cd_ee67060);
+ dp->~ee67060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67060(Test_ee67060, "ee67060", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67060C1Ev();
+extern void _ZN7ee67060D1Ev();
+Name_Map name_map_ee67060[] = {
+ NSPAIR(_ZN7ee67060C1Ev),
+ NSPAIR(_ZN7ee67060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee67060[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67060[];
+extern void _ZN7ee670603barEv();
+extern void _ZN7ee670603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670603barEv,_ZTv0_n12_N7ee670603barEv)();
+extern void ABISELECT(_ZThn16_N7ee670603barEv,_ZThn12_N7ee670603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670603fooEv,_ZTv0_n16_N7ee670603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670603fooEv,_ZThn12_N7ee670603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67060[0]),
+ (VTBL_ENTRY)&_ZN7ee670603barEv,
+ (VTBL_ENTRY)&_ZN7ee670603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670603barEv,_ZTv0_n12_N7ee670603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670603fooEv,_ZTv0_n16_N7ee670603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee67060[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee67060[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee67060[] = {
+ {&(_ZTV7ee67060[3]), 3,11},
+ {&(_tg__ZTV6dd7060__7ee67060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee67060[4]), 4,6},
+ {&(_ZTV7ee67060[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67060[];
+extern VTBL_ENTRY _ZTV7ee67060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67060[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn12_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn12_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670603fooEv,_ZTv0_n16_N7ee670603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670603fooEv,_ZThn12_N7ee670603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670603barEv,_ZTv0_n12_N7ee670603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670603barEv,_ZThn12_N7ee670603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67060 = { "ee67060", // class name
+ bases_ee67060, 4,
+ &(vtc_ee67060[0]), // expected_vtbl_contents
+ &(vtt_ee67060[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67060),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67060),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67060),4, //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 ee77060 : virtual dd7060 {
+ int e;
+ virtual void foo(); // _ZN7ee770603fooEv
+ virtual void bar(); // _ZN7ee770603barEv
+ ~ee77060(); // tgen
+ ee77060(); // tgen
+};
+//SIG(1 ee77060) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77060 ::foo(){vfunc_called(this, "_ZN7ee770603fooEv");}
+void ee77060 ::bar(){vfunc_called(this, "_ZN7ee770603barEv");}
+ee77060 ::~ee77060(){ note_dtor("ee77060", this);} // tgen
+ee77060 ::ee77060(){ note_ctor("ee77060", this);} // tgen
+
+static void Test_ee77060()
+{
+ extern Class_Descriptor cd_ee77060;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77060, buf);
+ ee77060 *dp, &lv = *(dp=new (buf) ee77060());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77060)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77060)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc060*), ABISELECT(40,20), "ee77060");
+ check_base_class_offset(lv, (bb60*)(cc060*), ABISELECT(32,16), "ee77060");
+ check_base_class_offset(lv, (cc060*)(dd7060*), ABISELECT(32,16), "ee77060");
+ check_base_class_offset(lv, (dd7060*), ABISELECT(16,8), "ee77060");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77060.e");
+ test_class_info(&lv, &cd_ee77060);
+ dp->~ee77060();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77060(Test_ee77060, "ee77060", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77060C1Ev();
+extern void _ZN7ee77060D1Ev();
+Name_Map name_map_ee77060[] = {
+ NSPAIR(_ZN7ee77060C1Ev),
+ NSPAIR(_ZN7ee77060D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc060;
+extern VTBL_ENTRY _ZTI5cc060[];
+extern VTBL_ENTRY _ZTV5cc060[];
+extern Class_Descriptor cd_dd7060;
+extern VTBL_ENTRY _ZTI6dd7060[];
+extern VTBL_ENTRY _ZTV6dd7060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7060[];
+static Base_Class bases_ee77060[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc060, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7060, ABISELECT(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 _ZTI7ee77060[];
+extern void _ZN7ee770603fooEv();
+extern void _ZN7ee770603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770603barEv,_ZTv0_n16_N7ee770603barEv)();
+extern void ABISELECT(_ZThn16_N7ee770603barEv,_ZThn8_N7ee770603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770603fooEv,_ZTv0_n20_N7ee770603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770603fooEv,_ZThn8_N7ee770603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770603barEv,_ZTv0_n12_N7ee770603barEv)();
+extern void ABISELECT(_ZThn32_N7ee770603barEv,_ZThn16_N7ee770603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770603fooEv,_ZTv0_n16_N7ee770603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770603fooEv,_ZThn16_N7ee770603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77060[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77060[0]),
+ (VTBL_ENTRY)&_ZN7ee770603fooEv,
+ (VTBL_ENTRY)&_ZN7ee770603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770603barEv,_ZTv0_n16_N7ee770603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770603fooEv,_ZTv0_n20_N7ee770603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770603barEv,_ZTv0_n12_N7ee770603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770603fooEv,_ZTv0_n16_N7ee770603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77060[];
+extern void _ZN6dd70603barEv();
+extern void _ZN6dd70603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7060__7ee77060[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&_ZN6dd70603barEv,
+ (VTBL_ENTRY)&_ZN6dd70603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv)();
+extern void ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb605cc060__6dd7060__7ee77060[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7060[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv),
+};
+static VTT_ENTRY vtt_ee77060[] = {
+ {&(_ZTV7ee77060[4]), 4,19},
+ {&(_ZTV7ee77060[11]), 11,19},
+ {&(_ZTV7ee77060[17]), 17,19},
+ {&(_tg__ZTV6dd7060__7ee77060[3]), 3,5},
+ {&(_tg__ZTV4bb605cc060__6dd7060__7ee77060[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77060[];
+extern VTBL_ENTRY _ZTV7ee77060[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77060[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70603fooEv,_ZTv0_n16_N6dd70603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603fooEv,_ZThn8_N6dd70603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70603barEv,_ZTv0_n12_N6dd70603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70603barEv,_ZThn8_N6dd70603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770603fooEv,_ZTv0_n16_N7ee770603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770603fooEv,_ZThn16_N7ee770603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770603barEv,_ZTv0_n12_N7ee770603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770603barEv,_ZThn16_N7ee770603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770603fooEv,_ZTv0_n20_N7ee770603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770603fooEv,_ZThn8_N7ee770603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770603barEv,_ZTv0_n16_N7ee770603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770603barEv,_ZThn8_N7ee770603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77060 = { "ee77060", // class name
+ bases_ee77060, 4,
+ &(vtc_ee77060[0]), // expected_vtbl_contents
+ &(vtt_ee77060[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77060),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77060),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77060),5, //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 cc160 : virtual bb60 {
+ int c;
+ ~cc160(); // tgen
+ cc160(); // tgen
+};
+//SIG(-1 cc160) C1{ VBC2{ BC3{ Fi} v1 v2 Fi} Fi}
+
+
+cc160 ::~cc160(){ note_dtor("cc160", this);} // tgen
+cc160 ::cc160(){ note_ctor("cc160", this);} // tgen
+
+static void Test_cc160()
+{
+ extern Class_Descriptor cd_cc160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc160, buf);
+ cc160 *dp, &lv = *(dp=new (buf) cc160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,12), "cc160");
+ check_base_class_offset(lv, (bb60*), ABISELECT(16,8), "cc160");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc160.c");
+ test_class_info(&lv, &cd_cc160);
+ dp->~cc160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc160(Test_cc160, "cc160", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc160C1Ev();
+extern void _ZN5cc160D1Ev();
+Name_Map name_map_cc160[] = {
+ NSPAIR(_ZN5cc160C1Ev),
+ NSPAIR(_ZN5cc160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc160[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_cc160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc160[];
+static VTT_ENTRY vtt_cc160[] = {
+ {&(_ZTV5cc160[3]), 3,9},
+ {&(_ZTV5cc160[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+Class_Descriptor cd_cc160 = { "cc160", // class name
+ bases_cc160, 2,
+ &(vtc_cc160[0]), // expected_vtbl_contents
+ &(vtt_cc160[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc160),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc160),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 dd0160 : cc160 {
+ int d;
+ ~dd0160(); // tgen
+ dd0160(); // tgen
+};
+//SIG(-1 dd0160) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0160 ::~dd0160(){ note_dtor("dd0160", this);} // tgen
+dd0160 ::dd0160(){ note_ctor("dd0160", this);} // tgen
+
+static void Test_dd0160()
+{
+ extern Class_Descriptor cd_dd0160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0160, buf);
+ dd0160 *dp, &lv = *(dp=new (buf) dd0160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd0160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(16,12), "dd0160");
+ check_base_class_offset(lv, (cc160*), 0, "dd0160");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0160.d");
+ test_class_info(&lv, &cd_dd0160);
+ dp->~dd0160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0160(Test_dd0160, "dd0160", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0160C1Ev();
+extern void _ZN6dd0160D1Ev();
+Name_Map name_map_dd0160[] = {
+ NSPAIR(_ZN6dd0160C1Ev),
+ NSPAIR(_ZN6dd0160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd0160[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd0160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd0160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd0160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd0160[] = {
+ {&(_ZTV6dd0160[3]), 3,9},
+ {&(_tg__ZTV5cc160__6dd0160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd0160[4]), 4,6},
+ {&(_ZTV6dd0160[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+Class_Descriptor cd_dd0160 = { "dd0160", // class name
+ bases_dd0160, 3,
+ &(vtc_dd0160[0]), // expected_vtbl_contents
+ &(vtt_dd0160[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0160),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0160),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 ee00160 : dd0160 {
+ int e;
+ ~ee00160(); // tgen
+ ee00160(); // tgen
+};
+//SIG(1 ee00160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00160 ::~ee00160(){ note_dtor("ee00160", this);} // tgen
+ee00160 ::ee00160(){ note_ctor("ee00160", this);} // tgen
+
+static void Test_ee00160()
+{
+ extern Class_Descriptor cd_ee00160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00160, buf);
+ ee00160 *dp, &lv = *(dp=new (buf) ee00160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee00160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(24,16), "ee00160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), 0, "ee00160");
+ check_base_class_offset(lv, (dd0160*), 0, "ee00160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00160.e");
+ test_class_info(&lv, &cd_ee00160);
+ dp->~ee00160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00160(Test_ee00160, "ee00160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00160C1Ev();
+extern void _ZN7ee00160D1Ev();
+Name_Map name_map_ee00160[] = {
+ NSPAIR(_ZN7ee00160C1Ev),
+ NSPAIR(_ZN7ee00160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee00160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee00160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00160[0]),
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee00160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee00160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee00160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee00160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee00160[] = {
+ {&(_ZTV7ee00160[3]), 3,9},
+ {&(_tg__ZTV6dd0160__7ee00160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee00160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee00160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee00160[4]), 4,6},
+ {&(_ZTV7ee00160[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee00160[];
+extern VTBL_ENTRY _ZTV7ee00160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00160[];
+Class_Descriptor cd_ee00160 = { "ee00160", // class name
+ bases_ee00160, 4,
+ &(vtc_ee00160[0]), // expected_vtbl_contents
+ &(vtt_ee00160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00160),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00160),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 ee10160 : virtual dd0160 {
+ int e;
+ ~ee10160(); // tgen
+ ee10160(); // tgen
+};
+//SIG(1 ee10160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10160 ::~ee10160(){ note_dtor("ee10160", this);} // tgen
+ee10160 ::ee10160(){ note_ctor("ee10160", this);} // tgen
+
+static void Test_ee10160()
+{
+ extern Class_Descriptor cd_ee10160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10160, buf);
+ ee10160 *dp, &lv = *(dp=new (buf) ee10160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee10160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(32,20), "ee10160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), ABISELECT(16,8), "ee10160");
+ check_base_class_offset(lv, (dd0160*), ABISELECT(16,8), "ee10160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10160.e");
+ test_class_info(&lv, &cd_ee10160);
+ dp->~ee10160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10160(Test_ee10160, "ee10160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10160C1Ev();
+extern void _ZN7ee10160D1Ev();
+Name_Map name_map_ee10160[] = {
+ NSPAIR(_ZN7ee10160C1Ev),
+ NSPAIR(_ZN7ee10160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee10160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 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 _ZTI7ee10160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee10160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10160[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10160[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee10160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee10160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee10160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee10160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee10160[] = {
+ {&(_ZTV7ee10160[4]), 4,13},
+ {&(_ZTV7ee10160[7]), 7,13},
+ {&(_ZTV7ee10160[11]), 11,13},
+ {&(_tg__ZTV6dd0160__7ee10160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee10160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee10160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee10160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10160[];
+extern VTBL_ENTRY _ZTV7ee10160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10160[];
+Class_Descriptor cd_ee10160 = { "ee10160", // class name
+ bases_ee10160, 4,
+ &(vtc_ee10160[0]), // expected_vtbl_contents
+ &(vtt_ee10160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10160),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10160),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 ee20160 : dd0160 {
+ int e;
+ virtual void foo(); // _ZN7ee201603fooEv
+ ~ee20160(); // tgen
+ ee20160(); // tgen
+};
+//SIG(1 ee20160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20160 ::foo(){vfunc_called(this, "_ZN7ee201603fooEv");}
+ee20160 ::~ee20160(){ note_dtor("ee20160", this);} // tgen
+ee20160 ::ee20160(){ note_ctor("ee20160", this);} // tgen
+
+static void Test_ee20160()
+{
+ extern Class_Descriptor cd_ee20160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20160, buf);
+ ee20160 *dp, &lv = *(dp=new (buf) ee20160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee20160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(24,16), "ee20160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), 0, "ee20160");
+ check_base_class_offset(lv, (dd0160*), 0, "ee20160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20160.e");
+ test_class_info(&lv, &cd_ee20160);
+ dp->~ee20160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20160(Test_ee20160, "ee20160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20160C1Ev();
+extern void _ZN7ee20160D1Ev();
+Name_Map name_map_ee20160[] = {
+ NSPAIR(_ZN7ee20160C1Ev),
+ NSPAIR(_ZN7ee20160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee20160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20160[];
+extern void _ZN7ee201603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee201603fooEv,_ZTv0_n16_N7ee201603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201603fooEv,_ZThn16_N7ee201603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20160[0]),
+ (VTBL_ENTRY)&_ZN7ee201603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee201603fooEv,_ZTv0_n16_N7ee201603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee20160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee20160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee20160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee20160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee20160[] = {
+ {&(_ZTV7ee20160[3]), 3,10},
+ {&(_tg__ZTV6dd0160__7ee20160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee20160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee20160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee20160[4]), 4,6},
+ {&(_ZTV7ee20160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20160[];
+extern VTBL_ENTRY _ZTV7ee20160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20160[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee201603fooEv,_ZTv0_n16_N7ee201603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201603fooEv,_ZThn16_N7ee201603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20160 = { "ee20160", // class name
+ bases_ee20160, 4,
+ &(vtc_ee20160[0]), // expected_vtbl_contents
+ &(vtt_ee20160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20160),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30160 : virtual dd0160 {
+ int e;
+ virtual void foo(); // _ZN7ee301603fooEv
+ ~ee30160(); // tgen
+ ee30160(); // tgen
+};
+//SIG(1 ee30160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30160 ::foo(){vfunc_called(this, "_ZN7ee301603fooEv");}
+ee30160 ::~ee30160(){ note_dtor("ee30160", this);} // tgen
+ee30160 ::ee30160(){ note_ctor("ee30160", this);} // tgen
+
+static void Test_ee30160()
+{
+ extern Class_Descriptor cd_ee30160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30160, buf);
+ ee30160 *dp, &lv = *(dp=new (buf) ee30160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee30160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(32,20), "ee30160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), ABISELECT(16,8), "ee30160");
+ check_base_class_offset(lv, (dd0160*), ABISELECT(16,8), "ee30160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30160.e");
+ test_class_info(&lv, &cd_ee30160);
+ dp->~ee30160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30160(Test_ee30160, "ee30160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30160C1Ev();
+extern void _ZN7ee30160D1Ev();
+Name_Map name_map_ee30160[] = {
+ NSPAIR(_ZN7ee30160C1Ev),
+ NSPAIR(_ZN7ee30160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee30160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 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 _ZTI7ee30160[];
+extern void _ZN7ee301603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee301603fooEv,_ZTv0_n16_N7ee301603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301603fooEv,_ZThn20_N7ee301603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30160[0]),
+ (VTBL_ENTRY)&_ZN7ee301603fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30160[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee301603fooEv,_ZTv0_n16_N7ee301603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee30160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee30160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee30160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee30160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee30160[] = {
+ {&(_ZTV7ee30160[4]), 4,14},
+ {&(_ZTV7ee30160[8]), 8,14},
+ {&(_ZTV7ee30160[12]), 12,14},
+ {&(_tg__ZTV6dd0160__7ee30160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee30160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee30160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee30160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30160[];
+extern VTBL_ENTRY _ZTV7ee30160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30160[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee301603fooEv,_ZTv0_n16_N7ee301603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301603fooEv,_ZThn20_N7ee301603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30160 = { "ee30160", // class name
+ bases_ee30160, 4,
+ &(vtc_ee30160[0]), // expected_vtbl_contents
+ &(vtt_ee30160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40160 : dd0160 {
+ int e;
+ virtual void bar(); // _ZN7ee401603barEv
+ ~ee40160(); // tgen
+ ee40160(); // tgen
+};
+//SIG(1 ee40160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40160 ::bar(){vfunc_called(this, "_ZN7ee401603barEv");}
+ee40160 ::~ee40160(){ note_dtor("ee40160", this);} // tgen
+ee40160 ::ee40160(){ note_ctor("ee40160", this);} // tgen
+
+static void Test_ee40160()
+{
+ extern Class_Descriptor cd_ee40160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40160, buf);
+ ee40160 *dp, &lv = *(dp=new (buf) ee40160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee40160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(24,16), "ee40160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), 0, "ee40160");
+ check_base_class_offset(lv, (dd0160*), 0, "ee40160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40160.e");
+ test_class_info(&lv, &cd_ee40160);
+ dp->~ee40160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40160(Test_ee40160, "ee40160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40160C1Ev();
+extern void _ZN7ee40160D1Ev();
+Name_Map name_map_ee40160[] = {
+ NSPAIR(_ZN7ee40160C1Ev),
+ NSPAIR(_ZN7ee40160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee40160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40160[];
+extern void _ZN7ee401603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee401603barEv,_ZTv0_n12_N7ee401603barEv)();
+extern void ABISELECT(_ZThn24_N7ee401603barEv,_ZThn16_N7ee401603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee40160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40160[0]),
+ (VTBL_ENTRY)&_ZN7ee401603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee401603barEv,_ZTv0_n12_N7ee401603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee40160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee40160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee40160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee40160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee40160[] = {
+ {&(_ZTV7ee40160[3]), 3,10},
+ {&(_tg__ZTV6dd0160__7ee40160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee40160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee40160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee40160[4]), 4,6},
+ {&(_ZTV7ee40160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40160[];
+extern VTBL_ENTRY _ZTV7ee40160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40160[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee401603barEv,_ZTv0_n12_N7ee401603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401603barEv,_ZThn16_N7ee401603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40160 = { "ee40160", // class name
+ bases_ee40160, 4,
+ &(vtc_ee40160[0]), // expected_vtbl_contents
+ &(vtt_ee40160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40160),6, //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 ee50160 : virtual dd0160 {
+ int e;
+ virtual void bar(); // _ZN7ee501603barEv
+ ~ee50160(); // tgen
+ ee50160(); // tgen
+};
+//SIG(1 ee50160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50160 ::bar(){vfunc_called(this, "_ZN7ee501603barEv");}
+ee50160 ::~ee50160(){ note_dtor("ee50160", this);} // tgen
+ee50160 ::ee50160(){ note_ctor("ee50160", this);} // tgen
+
+static void Test_ee50160()
+{
+ extern Class_Descriptor cd_ee50160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50160, buf);
+ ee50160 *dp, &lv = *(dp=new (buf) ee50160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee50160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(32,20), "ee50160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), ABISELECT(16,8), "ee50160");
+ check_base_class_offset(lv, (dd0160*), ABISELECT(16,8), "ee50160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50160.e");
+ test_class_info(&lv, &cd_ee50160);
+ dp->~ee50160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50160(Test_ee50160, "ee50160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50160C1Ev();
+extern void _ZN7ee50160D1Ev();
+Name_Map name_map_ee50160[] = {
+ NSPAIR(_ZN7ee50160C1Ev),
+ NSPAIR(_ZN7ee50160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee50160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 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 _ZTI7ee50160[];
+extern void _ZN7ee501603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee501603barEv,_ZTv0_n12_N7ee501603barEv)();
+extern void ABISELECT(_ZThn32_N7ee501603barEv,_ZThn20_N7ee501603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee50160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50160[0]),
+ (VTBL_ENTRY)&_ZN7ee501603barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50160[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee501603barEv,_ZTv0_n12_N7ee501603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee50160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee50160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee50160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee50160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee50160[] = {
+ {&(_ZTV7ee50160[4]), 4,14},
+ {&(_ZTV7ee50160[8]), 8,14},
+ {&(_ZTV7ee50160[12]), 12,14},
+ {&(_tg__ZTV6dd0160__7ee50160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee50160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee50160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee50160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50160[];
+extern VTBL_ENTRY _ZTV7ee50160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50160[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee501603barEv,_ZTv0_n12_N7ee501603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501603barEv,_ZThn20_N7ee501603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50160 = { "ee50160", // class name
+ bases_ee50160, 4,
+ &(vtc_ee50160[0]), // expected_vtbl_contents
+ &(vtt_ee50160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60160 : dd0160 {
+ int e;
+ virtual void foo(); // _ZN7ee601603fooEv
+ virtual void bar(); // _ZN7ee601603barEv
+ ~ee60160(); // tgen
+ ee60160(); // tgen
+};
+//SIG(1 ee60160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60160 ::foo(){vfunc_called(this, "_ZN7ee601603fooEv");}
+void ee60160 ::bar(){vfunc_called(this, "_ZN7ee601603barEv");}
+ee60160 ::~ee60160(){ note_dtor("ee60160", this);} // tgen
+ee60160 ::ee60160(){ note_ctor("ee60160", this);} // tgen
+
+static void Test_ee60160()
+{
+ extern Class_Descriptor cd_ee60160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60160, buf);
+ ee60160 *dp, &lv = *(dp=new (buf) ee60160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee60160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(24,16), "ee60160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), 0, "ee60160");
+ check_base_class_offset(lv, (dd0160*), 0, "ee60160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60160.e");
+ test_class_info(&lv, &cd_ee60160);
+ dp->~ee60160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60160(Test_ee60160, "ee60160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60160C1Ev();
+extern void _ZN7ee60160D1Ev();
+Name_Map name_map_ee60160[] = {
+ NSPAIR(_ZN7ee60160C1Ev),
+ NSPAIR(_ZN7ee60160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee60160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60160[];
+extern void _ZN7ee601603fooEv();
+extern void _ZN7ee601603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601603barEv,_ZTv0_n12_N7ee601603barEv)();
+extern void ABISELECT(_ZThn24_N7ee601603barEv,_ZThn16_N7ee601603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601603fooEv,_ZTv0_n16_N7ee601603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601603fooEv,_ZThn16_N7ee601603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60160[0]),
+ (VTBL_ENTRY)&_ZN7ee601603fooEv,
+ (VTBL_ENTRY)&_ZN7ee601603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601603barEv,_ZTv0_n12_N7ee601603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601603fooEv,_ZTv0_n16_N7ee601603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee60160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee60160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee60160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee60160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee60160[] = {
+ {&(_ZTV7ee60160[3]), 3,11},
+ {&(_tg__ZTV6dd0160__7ee60160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee60160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee60160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee60160[4]), 4,6},
+ {&(_ZTV7ee60160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60160[];
+extern VTBL_ENTRY _ZTV7ee60160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60160[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601603fooEv,_ZTv0_n16_N7ee601603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601603fooEv,_ZThn16_N7ee601603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601603barEv,_ZTv0_n12_N7ee601603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601603barEv,_ZThn16_N7ee601603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60160 = { "ee60160", // class name
+ bases_ee60160, 4,
+ &(vtc_ee60160[0]), // expected_vtbl_contents
+ &(vtt_ee60160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60160),6, //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 ee70160 : virtual dd0160 {
+ int e;
+ virtual void foo(); // _ZN7ee701603fooEv
+ virtual void bar(); // _ZN7ee701603barEv
+ ~ee70160(); // tgen
+ ee70160(); // tgen
+};
+//SIG(1 ee70160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70160 ::foo(){vfunc_called(this, "_ZN7ee701603fooEv");}
+void ee70160 ::bar(){vfunc_called(this, "_ZN7ee701603barEv");}
+ee70160 ::~ee70160(){ note_dtor("ee70160", this);} // tgen
+ee70160 ::ee70160(){ note_ctor("ee70160", this);} // tgen
+
+static void Test_ee70160()
+{
+ extern Class_Descriptor cd_ee70160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70160, buf);
+ ee70160 *dp, &lv = *(dp=new (buf) ee70160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee70160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd0160*), ABISELECT(32,20), "ee70160");
+ check_base_class_offset(lv, (cc160*)(dd0160*), ABISELECT(16,8), "ee70160");
+ check_base_class_offset(lv, (dd0160*), ABISELECT(16,8), "ee70160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70160.e");
+ test_class_info(&lv, &cd_ee70160);
+ dp->~ee70160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70160(Test_ee70160, "ee70160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70160C1Ev();
+extern void _ZN7ee70160D1Ev();
+Name_Map name_map_ee70160[] = {
+ NSPAIR(_ZN7ee70160C1Ev),
+ NSPAIR(_ZN7ee70160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd0160;
+extern VTBL_ENTRY _ZTI6dd0160[];
+extern VTBL_ENTRY _ZTV6dd0160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0160[];
+static Base_Class bases_ee70160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0160, 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 _ZTI7ee70160[];
+extern void _ZN7ee701603fooEv();
+extern void _ZN7ee701603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701603barEv,_ZTv0_n12_N7ee701603barEv)();
+extern void ABISELECT(_ZThn32_N7ee701603barEv,_ZThn20_N7ee701603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701603fooEv,_ZTv0_n16_N7ee701603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701603fooEv,_ZThn20_N7ee701603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70160[0]),
+ (VTBL_ENTRY)&_ZN7ee701603fooEv,
+ (VTBL_ENTRY)&_ZN7ee701603barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701603barEv,_ZTv0_n12_N7ee701603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701603fooEv,_ZTv0_n16_N7ee701603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70160[];
+static VTBL_ENTRY _tg__ZTV6dd0160__7ee70160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd0160__7ee70160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd0160__7ee70160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0160__7ee70160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee70160[] = {
+ {&(_ZTV7ee70160[4]), 4,15},
+ {&(_ZTV7ee70160[9]), 9,15},
+ {&(_ZTV7ee70160[13]), 13,15},
+ {&(_tg__ZTV6dd0160__7ee70160[3]), 3,3},
+ {&(_tg__ZTV5cc1606dd0160__7ee70160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd0160__7ee70160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0160__7ee70160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70160[];
+extern VTBL_ENTRY _ZTV7ee70160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70160[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701603fooEv,_ZTv0_n16_N7ee701603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701603fooEv,_ZThn20_N7ee701603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701603barEv,_ZTv0_n12_N7ee701603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701603barEv,_ZThn20_N7ee701603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70160 = { "ee70160", // class name
+ bases_ee70160, 4,
+ &(vtc_ee70160[0]), // expected_vtbl_contents
+ &(vtt_ee70160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1160 : virtual cc160 {
+ int d;
+ ~dd1160(); // tgen
+ dd1160(); // tgen
+};
+//SIG(-1 dd1160) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1160 ::~dd1160(){ note_dtor("dd1160", this);} // tgen
+dd1160 ::dd1160(){ note_ctor("dd1160", this);} // tgen
+
+static void Test_dd1160()
+{
+ extern Class_Descriptor cd_dd1160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1160, buf);
+ dd1160 *dp, &lv = *(dp=new (buf) dd1160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd1160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,16), "dd1160");
+ check_base_class_offset(lv, (cc160*), ABISELECT(16,8), "dd1160");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1160.d");
+ test_class_info(&lv, &cd_dd1160);
+ dp->~dd1160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1160(Test_dd1160, "dd1160", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1160C1Ev();
+extern void _ZN6dd1160D1Ev();
+Name_Map name_map_dd1160[] = {
+ NSPAIR(_ZN6dd1160C1Ev),
+ NSPAIR(_ZN6dd1160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd1160[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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 _ZTI6dd1160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd1160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd1160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd1160[] = {
+ {&(_ZTV6dd1160[4]), 4,13},
+ {&(_ZTV6dd1160[7]), 7,13},
+ {&(_ZTV6dd1160[11]), 11,13},
+ {&(_tg__ZTV5cc160__6dd1160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd1160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+Class_Descriptor cd_dd1160 = { "dd1160", // class name
+ bases_dd1160, 3,
+ &(vtc_dd1160[0]), // expected_vtbl_contents
+ &(vtt_dd1160[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1160),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1160),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 ee01160 : dd1160 {
+ int e;
+ ~ee01160(); // tgen
+ ee01160(); // tgen
+};
+//SIG(1 ee01160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01160 ::~ee01160(){ note_dtor("ee01160", this);} // tgen
+ee01160 ::ee01160(){ note_ctor("ee01160", this);} // tgen
+
+static void Test_ee01160()
+{
+ extern Class_Descriptor cd_ee01160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01160, buf);
+ ee01160 *dp, &lv = *(dp=new (buf) ee01160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee01160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee01160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(16,12), "ee01160");
+ check_base_class_offset(lv, (dd1160*), 0, "ee01160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01160.e");
+ test_class_info(&lv, &cd_ee01160);
+ dp->~ee01160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01160(Test_ee01160, "ee01160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01160C1Ev();
+extern void _ZN7ee01160D1Ev();
+Name_Map name_map_ee01160[] = {
+ NSPAIR(_ZN7ee01160C1Ev),
+ NSPAIR(_ZN7ee01160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee01160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee01160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01160[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee01160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee01160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee01160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee01160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee01160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee01160[] = {
+ {&(_ZTV7ee01160[4]), 4,13},
+ {&(_tg__ZTV6dd1160__7ee01160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee01160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee01160[4]), 4,6},
+ {&(_ZTV7ee01160[7]), 7,13},
+ {&(_ZTV7ee01160[11]), 11,13},
+ {&(_tg__ZTV5cc160__7ee01160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee01160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01160[];
+extern VTBL_ENTRY _ZTV7ee01160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01160[];
+Class_Descriptor cd_ee01160 = { "ee01160", // class name
+ bases_ee01160, 4,
+ &(vtc_ee01160[0]), // expected_vtbl_contents
+ &(vtt_ee01160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01160),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01160),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 ee11160 : virtual dd1160 {
+ int e;
+ ~ee11160(); // tgen
+ ee11160(); // tgen
+};
+//SIG(1 ee11160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11160 ::~ee11160(){ note_dtor("ee11160", this);} // tgen
+ee11160 ::ee11160(){ note_ctor("ee11160", this);} // tgen
+
+static void Test_ee11160()
+{
+ extern Class_Descriptor cd_ee11160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11160, buf);
+ ee11160 *dp, &lv = *(dp=new (buf) ee11160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee11160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee11160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(32,16), "ee11160");
+ check_base_class_offset(lv, (dd1160*), ABISELECT(16,8), "ee11160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11160.e");
+ test_class_info(&lv, &cd_ee11160);
+ dp->~ee11160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11160(Test_ee11160, "ee11160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11160C1Ev();
+extern void _ZN7ee11160D1Ev();
+Name_Map name_map_ee11160[] = {
+ NSPAIR(_ZN7ee11160C1Ev),
+ NSPAIR(_ZN7ee11160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee11160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, ABISELECT(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 _ZTI7ee11160[];
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee11160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11160[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11160[0]),
+ 0,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee11160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee11160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee11160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee11160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee11160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee11160[] = {
+ {&(_ZTV7ee11160[5]), 5,18},
+ {&(_ZTV7ee11160[9]), 9,18},
+ {&(_ZTV7ee11160[12]), 12,18},
+ {&(_ZTV7ee11160[16]), 16,18},
+ {&(_tg__ZTV6dd1160__7ee11160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee11160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee11160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee11160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee11160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11160[];
+extern VTBL_ENTRY _ZTV7ee11160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11160[];
+Class_Descriptor cd_ee11160 = { "ee11160", // class name
+ bases_ee11160, 4,
+ &(vtc_ee11160[0]), // expected_vtbl_contents
+ &(vtt_ee11160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11160),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11160),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 ee21160 : dd1160 {
+ int e;
+ virtual void foo(); // _ZN7ee211603fooEv
+ ~ee21160(); // tgen
+ ee21160(); // tgen
+};
+//SIG(1 ee21160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21160 ::foo(){vfunc_called(this, "_ZN7ee211603fooEv");}
+ee21160 ::~ee21160(){ note_dtor("ee21160", this);} // tgen
+ee21160 ::ee21160(){ note_ctor("ee21160", this);} // tgen
+
+static void Test_ee21160()
+{
+ extern Class_Descriptor cd_ee21160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21160, buf);
+ ee21160 *dp, &lv = *(dp=new (buf) ee21160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee21160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee21160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(16,12), "ee21160");
+ check_base_class_offset(lv, (dd1160*), 0, "ee21160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21160.e");
+ test_class_info(&lv, &cd_ee21160);
+ dp->~ee21160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21160(Test_ee21160, "ee21160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21160C1Ev();
+extern void _ZN7ee21160D1Ev();
+Name_Map name_map_ee21160[] = {
+ NSPAIR(_ZN7ee21160C1Ev),
+ NSPAIR(_ZN7ee21160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee21160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21160[];
+extern void _ZN7ee211603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee211603fooEv,_ZTv0_n16_N7ee211603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211603fooEv,_ZThn20_N7ee211603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21160[0]),
+ (VTBL_ENTRY)&_ZN7ee211603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21160[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee211603fooEv,_ZTv0_n16_N7ee211603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee21160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee21160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee21160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee21160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee21160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee21160[] = {
+ {&(_ZTV7ee21160[4]), 4,14},
+ {&(_tg__ZTV6dd1160__7ee21160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee21160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee21160[4]), 4,6},
+ {&(_ZTV7ee21160[8]), 8,14},
+ {&(_ZTV7ee21160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee21160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee21160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21160[];
+extern VTBL_ENTRY _ZTV7ee21160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21160[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee211603fooEv,_ZTv0_n16_N7ee211603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211603fooEv,_ZThn20_N7ee211603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21160 = { "ee21160", // class name
+ bases_ee21160, 4,
+ &(vtc_ee21160[0]), // expected_vtbl_contents
+ &(vtt_ee21160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21160),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31160 : virtual dd1160 {
+ int e;
+ virtual void foo(); // _ZN7ee311603fooEv
+ ~ee31160(); // tgen
+ ee31160(); // tgen
+};
+//SIG(1 ee31160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31160 ::foo(){vfunc_called(this, "_ZN7ee311603fooEv");}
+ee31160 ::~ee31160(){ note_dtor("ee31160", this);} // tgen
+ee31160 ::ee31160(){ note_ctor("ee31160", this);} // tgen
+
+static void Test_ee31160()
+{
+ extern Class_Descriptor cd_ee31160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31160, buf);
+ ee31160 *dp, &lv = *(dp=new (buf) ee31160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee31160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee31160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(32,16), "ee31160");
+ check_base_class_offset(lv, (dd1160*), ABISELECT(16,8), "ee31160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31160.e");
+ test_class_info(&lv, &cd_ee31160);
+ dp->~ee31160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31160(Test_ee31160, "ee31160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31160C1Ev();
+extern void _ZN7ee31160D1Ev();
+Name_Map name_map_ee31160[] = {
+ NSPAIR(_ZN7ee31160C1Ev),
+ NSPAIR(_ZN7ee31160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee31160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 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 _ZTI7ee31160[];
+extern void _ZN7ee311603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee311603fooEv,_ZTv0_n16_N7ee311603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311603fooEv,_ZThn24_N7ee311603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31160[0]),
+ (VTBL_ENTRY)&_ZN7ee311603fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31160[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee311603fooEv,_ZTv0_n16_N7ee311603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee31160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee31160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee31160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee31160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee31160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee31160[] = {
+ {&(_ZTV7ee31160[5]), 5,19},
+ {&(_ZTV7ee31160[10]), 10,19},
+ {&(_ZTV7ee31160[13]), 13,19},
+ {&(_ZTV7ee31160[17]), 17,19},
+ {&(_tg__ZTV6dd1160__7ee31160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee31160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee31160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee31160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee31160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31160[];
+extern VTBL_ENTRY _ZTV7ee31160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31160[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee311603fooEv,_ZTv0_n16_N7ee311603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311603fooEv,_ZThn24_N7ee311603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31160 = { "ee31160", // class name
+ bases_ee31160, 4,
+ &(vtc_ee31160[0]), // expected_vtbl_contents
+ &(vtt_ee31160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31160),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31160),9, //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 ee41160 : dd1160 {
+ int e;
+ virtual void bar(); // _ZN7ee411603barEv
+ ~ee41160(); // tgen
+ ee41160(); // tgen
+};
+//SIG(1 ee41160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41160 ::bar(){vfunc_called(this, "_ZN7ee411603barEv");}
+ee41160 ::~ee41160(){ note_dtor("ee41160", this);} // tgen
+ee41160 ::ee41160(){ note_ctor("ee41160", this);} // tgen
+
+static void Test_ee41160()
+{
+ extern Class_Descriptor cd_ee41160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41160, buf);
+ ee41160 *dp, &lv = *(dp=new (buf) ee41160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee41160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee41160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(16,12), "ee41160");
+ check_base_class_offset(lv, (dd1160*), 0, "ee41160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41160.e");
+ test_class_info(&lv, &cd_ee41160);
+ dp->~ee41160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41160(Test_ee41160, "ee41160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41160C1Ev();
+extern void _ZN7ee41160D1Ev();
+Name_Map name_map_ee41160[] = {
+ NSPAIR(_ZN7ee41160C1Ev),
+ NSPAIR(_ZN7ee41160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee41160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41160[];
+extern void _ZN7ee411603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee411603barEv,_ZTv0_n12_N7ee411603barEv)();
+extern void ABISELECT(_ZThn32_N7ee411603barEv,_ZThn20_N7ee411603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee41160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41160[0]),
+ (VTBL_ENTRY)&_ZN7ee411603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41160[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee411603barEv,_ZTv0_n12_N7ee411603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee41160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee41160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee41160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee41160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee41160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee41160[] = {
+ {&(_ZTV7ee41160[4]), 4,14},
+ {&(_tg__ZTV6dd1160__7ee41160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee41160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee41160[4]), 4,6},
+ {&(_ZTV7ee41160[8]), 8,14},
+ {&(_ZTV7ee41160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee41160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee41160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41160[];
+extern VTBL_ENTRY _ZTV7ee41160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41160[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee411603barEv,_ZTv0_n12_N7ee411603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411603barEv,_ZThn20_N7ee411603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41160 = { "ee41160", // class name
+ bases_ee41160, 4,
+ &(vtc_ee41160[0]), // expected_vtbl_contents
+ &(vtt_ee41160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41160),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51160 : virtual dd1160 {
+ int e;
+ virtual void bar(); // _ZN7ee511603barEv
+ ~ee51160(); // tgen
+ ee51160(); // tgen
+};
+//SIG(1 ee51160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51160 ::bar(){vfunc_called(this, "_ZN7ee511603barEv");}
+ee51160 ::~ee51160(){ note_dtor("ee51160", this);} // tgen
+ee51160 ::ee51160(){ note_ctor("ee51160", this);} // tgen
+
+static void Test_ee51160()
+{
+ extern Class_Descriptor cd_ee51160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51160, buf);
+ ee51160 *dp, &lv = *(dp=new (buf) ee51160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee51160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee51160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(32,16), "ee51160");
+ check_base_class_offset(lv, (dd1160*), ABISELECT(16,8), "ee51160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51160.e");
+ test_class_info(&lv, &cd_ee51160);
+ dp->~ee51160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51160(Test_ee51160, "ee51160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51160C1Ev();
+extern void _ZN7ee51160D1Ev();
+Name_Map name_map_ee51160[] = {
+ NSPAIR(_ZN7ee51160C1Ev),
+ NSPAIR(_ZN7ee51160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee51160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 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 _ZTI7ee51160[];
+extern void _ZN7ee511603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee511603barEv,_ZTv0_n12_N7ee511603barEv)();
+extern void ABISELECT(_ZThn48_N7ee511603barEv,_ZThn24_N7ee511603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee51160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51160[0]),
+ (VTBL_ENTRY)&_ZN7ee511603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51160[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee511603barEv,_ZTv0_n12_N7ee511603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee51160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee51160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee51160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee51160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee51160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee51160[] = {
+ {&(_ZTV7ee51160[5]), 5,19},
+ {&(_ZTV7ee51160[10]), 10,19},
+ {&(_ZTV7ee51160[13]), 13,19},
+ {&(_ZTV7ee51160[17]), 17,19},
+ {&(_tg__ZTV6dd1160__7ee51160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee51160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee51160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee51160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee51160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51160[];
+extern VTBL_ENTRY _ZTV7ee51160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51160[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee511603barEv,_ZTv0_n12_N7ee511603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511603barEv,_ZThn24_N7ee511603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51160 = { "ee51160", // class name
+ bases_ee51160, 4,
+ &(vtc_ee51160[0]), // expected_vtbl_contents
+ &(vtt_ee51160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51160),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51160),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names55,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61160 : dd1160 {
+ int e;
+ virtual void foo(); // _ZN7ee611603fooEv
+ virtual void bar(); // _ZN7ee611603barEv
+ ~ee61160(); // tgen
+ ee61160(); // tgen
+};
+//SIG(1 ee61160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61160 ::foo(){vfunc_called(this, "_ZN7ee611603fooEv");}
+void ee61160 ::bar(){vfunc_called(this, "_ZN7ee611603barEv");}
+ee61160 ::~ee61160(){ note_dtor("ee61160", this);} // tgen
+ee61160 ::ee61160(){ note_ctor("ee61160", this);} // tgen
+
+static void Test_ee61160()
+{
+ extern Class_Descriptor cd_ee61160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61160, buf);
+ ee61160 *dp, &lv = *(dp=new (buf) ee61160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee61160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee61160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(16,12), "ee61160");
+ check_base_class_offset(lv, (dd1160*), 0, "ee61160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61160.e");
+ test_class_info(&lv, &cd_ee61160);
+ dp->~ee61160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61160(Test_ee61160, "ee61160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61160C1Ev();
+extern void _ZN7ee61160D1Ev();
+Name_Map name_map_ee61160[] = {
+ NSPAIR(_ZN7ee61160C1Ev),
+ NSPAIR(_ZN7ee61160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee61160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61160[];
+extern void _ZN7ee611603fooEv();
+extern void _ZN7ee611603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611603barEv,_ZTv0_n12_N7ee611603barEv)();
+extern void ABISELECT(_ZThn32_N7ee611603barEv,_ZThn20_N7ee611603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611603fooEv,_ZTv0_n16_N7ee611603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611603fooEv,_ZThn20_N7ee611603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61160[0]),
+ (VTBL_ENTRY)&_ZN7ee611603fooEv,
+ (VTBL_ENTRY)&_ZN7ee611603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611603barEv,_ZTv0_n12_N7ee611603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611603fooEv,_ZTv0_n16_N7ee611603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee61160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee61160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee61160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee61160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee61160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee61160[] = {
+ {&(_ZTV7ee61160[4]), 4,15},
+ {&(_tg__ZTV6dd1160__7ee61160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee61160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee61160[4]), 4,6},
+ {&(_ZTV7ee61160[9]), 9,15},
+ {&(_ZTV7ee61160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee61160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee61160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61160[];
+extern VTBL_ENTRY _ZTV7ee61160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61160[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611603fooEv,_ZTv0_n16_N7ee611603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611603fooEv,_ZThn20_N7ee611603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611603barEv,_ZTv0_n12_N7ee611603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611603barEv,_ZThn20_N7ee611603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61160 = { "ee61160", // class name
+ bases_ee61160, 4,
+ &(vtc_ee61160[0]), // expected_vtbl_contents
+ &(vtt_ee61160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61160),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 ee71160 : virtual dd1160 {
+ int e;
+ virtual void foo(); // _ZN7ee711603fooEv
+ virtual void bar(); // _ZN7ee711603barEv
+ ~ee71160(); // tgen
+ ee71160(); // tgen
+};
+//SIG(1 ee71160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71160 ::foo(){vfunc_called(this, "_ZN7ee711603fooEv");}
+void ee71160 ::bar(){vfunc_called(this, "_ZN7ee711603barEv");}
+ee71160 ::~ee71160(){ note_dtor("ee71160", this);} // tgen
+ee71160 ::ee71160(){ note_ctor("ee71160", this);} // tgen
+
+static void Test_ee71160()
+{
+ extern Class_Descriptor cd_ee71160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71160, buf);
+ ee71160 *dp, &lv = *(dp=new (buf) ee71160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee71160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee71160");
+ check_base_class_offset(lv, (cc160*)(dd1160*), ABISELECT(32,16), "ee71160");
+ check_base_class_offset(lv, (dd1160*), ABISELECT(16,8), "ee71160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71160.e");
+ test_class_info(&lv, &cd_ee71160);
+ dp->~ee71160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71160(Test_ee71160, "ee71160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71160C1Ev();
+extern void _ZN7ee71160D1Ev();
+Name_Map name_map_ee71160[] = {
+ NSPAIR(_ZN7ee71160C1Ev),
+ NSPAIR(_ZN7ee71160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd1160;
+extern VTBL_ENTRY _ZTI6dd1160[];
+extern VTBL_ENTRY _ZTV6dd1160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1160[];
+static Base_Class bases_ee71160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd1160, 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 _ZTI7ee71160[];
+extern void _ZN7ee711603fooEv();
+extern void _ZN7ee711603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711603barEv,_ZTv0_n12_N7ee711603barEv)();
+extern void ABISELECT(_ZThn48_N7ee711603barEv,_ZThn24_N7ee711603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711603fooEv,_ZTv0_n16_N7ee711603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711603fooEv,_ZThn24_N7ee711603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71160[0]),
+ (VTBL_ENTRY)&_ZN7ee711603fooEv,
+ (VTBL_ENTRY)&_ZN7ee711603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71160[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711603barEv,_ZTv0_n12_N7ee711603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711603fooEv,_ZTv0_n16_N7ee711603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71160[];
+static VTBL_ENTRY _tg__ZTV6dd1160__7ee71160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd1160__7ee71160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1160__7ee71160[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee71160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee71160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee71160[] = {
+ {&(_ZTV7ee71160[5]), 5,20},
+ {&(_ZTV7ee71160[11]), 11,20},
+ {&(_ZTV7ee71160[14]), 14,20},
+ {&(_ZTV7ee71160[18]), 18,20},
+ {&(_tg__ZTV6dd1160__7ee71160[4]), 4,4},
+ {&(_tg__ZTV5cc160__6dd1160__7ee71160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd1160__7ee71160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee71160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee71160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71160[];
+extern VTBL_ENTRY _ZTV7ee71160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71160[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711603fooEv,_ZTv0_n16_N7ee711603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711603fooEv,_ZThn24_N7ee711603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711603barEv,_ZTv0_n12_N7ee711603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711603barEv,_ZThn24_N7ee711603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71160 = { "ee71160", // class name
+ bases_ee71160, 4,
+ &(vtc_ee71160[0]), // expected_vtbl_contents
+ &(vtt_ee71160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71160),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71160),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 dd2160 : cc160 {
+ int d;
+ virtual void foo(); // _ZN6dd21603fooEv
+ ~dd2160(); // tgen
+ dd2160(); // tgen
+};
+//SIG(-1 dd2160) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2160 ::foo(){vfunc_called(this, "_ZN6dd21603fooEv");}
+dd2160 ::~dd2160(){ note_dtor("dd2160", this);} // tgen
+dd2160 ::dd2160(){ note_ctor("dd2160", this);} // tgen
+
+static void Test_dd2160()
+{
+ extern Class_Descriptor cd_dd2160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2160, buf);
+ dd2160 *dp, &lv = *(dp=new (buf) dd2160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd2160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(16,12), "dd2160");
+ check_base_class_offset(lv, (cc160*), 0, "dd2160");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2160.d");
+ test_class_info(&lv, &cd_dd2160);
+ dp->~dd2160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2160(Test_dd2160, "dd2160", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2160C1Ev();
+extern void _ZN6dd2160D1Ev();
+Name_Map name_map_dd2160[] = {
+ NSPAIR(_ZN6dd2160C1Ev),
+ NSPAIR(_ZN6dd2160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd2160[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2160[];
+extern void _ZN6dd21603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd2160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd2160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd2160[] = {
+ {&(_ZTV6dd2160[3]), 3,10},
+ {&(_tg__ZTV5cc160__6dd2160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd2160[4]), 4,6},
+ {&(_ZTV6dd2160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2160 = { "dd2160", // class name
+ bases_dd2160, 3,
+ &(vtc_dd2160[0]), // expected_vtbl_contents
+ &(vtt_dd2160[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2160),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02160 : dd2160 {
+ int e;
+ ~ee02160(); // tgen
+ ee02160(); // tgen
+};
+//SIG(1 ee02160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02160 ::~ee02160(){ note_dtor("ee02160", this);} // tgen
+ee02160 ::ee02160(){ note_ctor("ee02160", this);} // tgen
+
+static void Test_ee02160()
+{
+ extern Class_Descriptor cd_ee02160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02160, buf);
+ ee02160 *dp, &lv = *(dp=new (buf) ee02160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee02160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(24,16), "ee02160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), 0, "ee02160");
+ check_base_class_offset(lv, (dd2160*), 0, "ee02160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02160.e");
+ test_class_info(&lv, &cd_ee02160);
+ dp->~ee02160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02160(Test_ee02160, "ee02160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02160C1Ev();
+extern void _ZN7ee02160D1Ev();
+Name_Map name_map_ee02160[] = {
+ NSPAIR(_ZN7ee02160C1Ev),
+ NSPAIR(_ZN7ee02160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee02160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02160[];
+extern void _ZN6dd21603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee02160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee02160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee02160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee02160[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee02160[] = {
+ {&(_ZTV7ee02160[3]), 3,10},
+ {&(_tg__ZTV6dd2160__7ee02160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee02160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee02160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee02160[4]), 4,6},
+ {&(_ZTV7ee02160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02160[];
+extern VTBL_ENTRY _ZTV7ee02160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02160[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02160 = { "ee02160", // class name
+ bases_ee02160, 4,
+ &(vtc_ee02160[0]), // expected_vtbl_contents
+ &(vtt_ee02160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02160),6, //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 ee12160 : virtual dd2160 {
+ int e;
+ ~ee12160(); // tgen
+ ee12160(); // tgen
+};
+//SIG(1 ee12160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12160 ::~ee12160(){ note_dtor("ee12160", this);} // tgen
+ee12160 ::ee12160(){ note_ctor("ee12160", this);} // tgen
+
+static void Test_ee12160()
+{
+ extern Class_Descriptor cd_ee12160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12160, buf);
+ ee12160 *dp, &lv = *(dp=new (buf) ee12160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee12160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(32,20), "ee12160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), ABISELECT(16,8), "ee12160");
+ check_base_class_offset(lv, (dd2160*), ABISELECT(16,8), "ee12160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12160.e");
+ test_class_info(&lv, &cd_ee12160);
+ dp->~ee12160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12160(Test_ee12160, "ee12160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12160C1Ev();
+extern void _ZN7ee12160D1Ev();
+Name_Map name_map_ee12160[] = {
+ NSPAIR(_ZN7ee12160C1Ev),
+ NSPAIR(_ZN7ee12160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee12160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, ABISELECT(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 _ZTI7ee12160[];
+extern void _ZN6dd21603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12160[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee12160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee12160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee12160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee12160[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee12160[] = {
+ {&(_ZTV7ee12160[4]), 4,15},
+ {&(_ZTV7ee12160[8]), 8,15},
+ {&(_ZTV7ee12160[13]), 13,15},
+ {&(_tg__ZTV6dd2160__7ee12160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee12160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee12160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee12160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12160[];
+extern VTBL_ENTRY _ZTV7ee12160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12160[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12160 = { "ee12160", // class name
+ bases_ee12160, 4,
+ &(vtc_ee12160[0]), // expected_vtbl_contents
+ &(vtt_ee12160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12160),7, //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 ee22160 : dd2160 {
+ int e;
+ virtual void foo(); // _ZN7ee221603fooEv
+ ~ee22160(); // tgen
+ ee22160(); // tgen
+};
+//SIG(1 ee22160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22160 ::foo(){vfunc_called(this, "_ZN7ee221603fooEv");}
+ee22160 ::~ee22160(){ note_dtor("ee22160", this);} // tgen
+ee22160 ::ee22160(){ note_ctor("ee22160", this);} // tgen
+
+static void Test_ee22160()
+{
+ extern Class_Descriptor cd_ee22160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22160, buf);
+ ee22160 *dp, &lv = *(dp=new (buf) ee22160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee22160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(24,16), "ee22160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), 0, "ee22160");
+ check_base_class_offset(lv, (dd2160*), 0, "ee22160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22160.e");
+ test_class_info(&lv, &cd_ee22160);
+ dp->~ee22160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22160(Test_ee22160, "ee22160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22160C1Ev();
+extern void _ZN7ee22160D1Ev();
+Name_Map name_map_ee22160[] = {
+ NSPAIR(_ZN7ee22160C1Ev),
+ NSPAIR(_ZN7ee22160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee22160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22160[];
+extern void _ZN7ee221603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee221603fooEv,_ZTv0_n16_N7ee221603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221603fooEv,_ZThn16_N7ee221603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22160[0]),
+ (VTBL_ENTRY)&_ZN7ee221603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee221603fooEv,_ZTv0_n16_N7ee221603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee22160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee22160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee22160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee22160[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee22160[] = {
+ {&(_ZTV7ee22160[3]), 3,10},
+ {&(_tg__ZTV6dd2160__7ee22160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee22160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee22160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee22160[4]), 4,6},
+ {&(_ZTV7ee22160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22160[];
+extern VTBL_ENTRY _ZTV7ee22160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22160[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee221603fooEv,_ZTv0_n16_N7ee221603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221603fooEv,_ZThn16_N7ee221603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22160 = { "ee22160", // class name
+ bases_ee22160, 4,
+ &(vtc_ee22160[0]), // expected_vtbl_contents
+ &(vtt_ee22160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22160),6, //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 ee32160 : virtual dd2160 {
+ int e;
+ virtual void foo(); // _ZN7ee321603fooEv
+ ~ee32160(); // tgen
+ ee32160(); // tgen
+};
+//SIG(1 ee32160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32160 ::foo(){vfunc_called(this, "_ZN7ee321603fooEv");}
+ee32160 ::~ee32160(){ note_dtor("ee32160", this);} // tgen
+ee32160 ::ee32160(){ note_ctor("ee32160", this);} // tgen
+
+static void Test_ee32160()
+{
+ extern Class_Descriptor cd_ee32160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32160, buf);
+ ee32160 *dp, &lv = *(dp=new (buf) ee32160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee32160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(32,20), "ee32160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), ABISELECT(16,8), "ee32160");
+ check_base_class_offset(lv, (dd2160*), ABISELECT(16,8), "ee32160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32160.e");
+ test_class_info(&lv, &cd_ee32160);
+ dp->~ee32160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32160(Test_ee32160, "ee32160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32160C1Ev();
+extern void _ZN7ee32160D1Ev();
+Name_Map name_map_ee32160[] = {
+ NSPAIR(_ZN7ee32160C1Ev),
+ NSPAIR(_ZN7ee32160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee32160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, ABISELECT(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 _ZTI7ee32160[];
+extern void _ZN7ee321603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321603fooEv,_ZTv0_n16_N7ee321603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321603fooEv,_ZThn8_N7ee321603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321603fooEv,_ZTv0_n16_N7ee321603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321603fooEv,_ZThn20_N7ee321603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32160[0]),
+ (VTBL_ENTRY)&_ZN7ee321603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321603fooEv,_ZTv0_n16_N7ee321603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321603fooEv,_ZTv0_n16_N7ee321603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee32160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee32160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee32160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee32160[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee32160[] = {
+ {&(_ZTV7ee32160[4]), 4,16},
+ {&(_ZTV7ee32160[9]), 9,16},
+ {&(_ZTV7ee32160[14]), 14,16},
+ {&(_tg__ZTV6dd2160__7ee32160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee32160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee32160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee32160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32160[];
+extern VTBL_ENTRY _ZTV7ee32160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32160[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321603fooEv,_ZTv0_n16_N7ee321603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321603fooEv,_ZThn20_N7ee321603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321603fooEv,_ZThn8_N7ee321603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32160 = { "ee32160", // class name
+ bases_ee32160, 4,
+ &(vtc_ee32160[0]), // expected_vtbl_contents
+ &(vtt_ee32160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32160),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32160),7, //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 ee42160 : dd2160 {
+ int e;
+ virtual void bar(); // _ZN7ee421603barEv
+ ~ee42160(); // tgen
+ ee42160(); // tgen
+};
+//SIG(1 ee42160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42160 ::bar(){vfunc_called(this, "_ZN7ee421603barEv");}
+ee42160 ::~ee42160(){ note_dtor("ee42160", this);} // tgen
+ee42160 ::ee42160(){ note_ctor("ee42160", this);} // tgen
+
+static void Test_ee42160()
+{
+ extern Class_Descriptor cd_ee42160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42160, buf);
+ ee42160 *dp, &lv = *(dp=new (buf) ee42160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee42160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(24,16), "ee42160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), 0, "ee42160");
+ check_base_class_offset(lv, (dd2160*), 0, "ee42160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42160.e");
+ test_class_info(&lv, &cd_ee42160);
+ dp->~ee42160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42160(Test_ee42160, "ee42160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42160C1Ev();
+extern void _ZN7ee42160D1Ev();
+Name_Map name_map_ee42160[] = {
+ NSPAIR(_ZN7ee42160C1Ev),
+ NSPAIR(_ZN7ee42160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee42160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42160[];
+extern void _ZN6dd21603fooEv();
+extern void _ZN7ee421603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee421603barEv,_ZTv0_n12_N7ee421603barEv)();
+extern void ABISELECT(_ZThn24_N7ee421603barEv,_ZThn16_N7ee421603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+ (VTBL_ENTRY)&_ZN7ee421603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee421603barEv,_ZTv0_n12_N7ee421603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee42160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee42160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee42160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee42160[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee42160[] = {
+ {&(_ZTV7ee42160[3]), 3,11},
+ {&(_tg__ZTV6dd2160__7ee42160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee42160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee42160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee42160[4]), 4,6},
+ {&(_ZTV7ee42160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42160[];
+extern VTBL_ENTRY _ZTV7ee42160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42160[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee421603barEv,_ZTv0_n12_N7ee421603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421603barEv,_ZThn16_N7ee421603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42160 = { "ee42160", // class name
+ bases_ee42160, 4,
+ &(vtc_ee42160[0]), // expected_vtbl_contents
+ &(vtt_ee42160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42160),6, //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 ee52160 : virtual dd2160 {
+ int e;
+ virtual void bar(); // _ZN7ee521603barEv
+ ~ee52160(); // tgen
+ ee52160(); // tgen
+};
+//SIG(1 ee52160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52160 ::bar(){vfunc_called(this, "_ZN7ee521603barEv");}
+ee52160 ::~ee52160(){ note_dtor("ee52160", this);} // tgen
+ee52160 ::ee52160(){ note_ctor("ee52160", this);} // tgen
+
+static void Test_ee52160()
+{
+ extern Class_Descriptor cd_ee52160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52160, buf);
+ ee52160 *dp, &lv = *(dp=new (buf) ee52160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee52160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(32,20), "ee52160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), ABISELECT(16,8), "ee52160");
+ check_base_class_offset(lv, (dd2160*), ABISELECT(16,8), "ee52160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52160.e");
+ test_class_info(&lv, &cd_ee52160);
+ dp->~ee52160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52160(Test_ee52160, "ee52160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52160C1Ev();
+extern void _ZN7ee52160D1Ev();
+Name_Map name_map_ee52160[] = {
+ NSPAIR(_ZN7ee52160C1Ev),
+ NSPAIR(_ZN7ee52160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee52160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, ABISELECT(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 _ZTI7ee52160[];
+extern void _ZN7ee521603barEv();
+extern void _ZN6dd21603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee521603barEv,_ZTv0_n12_N7ee521603barEv)();
+extern void ABISELECT(_ZThn32_N7ee521603barEv,_ZThn20_N7ee521603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52160[0]),
+ (VTBL_ENTRY)&_ZN7ee521603barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee521603barEv,_ZTv0_n12_N7ee521603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee52160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee52160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee52160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee52160[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee52160[] = {
+ {&(_ZTV7ee52160[4]), 4,16},
+ {&(_ZTV7ee52160[9]), 9,16},
+ {&(_ZTV7ee52160[14]), 14,16},
+ {&(_tg__ZTV6dd2160__7ee52160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee52160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee52160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee52160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52160[];
+extern VTBL_ENTRY _ZTV7ee52160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52160[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee521603barEv,_ZTv0_n12_N7ee521603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521603barEv,_ZThn20_N7ee521603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52160 = { "ee52160", // class name
+ bases_ee52160, 4,
+ &(vtc_ee52160[0]), // expected_vtbl_contents
+ &(vtt_ee52160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52160),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62160 : dd2160 {
+ int e;
+ virtual void foo(); // _ZN7ee621603fooEv
+ virtual void bar(); // _ZN7ee621603barEv
+ ~ee62160(); // tgen
+ ee62160(); // tgen
+};
+//SIG(1 ee62160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62160 ::foo(){vfunc_called(this, "_ZN7ee621603fooEv");}
+void ee62160 ::bar(){vfunc_called(this, "_ZN7ee621603barEv");}
+ee62160 ::~ee62160(){ note_dtor("ee62160", this);} // tgen
+ee62160 ::ee62160(){ note_ctor("ee62160", this);} // tgen
+
+static void Test_ee62160()
+{
+ extern Class_Descriptor cd_ee62160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62160, buf);
+ ee62160 *dp, &lv = *(dp=new (buf) ee62160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee62160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(24,16), "ee62160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), 0, "ee62160");
+ check_base_class_offset(lv, (dd2160*), 0, "ee62160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62160.e");
+ test_class_info(&lv, &cd_ee62160);
+ dp->~ee62160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62160(Test_ee62160, "ee62160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62160C1Ev();
+extern void _ZN7ee62160D1Ev();
+Name_Map name_map_ee62160[] = {
+ NSPAIR(_ZN7ee62160C1Ev),
+ NSPAIR(_ZN7ee62160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee62160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62160[];
+extern void _ZN7ee621603fooEv();
+extern void _ZN7ee621603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621603barEv,_ZTv0_n12_N7ee621603barEv)();
+extern void ABISELECT(_ZThn24_N7ee621603barEv,_ZThn16_N7ee621603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621603fooEv,_ZTv0_n16_N7ee621603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621603fooEv,_ZThn16_N7ee621603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62160[0]),
+ (VTBL_ENTRY)&_ZN7ee621603fooEv,
+ (VTBL_ENTRY)&_ZN7ee621603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621603barEv,_ZTv0_n12_N7ee621603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621603fooEv,_ZTv0_n16_N7ee621603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee62160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee62160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee62160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee62160[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee62160[] = {
+ {&(_ZTV7ee62160[3]), 3,11},
+ {&(_tg__ZTV6dd2160__7ee62160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee62160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee62160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee62160[4]), 4,6},
+ {&(_ZTV7ee62160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62160[];
+extern VTBL_ENTRY _ZTV7ee62160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62160[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21603fooEv,_ZThn16_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621603fooEv,_ZTv0_n16_N7ee621603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621603fooEv,_ZThn16_N7ee621603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621603barEv,_ZTv0_n12_N7ee621603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621603barEv,_ZThn16_N7ee621603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62160 = { "ee62160", // class name
+ bases_ee62160, 4,
+ &(vtc_ee62160[0]), // expected_vtbl_contents
+ &(vtt_ee62160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62160),6, //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 ee72160 : virtual dd2160 {
+ int e;
+ virtual void foo(); // _ZN7ee721603fooEv
+ virtual void bar(); // _ZN7ee721603barEv
+ ~ee72160(); // tgen
+ ee72160(); // tgen
+};
+//SIG(1 ee72160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72160 ::foo(){vfunc_called(this, "_ZN7ee721603fooEv");}
+void ee72160 ::bar(){vfunc_called(this, "_ZN7ee721603barEv");}
+ee72160 ::~ee72160(){ note_dtor("ee72160", this);} // tgen
+ee72160 ::ee72160(){ note_ctor("ee72160", this);} // tgen
+
+static void Test_ee72160()
+{
+ extern Class_Descriptor cd_ee72160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72160, buf);
+ ee72160 *dp, &lv = *(dp=new (buf) ee72160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee72160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd2160*), ABISELECT(32,20), "ee72160");
+ check_base_class_offset(lv, (cc160*)(dd2160*), ABISELECT(16,8), "ee72160");
+ check_base_class_offset(lv, (dd2160*), ABISELECT(16,8), "ee72160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72160.e");
+ test_class_info(&lv, &cd_ee72160);
+ dp->~ee72160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72160(Test_ee72160, "ee72160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72160C1Ev();
+extern void _ZN7ee72160D1Ev();
+Name_Map name_map_ee72160[] = {
+ NSPAIR(_ZN7ee72160C1Ev),
+ NSPAIR(_ZN7ee72160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd2160;
+extern VTBL_ENTRY _ZTI6dd2160[];
+extern VTBL_ENTRY _ZTV6dd2160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2160[];
+static Base_Class bases_ee72160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2160, 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 _ZTI7ee72160[];
+extern void _ZN7ee721603fooEv();
+extern void _ZN7ee721603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721603fooEv,_ZTv0_n16_N7ee721603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721603fooEv,_ZThn8_N7ee721603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721603barEv,_ZTv0_n12_N7ee721603barEv)();
+extern void ABISELECT(_ZThn32_N7ee721603barEv,_ZThn20_N7ee721603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721603fooEv,_ZTv0_n16_N7ee721603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721603fooEv,_ZThn20_N7ee721603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72160[0]),
+ (VTBL_ENTRY)&_ZN7ee721603fooEv,
+ (VTBL_ENTRY)&_ZN7ee721603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721603fooEv,_ZTv0_n16_N7ee721603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721603barEv,_ZTv0_n12_N7ee721603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721603fooEv,_ZTv0_n16_N7ee721603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72160[];
+extern void _ZN6dd21603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2160__7ee72160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN6dd21603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd2160__7ee72160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd2160__7ee72160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2160__7ee72160[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv),
+};
+static VTT_ENTRY vtt_ee72160[] = {
+ {&(_ZTV7ee72160[4]), 4,17},
+ {&(_ZTV7ee72160[10]), 10,17},
+ {&(_ZTV7ee72160[15]), 15,17},
+ {&(_tg__ZTV6dd2160__7ee72160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd2160__7ee72160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd2160__7ee72160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2160__7ee72160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72160[];
+extern VTBL_ENTRY _ZTV7ee72160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72160[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21603fooEv,_ZTv0_n16_N6dd21603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21603fooEv,_ZThn12_N6dd21603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721603barEv,_ZTv0_n12_N7ee721603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721603barEv,_ZThn20_N7ee721603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721603fooEv,_ZTv0_n16_N7ee721603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721603fooEv,_ZThn20_N7ee721603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721603fooEv,_ZThn8_N7ee721603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72160 = { "ee72160", // class name
+ bases_ee72160, 4,
+ &(vtc_ee72160[0]), // expected_vtbl_contents
+ &(vtt_ee72160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72160),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72160),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 dd3160 : virtual cc160 {
+ int d;
+ virtual void foo(); // _ZN6dd31603fooEv
+ ~dd3160(); // tgen
+ dd3160(); // tgen
+};
+//SIG(-1 dd3160) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3160 ::foo(){vfunc_called(this, "_ZN6dd31603fooEv");}
+dd3160 ::~dd3160(){ note_dtor("dd3160", this);} // tgen
+dd3160 ::dd3160(){ note_ctor("dd3160", this);} // tgen
+
+static void Test_dd3160()
+{
+ extern Class_Descriptor cd_dd3160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3160, buf);
+ dd3160 *dp, &lv = *(dp=new (buf) dd3160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd3160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,16), "dd3160");
+ check_base_class_offset(lv, (cc160*), ABISELECT(16,8), "dd3160");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3160.d");
+ test_class_info(&lv, &cd_dd3160);
+ dp->~dd3160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3160(Test_dd3160, "dd3160", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3160C1Ev();
+extern void _ZN6dd3160D1Ev();
+Name_Map name_map_dd3160[] = {
+ NSPAIR(_ZN6dd3160C1Ev),
+ NSPAIR(_ZN6dd3160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd3160[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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 _ZTI6dd3160[];
+extern void _ZN6dd31603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd3160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd3160[] = {
+ {&(_ZTV6dd3160[4]), 4,14},
+ {&(_ZTV6dd3160[8]), 8,14},
+ {&(_ZTV6dd3160[12]), 12,14},
+ {&(_tg__ZTV5cc160__6dd3160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd3160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3160 = { "dd3160", // class name
+ bases_dd3160, 3,
+ &(vtc_dd3160[0]), // expected_vtbl_contents
+ &(vtt_dd3160[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3160),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03160 : dd3160 {
+ int e;
+ ~ee03160(); // tgen
+ ee03160(); // tgen
+};
+//SIG(1 ee03160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03160 ::~ee03160(){ note_dtor("ee03160", this);} // tgen
+ee03160 ::ee03160(){ note_ctor("ee03160", this);} // tgen
+
+static void Test_ee03160()
+{
+ extern Class_Descriptor cd_ee03160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03160, buf);
+ ee03160 *dp, &lv = *(dp=new (buf) ee03160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee03160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee03160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(16,12), "ee03160");
+ check_base_class_offset(lv, (dd3160*), 0, "ee03160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03160.e");
+ test_class_info(&lv, &cd_ee03160);
+ dp->~ee03160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03160(Test_ee03160, "ee03160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03160C1Ev();
+extern void _ZN7ee03160D1Ev();
+Name_Map name_map_ee03160[] = {
+ NSPAIR(_ZN7ee03160C1Ev),
+ NSPAIR(_ZN7ee03160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee03160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03160[];
+extern void _ZN6dd31603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03160[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee03160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee03160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee03160[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee03160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee03160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee03160[] = {
+ {&(_ZTV7ee03160[4]), 4,14},
+ {&(_tg__ZTV6dd3160__7ee03160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee03160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee03160[4]), 4,6},
+ {&(_ZTV7ee03160[8]), 8,14},
+ {&(_ZTV7ee03160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee03160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee03160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03160[];
+extern VTBL_ENTRY _ZTV7ee03160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03160[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03160 = { "ee03160", // class name
+ bases_ee03160, 4,
+ &(vtc_ee03160[0]), // expected_vtbl_contents
+ &(vtt_ee03160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03160),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13160 : virtual dd3160 {
+ int e;
+ ~ee13160(); // tgen
+ ee13160(); // tgen
+};
+//SIG(1 ee13160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13160 ::~ee13160(){ note_dtor("ee13160", this);} // tgen
+ee13160 ::ee13160(){ note_ctor("ee13160", this);} // tgen
+
+static void Test_ee13160()
+{
+ extern Class_Descriptor cd_ee13160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13160, buf);
+ ee13160 *dp, &lv = *(dp=new (buf) ee13160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee13160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee13160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(32,16), "ee13160");
+ check_base_class_offset(lv, (dd3160*), ABISELECT(16,8), "ee13160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13160.e");
+ test_class_info(&lv, &cd_ee13160);
+ dp->~ee13160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13160(Test_ee13160, "ee13160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13160C1Ev();
+extern void _ZN7ee13160D1Ev();
+Name_Map name_map_ee13160[] = {
+ NSPAIR(_ZN7ee13160C1Ev),
+ NSPAIR(_ZN7ee13160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee13160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, ABISELECT(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 _ZTI7ee13160[];
+extern void _ZN6dd31603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13160[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13160[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee13160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee13160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee13160[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee13160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee13160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee13160[] = {
+ {&(_ZTV7ee13160[5]), 5,20},
+ {&(_ZTV7ee13160[10]), 10,20},
+ {&(_ZTV7ee13160[14]), 14,20},
+ {&(_ZTV7ee13160[18]), 18,20},
+ {&(_tg__ZTV6dd3160__7ee13160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee13160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee13160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee13160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee13160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13160[];
+extern VTBL_ENTRY _ZTV7ee13160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13160[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13160 = { "ee13160", // class name
+ bases_ee13160, 4,
+ &(vtc_ee13160[0]), // expected_vtbl_contents
+ &(vtt_ee13160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13160),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13160),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23160 : dd3160 {
+ int e;
+ virtual void foo(); // _ZN7ee231603fooEv
+ ~ee23160(); // tgen
+ ee23160(); // tgen
+};
+//SIG(1 ee23160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23160 ::foo(){vfunc_called(this, "_ZN7ee231603fooEv");}
+ee23160 ::~ee23160(){ note_dtor("ee23160", this);} // tgen
+ee23160 ::ee23160(){ note_ctor("ee23160", this);} // tgen
+
+static void Test_ee23160()
+{
+ extern Class_Descriptor cd_ee23160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23160, buf);
+ ee23160 *dp, &lv = *(dp=new (buf) ee23160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee23160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee23160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(16,12), "ee23160");
+ check_base_class_offset(lv, (dd3160*), 0, "ee23160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23160.e");
+ test_class_info(&lv, &cd_ee23160);
+ dp->~ee23160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23160(Test_ee23160, "ee23160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23160C1Ev();
+extern void _ZN7ee23160D1Ev();
+Name_Map name_map_ee23160[] = {
+ NSPAIR(_ZN7ee23160C1Ev),
+ NSPAIR(_ZN7ee23160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee23160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23160[];
+extern void _ZN7ee231603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee231603fooEv,_ZTv0_n16_N7ee231603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231603fooEv,_ZThn20_N7ee231603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23160[0]),
+ (VTBL_ENTRY)&_ZN7ee231603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23160[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee231603fooEv,_ZTv0_n16_N7ee231603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee23160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee23160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee23160[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee23160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee23160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee23160[] = {
+ {&(_ZTV7ee23160[4]), 4,14},
+ {&(_tg__ZTV6dd3160__7ee23160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee23160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee23160[4]), 4,6},
+ {&(_ZTV7ee23160[8]), 8,14},
+ {&(_ZTV7ee23160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee23160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee23160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23160[];
+extern VTBL_ENTRY _ZTV7ee23160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23160[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee231603fooEv,_ZTv0_n16_N7ee231603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231603fooEv,_ZThn20_N7ee231603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23160 = { "ee23160", // class name
+ bases_ee23160, 4,
+ &(vtc_ee23160[0]), // expected_vtbl_contents
+ &(vtt_ee23160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23160),8, //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 ee33160 : virtual dd3160 {
+ int e;
+ virtual void foo(); // _ZN7ee331603fooEv
+ ~ee33160(); // tgen
+ ee33160(); // tgen
+};
+//SIG(1 ee33160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33160 ::foo(){vfunc_called(this, "_ZN7ee331603fooEv");}
+ee33160 ::~ee33160(){ note_dtor("ee33160", this);} // tgen
+ee33160 ::ee33160(){ note_ctor("ee33160", this);} // tgen
+
+static void Test_ee33160()
+{
+ extern Class_Descriptor cd_ee33160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33160, buf);
+ ee33160 *dp, &lv = *(dp=new (buf) ee33160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee33160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee33160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(32,16), "ee33160");
+ check_base_class_offset(lv, (dd3160*), ABISELECT(16,8), "ee33160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33160.e");
+ test_class_info(&lv, &cd_ee33160);
+ dp->~ee33160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33160(Test_ee33160, "ee33160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33160C1Ev();
+extern void _ZN7ee33160D1Ev();
+Name_Map name_map_ee33160[] = {
+ NSPAIR(_ZN7ee33160C1Ev),
+ NSPAIR(_ZN7ee33160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee33160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, ABISELECT(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 _ZTI7ee33160[];
+extern void _ZN7ee331603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331603fooEv,_ZTv0_n20_N7ee331603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331603fooEv,_ZThn8_N7ee331603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee331603fooEv,_ZTv0_n16_N7ee331603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331603fooEv,_ZThn24_N7ee331603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33160[0]),
+ (VTBL_ENTRY)&_ZN7ee331603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331603fooEv,_ZTv0_n20_N7ee331603fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33160[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee331603fooEv,_ZTv0_n16_N7ee331603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee33160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee33160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee33160[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee33160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee33160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee33160[] = {
+ {&(_ZTV7ee33160[5]), 5,21},
+ {&(_ZTV7ee33160[11]), 11,21},
+ {&(_ZTV7ee33160[15]), 15,21},
+ {&(_ZTV7ee33160[19]), 19,21},
+ {&(_tg__ZTV6dd3160__7ee33160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee33160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee33160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee33160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee33160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33160[];
+extern VTBL_ENTRY _ZTV7ee33160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33160[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee331603fooEv,_ZTv0_n16_N7ee331603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331603fooEv,_ZThn24_N7ee331603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331603fooEv,_ZTv0_n20_N7ee331603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331603fooEv,_ZThn8_N7ee331603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33160 = { "ee33160", // class name
+ bases_ee33160, 4,
+ &(vtc_ee33160[0]), // expected_vtbl_contents
+ &(vtt_ee33160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33160),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33160),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 ee43160 : dd3160 {
+ int e;
+ virtual void bar(); // _ZN7ee431603barEv
+ ~ee43160(); // tgen
+ ee43160(); // tgen
+};
+//SIG(1 ee43160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43160 ::bar(){vfunc_called(this, "_ZN7ee431603barEv");}
+ee43160 ::~ee43160(){ note_dtor("ee43160", this);} // tgen
+ee43160 ::ee43160(){ note_ctor("ee43160", this);} // tgen
+
+static void Test_ee43160()
+{
+ extern Class_Descriptor cd_ee43160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43160, buf);
+ ee43160 *dp, &lv = *(dp=new (buf) ee43160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee43160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee43160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(16,12), "ee43160");
+ check_base_class_offset(lv, (dd3160*), 0, "ee43160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43160.e");
+ test_class_info(&lv, &cd_ee43160);
+ dp->~ee43160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43160(Test_ee43160, "ee43160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43160C1Ev();
+extern void _ZN7ee43160D1Ev();
+Name_Map name_map_ee43160[] = {
+ NSPAIR(_ZN7ee43160C1Ev),
+ NSPAIR(_ZN7ee43160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee43160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43160[];
+extern void _ZN6dd31603fooEv();
+extern void _ZN7ee431603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee431603barEv,_ZTv0_n12_N7ee431603barEv)();
+extern void ABISELECT(_ZThn32_N7ee431603barEv,_ZThn20_N7ee431603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+ (VTBL_ENTRY)&_ZN7ee431603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee431603barEv,_ZTv0_n12_N7ee431603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee43160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee43160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee43160[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee43160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee43160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee43160[] = {
+ {&(_ZTV7ee43160[4]), 4,15},
+ {&(_tg__ZTV6dd3160__7ee43160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee43160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee43160[4]), 4,6},
+ {&(_ZTV7ee43160[9]), 9,15},
+ {&(_ZTV7ee43160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee43160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee43160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43160[];
+extern VTBL_ENTRY _ZTV7ee43160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43160[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee431603barEv,_ZTv0_n12_N7ee431603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431603barEv,_ZThn20_N7ee431603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43160 = { "ee43160", // class name
+ bases_ee43160, 4,
+ &(vtc_ee43160[0]), // expected_vtbl_contents
+ &(vtt_ee43160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43160),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 ee53160 : virtual dd3160 {
+ int e;
+ virtual void bar(); // _ZN7ee531603barEv
+ ~ee53160(); // tgen
+ ee53160(); // tgen
+};
+//SIG(1 ee53160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53160 ::bar(){vfunc_called(this, "_ZN7ee531603barEv");}
+ee53160 ::~ee53160(){ note_dtor("ee53160", this);} // tgen
+ee53160 ::ee53160(){ note_ctor("ee53160", this);} // tgen
+
+static void Test_ee53160()
+{
+ extern Class_Descriptor cd_ee53160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53160, buf);
+ ee53160 *dp, &lv = *(dp=new (buf) ee53160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee53160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee53160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(32,16), "ee53160");
+ check_base_class_offset(lv, (dd3160*), ABISELECT(16,8), "ee53160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53160.e");
+ test_class_info(&lv, &cd_ee53160);
+ dp->~ee53160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53160(Test_ee53160, "ee53160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53160C1Ev();
+extern void _ZN7ee53160D1Ev();
+Name_Map name_map_ee53160[] = {
+ NSPAIR(_ZN7ee53160C1Ev),
+ NSPAIR(_ZN7ee53160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee53160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, ABISELECT(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 _ZTI7ee53160[];
+extern void _ZN7ee531603barEv();
+extern void _ZN6dd31603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee531603barEv,_ZTv0_n12_N7ee531603barEv)();
+extern void ABISELECT(_ZThn48_N7ee531603barEv,_ZThn24_N7ee531603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53160[0]),
+ (VTBL_ENTRY)&_ZN7ee531603barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53160[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee531603barEv,_ZTv0_n12_N7ee531603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee53160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee53160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee53160[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee53160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee53160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee53160[] = {
+ {&(_ZTV7ee53160[5]), 5,21},
+ {&(_ZTV7ee53160[11]), 11,21},
+ {&(_ZTV7ee53160[15]), 15,21},
+ {&(_ZTV7ee53160[19]), 19,21},
+ {&(_tg__ZTV6dd3160__7ee53160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee53160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee53160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee53160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee53160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53160[];
+extern VTBL_ENTRY _ZTV7ee53160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53160[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee531603barEv,_ZTv0_n12_N7ee531603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531603barEv,_ZThn24_N7ee531603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53160 = { "ee53160", // class name
+ bases_ee53160, 4,
+ &(vtc_ee53160[0]), // expected_vtbl_contents
+ &(vtt_ee53160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53160),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53160),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 ee63160 : dd3160 {
+ int e;
+ virtual void foo(); // _ZN7ee631603fooEv
+ virtual void bar(); // _ZN7ee631603barEv
+ ~ee63160(); // tgen
+ ee63160(); // tgen
+};
+//SIG(1 ee63160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63160 ::foo(){vfunc_called(this, "_ZN7ee631603fooEv");}
+void ee63160 ::bar(){vfunc_called(this, "_ZN7ee631603barEv");}
+ee63160 ::~ee63160(){ note_dtor("ee63160", this);} // tgen
+ee63160 ::ee63160(){ note_ctor("ee63160", this);} // tgen
+
+static void Test_ee63160()
+{
+ extern Class_Descriptor cd_ee63160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63160, buf);
+ ee63160 *dp, &lv = *(dp=new (buf) ee63160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee63160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee63160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(16,12), "ee63160");
+ check_base_class_offset(lv, (dd3160*), 0, "ee63160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63160.e");
+ test_class_info(&lv, &cd_ee63160);
+ dp->~ee63160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63160(Test_ee63160, "ee63160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63160C1Ev();
+extern void _ZN7ee63160D1Ev();
+Name_Map name_map_ee63160[] = {
+ NSPAIR(_ZN7ee63160C1Ev),
+ NSPAIR(_ZN7ee63160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee63160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63160[];
+extern void _ZN7ee631603fooEv();
+extern void _ZN7ee631603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631603barEv,_ZTv0_n12_N7ee631603barEv)();
+extern void ABISELECT(_ZThn32_N7ee631603barEv,_ZThn20_N7ee631603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631603fooEv,_ZTv0_n16_N7ee631603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631603fooEv,_ZThn20_N7ee631603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63160[0]),
+ (VTBL_ENTRY)&_ZN7ee631603fooEv,
+ (VTBL_ENTRY)&_ZN7ee631603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631603barEv,_ZTv0_n12_N7ee631603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631603fooEv,_ZTv0_n16_N7ee631603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee63160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee63160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee63160[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee63160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee63160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee63160[] = {
+ {&(_ZTV7ee63160[4]), 4,15},
+ {&(_tg__ZTV6dd3160__7ee63160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee63160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee63160[4]), 4,6},
+ {&(_ZTV7ee63160[9]), 9,15},
+ {&(_ZTV7ee63160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee63160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee63160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63160[];
+extern VTBL_ENTRY _ZTV7ee63160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63160[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn20_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631603fooEv,_ZTv0_n16_N7ee631603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631603fooEv,_ZThn20_N7ee631603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631603barEv,_ZTv0_n12_N7ee631603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631603barEv,_ZThn20_N7ee631603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63160 = { "ee63160", // class name
+ bases_ee63160, 4,
+ &(vtc_ee63160[0]), // expected_vtbl_contents
+ &(vtt_ee63160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63160),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73160 : virtual dd3160 {
+ int e;
+ virtual void foo(); // _ZN7ee731603fooEv
+ virtual void bar(); // _ZN7ee731603barEv
+ ~ee73160(); // tgen
+ ee73160(); // tgen
+};
+//SIG(1 ee73160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73160 ::foo(){vfunc_called(this, "_ZN7ee731603fooEv");}
+void ee73160 ::bar(){vfunc_called(this, "_ZN7ee731603barEv");}
+ee73160 ::~ee73160(){ note_dtor("ee73160", this);} // tgen
+ee73160 ::ee73160(){ note_ctor("ee73160", this);} // tgen
+
+static void Test_ee73160()
+{
+ extern Class_Descriptor cd_ee73160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73160, buf);
+ ee73160 *dp, &lv = *(dp=new (buf) ee73160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee73160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee73160");
+ check_base_class_offset(lv, (cc160*)(dd3160*), ABISELECT(32,16), "ee73160");
+ check_base_class_offset(lv, (dd3160*), ABISELECT(16,8), "ee73160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73160.e");
+ test_class_info(&lv, &cd_ee73160);
+ dp->~ee73160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73160(Test_ee73160, "ee73160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73160C1Ev();
+extern void _ZN7ee73160D1Ev();
+Name_Map name_map_ee73160[] = {
+ NSPAIR(_ZN7ee73160C1Ev),
+ NSPAIR(_ZN7ee73160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd3160;
+extern VTBL_ENTRY _ZTI6dd3160[];
+extern VTBL_ENTRY _ZTV6dd3160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3160[];
+static Base_Class bases_ee73160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd3160, 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 _ZTI7ee73160[];
+extern void _ZN7ee731603fooEv();
+extern void _ZN7ee731603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731603fooEv,_ZTv0_n20_N7ee731603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731603fooEv,_ZThn8_N7ee731603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731603barEv,_ZTv0_n12_N7ee731603barEv)();
+extern void ABISELECT(_ZThn48_N7ee731603barEv,_ZThn24_N7ee731603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731603fooEv,_ZTv0_n16_N7ee731603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731603fooEv,_ZThn24_N7ee731603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73160[0]),
+ (VTBL_ENTRY)&_ZN7ee731603fooEv,
+ (VTBL_ENTRY)&_ZN7ee731603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731603fooEv,_ZTv0_n20_N7ee731603fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731603barEv,_ZTv0_n12_N7ee731603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731603fooEv,_ZTv0_n16_N7ee731603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73160[];
+extern void _ZN6dd31603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3160__7ee73160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN6dd31603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd3160__7ee73160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3160__7ee73160[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee73160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee73160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee73160[] = {
+ {&(_ZTV7ee73160[5]), 5,22},
+ {&(_ZTV7ee73160[12]), 12,22},
+ {&(_ZTV7ee73160[16]), 16,22},
+ {&(_ZTV7ee73160[20]), 20,22},
+ {&(_tg__ZTV6dd3160__7ee73160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd3160__7ee73160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd3160__7ee73160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee73160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee73160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73160[];
+extern VTBL_ENTRY _ZTV7ee73160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73160[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31603fooEv,_ZTv0_n16_N6dd31603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31603fooEv,_ZThn16_N6dd31603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731603fooEv,_ZTv0_n16_N7ee731603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731603fooEv,_ZThn24_N7ee731603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731603barEv,_ZTv0_n12_N7ee731603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731603barEv,_ZThn24_N7ee731603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731603fooEv,_ZTv0_n20_N7ee731603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731603fooEv,_ZThn8_N7ee731603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73160 = { "ee73160", // class name
+ bases_ee73160, 4,
+ &(vtc_ee73160[0]), // expected_vtbl_contents
+ &(vtt_ee73160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73160),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73160),9, //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 dd4160 : cc160 {
+ int d;
+ virtual void bar(); // _ZN6dd41603barEv
+ ~dd4160(); // tgen
+ dd4160(); // tgen
+};
+//SIG(-1 dd4160) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4160 ::bar(){vfunc_called(this, "_ZN6dd41603barEv");}
+dd4160 ::~dd4160(){ note_dtor("dd4160", this);} // tgen
+dd4160 ::dd4160(){ note_ctor("dd4160", this);} // tgen
+
+static void Test_dd4160()
+{
+ extern Class_Descriptor cd_dd4160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4160, buf);
+ dd4160 *dp, &lv = *(dp=new (buf) dd4160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd4160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(16,12), "dd4160");
+ check_base_class_offset(lv, (cc160*), 0, "dd4160");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4160.d");
+ test_class_info(&lv, &cd_dd4160);
+ dp->~dd4160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4160(Test_dd4160, "dd4160", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4160C1Ev();
+extern void _ZN6dd4160D1Ev();
+Name_Map name_map_dd4160[] = {
+ NSPAIR(_ZN6dd4160C1Ev),
+ NSPAIR(_ZN6dd4160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd4160[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4160[];
+extern void _ZN6dd41603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd4160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd4160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd4160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd4160[] = {
+ {&(_ZTV6dd4160[3]), 3,10},
+ {&(_tg__ZTV5cc160__6dd4160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd4160[4]), 4,6},
+ {&(_ZTV6dd4160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4160 = { "dd4160", // class name
+ bases_dd4160, 3,
+ &(vtc_dd4160[0]), // expected_vtbl_contents
+ &(vtt_dd4160[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4160),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04160 : dd4160 {
+ int e;
+ ~ee04160(); // tgen
+ ee04160(); // tgen
+};
+//SIG(1 ee04160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04160 ::~ee04160(){ note_dtor("ee04160", this);} // tgen
+ee04160 ::ee04160(){ note_ctor("ee04160", this);} // tgen
+
+static void Test_ee04160()
+{
+ extern Class_Descriptor cd_ee04160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04160, buf);
+ ee04160 *dp, &lv = *(dp=new (buf) ee04160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee04160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(24,16), "ee04160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), 0, "ee04160");
+ check_base_class_offset(lv, (dd4160*), 0, "ee04160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04160.e");
+ test_class_info(&lv, &cd_ee04160);
+ dp->~ee04160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04160(Test_ee04160, "ee04160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04160C1Ev();
+extern void _ZN7ee04160D1Ev();
+Name_Map name_map_ee04160[] = {
+ NSPAIR(_ZN7ee04160C1Ev),
+ NSPAIR(_ZN7ee04160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee04160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04160[];
+extern void _ZN6dd41603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee04160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee04160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee04160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee04160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee04160[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee04160[] = {
+ {&(_ZTV7ee04160[3]), 3,10},
+ {&(_tg__ZTV6dd4160__7ee04160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee04160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee04160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee04160[4]), 4,6},
+ {&(_ZTV7ee04160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04160[];
+extern VTBL_ENTRY _ZTV7ee04160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04160[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04160 = { "ee04160", // class name
+ bases_ee04160, 4,
+ &(vtc_ee04160[0]), // expected_vtbl_contents
+ &(vtt_ee04160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04160),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 ee14160 : virtual dd4160 {
+ int e;
+ ~ee14160(); // tgen
+ ee14160(); // tgen
+};
+//SIG(1 ee14160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14160 ::~ee14160(){ note_dtor("ee14160", this);} // tgen
+ee14160 ::ee14160(){ note_ctor("ee14160", this);} // tgen
+
+static void Test_ee14160()
+{
+ extern Class_Descriptor cd_ee14160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14160, buf);
+ ee14160 *dp, &lv = *(dp=new (buf) ee14160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee14160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(32,20), "ee14160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), ABISELECT(16,8), "ee14160");
+ check_base_class_offset(lv, (dd4160*), ABISELECT(16,8), "ee14160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14160.e");
+ test_class_info(&lv, &cd_ee14160);
+ dp->~ee14160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14160(Test_ee14160, "ee14160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14160C1Ev();
+extern void _ZN7ee14160D1Ev();
+Name_Map name_map_ee14160[] = {
+ NSPAIR(_ZN7ee14160C1Ev),
+ NSPAIR(_ZN7ee14160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee14160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, ABISELECT(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 _ZTI7ee14160[];
+extern void _ZN6dd41603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee14160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14160[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee14160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee14160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee14160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee14160[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee14160[] = {
+ {&(_ZTV7ee14160[4]), 4,15},
+ {&(_ZTV7ee14160[8]), 8,15},
+ {&(_ZTV7ee14160[13]), 13,15},
+ {&(_tg__ZTV6dd4160__7ee14160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee14160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee14160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee14160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14160[];
+extern VTBL_ENTRY _ZTV7ee14160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14160[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14160 = { "ee14160", // class name
+ bases_ee14160, 4,
+ &(vtc_ee14160[0]), // expected_vtbl_contents
+ &(vtt_ee14160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14160),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 ee24160 : dd4160 {
+ int e;
+ virtual void foo(); // _ZN7ee241603fooEv
+ ~ee24160(); // tgen
+ ee24160(); // tgen
+};
+//SIG(1 ee24160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24160 ::foo(){vfunc_called(this, "_ZN7ee241603fooEv");}
+ee24160 ::~ee24160(){ note_dtor("ee24160", this);} // tgen
+ee24160 ::ee24160(){ note_ctor("ee24160", this);} // tgen
+
+static void Test_ee24160()
+{
+ extern Class_Descriptor cd_ee24160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24160, buf);
+ ee24160 *dp, &lv = *(dp=new (buf) ee24160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee24160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(24,16), "ee24160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), 0, "ee24160");
+ check_base_class_offset(lv, (dd4160*), 0, "ee24160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24160.e");
+ test_class_info(&lv, &cd_ee24160);
+ dp->~ee24160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24160(Test_ee24160, "ee24160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24160C1Ev();
+extern void _ZN7ee24160D1Ev();
+Name_Map name_map_ee24160[] = {
+ NSPAIR(_ZN7ee24160C1Ev),
+ NSPAIR(_ZN7ee24160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee24160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24160[];
+extern void _ZN6dd41603barEv();
+extern void _ZN7ee241603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee241603fooEv,_ZTv0_n16_N7ee241603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241603fooEv,_ZThn16_N7ee241603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+ (VTBL_ENTRY)&_ZN7ee241603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee241603fooEv,_ZTv0_n16_N7ee241603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee24160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee24160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee24160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee24160[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee24160[] = {
+ {&(_ZTV7ee24160[3]), 3,11},
+ {&(_tg__ZTV6dd4160__7ee24160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee24160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee24160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee24160[4]), 4,6},
+ {&(_ZTV7ee24160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24160[];
+extern VTBL_ENTRY _ZTV7ee24160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24160[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee241603fooEv,_ZTv0_n16_N7ee241603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241603fooEv,_ZThn16_N7ee241603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24160 = { "ee24160", // class name
+ bases_ee24160, 4,
+ &(vtc_ee24160[0]), // expected_vtbl_contents
+ &(vtt_ee24160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24160),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 ee34160 : virtual dd4160 {
+ int e;
+ virtual void foo(); // _ZN7ee341603fooEv
+ ~ee34160(); // tgen
+ ee34160(); // tgen
+};
+//SIG(1 ee34160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34160 ::foo(){vfunc_called(this, "_ZN7ee341603fooEv");}
+ee34160 ::~ee34160(){ note_dtor("ee34160", this);} // tgen
+ee34160 ::ee34160(){ note_ctor("ee34160", this);} // tgen
+
+static void Test_ee34160()
+{
+ extern Class_Descriptor cd_ee34160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34160, buf);
+ ee34160 *dp, &lv = *(dp=new (buf) ee34160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee34160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(32,20), "ee34160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), ABISELECT(16,8), "ee34160");
+ check_base_class_offset(lv, (dd4160*), ABISELECT(16,8), "ee34160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34160.e");
+ test_class_info(&lv, &cd_ee34160);
+ dp->~ee34160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34160(Test_ee34160, "ee34160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34160C1Ev();
+extern void _ZN7ee34160D1Ev();
+Name_Map name_map_ee34160[] = {
+ NSPAIR(_ZN7ee34160C1Ev),
+ NSPAIR(_ZN7ee34160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee34160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, ABISELECT(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 _ZTI7ee34160[];
+extern void _ZN7ee341603fooEv();
+extern void _ZN6dd41603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee341603fooEv,_ZTv0_n16_N7ee341603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341603fooEv,_ZThn20_N7ee341603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34160[0]),
+ (VTBL_ENTRY)&_ZN7ee341603fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee341603fooEv,_ZTv0_n16_N7ee341603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee34160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee34160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee34160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee34160[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee34160[] = {
+ {&(_ZTV7ee34160[4]), 4,16},
+ {&(_ZTV7ee34160[9]), 9,16},
+ {&(_ZTV7ee34160[14]), 14,16},
+ {&(_tg__ZTV6dd4160__7ee34160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee34160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee34160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee34160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34160[];
+extern VTBL_ENTRY _ZTV7ee34160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34160[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee341603fooEv,_ZTv0_n16_N7ee341603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341603fooEv,_ZThn20_N7ee341603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34160 = { "ee34160", // class name
+ bases_ee34160, 4,
+ &(vtc_ee34160[0]), // expected_vtbl_contents
+ &(vtt_ee34160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34160),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34160),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 ee44160 : dd4160 {
+ int e;
+ virtual void bar(); // _ZN7ee441603barEv
+ ~ee44160(); // tgen
+ ee44160(); // tgen
+};
+//SIG(1 ee44160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44160 ::bar(){vfunc_called(this, "_ZN7ee441603barEv");}
+ee44160 ::~ee44160(){ note_dtor("ee44160", this);} // tgen
+ee44160 ::ee44160(){ note_ctor("ee44160", this);} // tgen
+
+static void Test_ee44160()
+{
+ extern Class_Descriptor cd_ee44160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44160, buf);
+ ee44160 *dp, &lv = *(dp=new (buf) ee44160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee44160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(24,16), "ee44160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), 0, "ee44160");
+ check_base_class_offset(lv, (dd4160*), 0, "ee44160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44160.e");
+ test_class_info(&lv, &cd_ee44160);
+ dp->~ee44160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44160(Test_ee44160, "ee44160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44160C1Ev();
+extern void _ZN7ee44160D1Ev();
+Name_Map name_map_ee44160[] = {
+ NSPAIR(_ZN7ee44160C1Ev),
+ NSPAIR(_ZN7ee44160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee44160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44160[];
+extern void _ZN7ee441603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee441603barEv,_ZTv0_n12_N7ee441603barEv)();
+extern void ABISELECT(_ZThn24_N7ee441603barEv,_ZThn16_N7ee441603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee44160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44160[0]),
+ (VTBL_ENTRY)&_ZN7ee441603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee441603barEv,_ZTv0_n12_N7ee441603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee44160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee44160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee44160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee44160[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee44160[] = {
+ {&(_ZTV7ee44160[3]), 3,10},
+ {&(_tg__ZTV6dd4160__7ee44160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee44160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee44160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee44160[4]), 4,6},
+ {&(_ZTV7ee44160[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44160[];
+extern VTBL_ENTRY _ZTV7ee44160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44160[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee441603barEv,_ZTv0_n12_N7ee441603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441603barEv,_ZThn16_N7ee441603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44160 = { "ee44160", // class name
+ bases_ee44160, 4,
+ &(vtc_ee44160[0]), // expected_vtbl_contents
+ &(vtt_ee44160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44160),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44160),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 ee54160 : virtual dd4160 {
+ int e;
+ virtual void bar(); // _ZN7ee541603barEv
+ ~ee54160(); // tgen
+ ee54160(); // tgen
+};
+//SIG(1 ee54160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54160 ::bar(){vfunc_called(this, "_ZN7ee541603barEv");}
+ee54160 ::~ee54160(){ note_dtor("ee54160", this);} // tgen
+ee54160 ::ee54160(){ note_ctor("ee54160", this);} // tgen
+
+static void Test_ee54160()
+{
+ extern Class_Descriptor cd_ee54160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54160, buf);
+ ee54160 *dp, &lv = *(dp=new (buf) ee54160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee54160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(32,20), "ee54160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), ABISELECT(16,8), "ee54160");
+ check_base_class_offset(lv, (dd4160*), ABISELECT(16,8), "ee54160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54160.e");
+ test_class_info(&lv, &cd_ee54160);
+ dp->~ee54160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54160(Test_ee54160, "ee54160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54160C1Ev();
+extern void _ZN7ee54160D1Ev();
+Name_Map name_map_ee54160[] = {
+ NSPAIR(_ZN7ee54160C1Ev),
+ NSPAIR(_ZN7ee54160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee54160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, ABISELECT(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 _ZTI7ee54160[];
+extern void _ZN7ee541603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541603barEv,_ZTv0_n16_N7ee541603barEv)();
+extern void ABISELECT(_ZThn16_N7ee541603barEv,_ZThn8_N7ee541603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee541603barEv,_ZTv0_n12_N7ee541603barEv)();
+extern void ABISELECT(_ZThn32_N7ee541603barEv,_ZThn20_N7ee541603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee54160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54160[0]),
+ (VTBL_ENTRY)&_ZN7ee541603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541603barEv,_ZTv0_n16_N7ee541603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee541603barEv,_ZTv0_n12_N7ee541603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee54160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee54160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee54160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee54160[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee54160[] = {
+ {&(_ZTV7ee54160[4]), 4,16},
+ {&(_ZTV7ee54160[9]), 9,16},
+ {&(_ZTV7ee54160[14]), 14,16},
+ {&(_tg__ZTV6dd4160__7ee54160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee54160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee54160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee54160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54160[];
+extern VTBL_ENTRY _ZTV7ee54160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54160[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee541603barEv,_ZTv0_n12_N7ee541603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541603barEv,_ZThn20_N7ee541603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541603barEv,_ZTv0_n16_N7ee541603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541603barEv,_ZThn8_N7ee541603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54160 = { "ee54160", // class name
+ bases_ee54160, 4,
+ &(vtc_ee54160[0]), // expected_vtbl_contents
+ &(vtt_ee54160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54160),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54160),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 ee64160 : dd4160 {
+ int e;
+ virtual void foo(); // _ZN7ee641603fooEv
+ virtual void bar(); // _ZN7ee641603barEv
+ ~ee64160(); // tgen
+ ee64160(); // tgen
+};
+//SIG(1 ee64160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64160 ::foo(){vfunc_called(this, "_ZN7ee641603fooEv");}
+void ee64160 ::bar(){vfunc_called(this, "_ZN7ee641603barEv");}
+ee64160 ::~ee64160(){ note_dtor("ee64160", this);} // tgen
+ee64160 ::ee64160(){ note_ctor("ee64160", this);} // tgen
+
+static void Test_ee64160()
+{
+ extern Class_Descriptor cd_ee64160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64160, buf);
+ ee64160 *dp, &lv = *(dp=new (buf) ee64160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee64160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(24,16), "ee64160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), 0, "ee64160");
+ check_base_class_offset(lv, (dd4160*), 0, "ee64160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64160.e");
+ test_class_info(&lv, &cd_ee64160);
+ dp->~ee64160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64160(Test_ee64160, "ee64160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64160C1Ev();
+extern void _ZN7ee64160D1Ev();
+Name_Map name_map_ee64160[] = {
+ NSPAIR(_ZN7ee64160C1Ev),
+ NSPAIR(_ZN7ee64160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee64160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64160[];
+extern void _ZN7ee641603barEv();
+extern void _ZN7ee641603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641603barEv,_ZTv0_n12_N7ee641603barEv)();
+extern void ABISELECT(_ZThn24_N7ee641603barEv,_ZThn16_N7ee641603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641603fooEv,_ZTv0_n16_N7ee641603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641603fooEv,_ZThn16_N7ee641603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64160[0]),
+ (VTBL_ENTRY)&_ZN7ee641603barEv,
+ (VTBL_ENTRY)&_ZN7ee641603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641603barEv,_ZTv0_n12_N7ee641603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641603fooEv,_ZTv0_n16_N7ee641603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee64160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee64160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee64160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee64160[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee64160[] = {
+ {&(_ZTV7ee64160[3]), 3,11},
+ {&(_tg__ZTV6dd4160__7ee64160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee64160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee64160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee64160[4]), 4,6},
+ {&(_ZTV7ee64160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64160[];
+extern VTBL_ENTRY _ZTV7ee64160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64160[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41603barEv,_ZThn16_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641603fooEv,_ZTv0_n16_N7ee641603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641603fooEv,_ZThn16_N7ee641603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641603barEv,_ZTv0_n12_N7ee641603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641603barEv,_ZThn16_N7ee641603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64160 = { "ee64160", // class name
+ bases_ee64160, 4,
+ &(vtc_ee64160[0]), // expected_vtbl_contents
+ &(vtt_ee64160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64160),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names83,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74160 : virtual dd4160 {
+ int e;
+ virtual void foo(); // _ZN7ee741603fooEv
+ virtual void bar(); // _ZN7ee741603barEv
+ ~ee74160(); // tgen
+ ee74160(); // tgen
+};
+//SIG(1 ee74160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74160 ::foo(){vfunc_called(this, "_ZN7ee741603fooEv");}
+void ee74160 ::bar(){vfunc_called(this, "_ZN7ee741603barEv");}
+ee74160 ::~ee74160(){ note_dtor("ee74160", this);} // tgen
+ee74160 ::ee74160(){ note_ctor("ee74160", this);} // tgen
+
+static void Test_ee74160()
+{
+ extern Class_Descriptor cd_ee74160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74160, buf);
+ ee74160 *dp, &lv = *(dp=new (buf) ee74160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee74160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd4160*), ABISELECT(32,20), "ee74160");
+ check_base_class_offset(lv, (cc160*)(dd4160*), ABISELECT(16,8), "ee74160");
+ check_base_class_offset(lv, (dd4160*), ABISELECT(16,8), "ee74160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74160.e");
+ test_class_info(&lv, &cd_ee74160);
+ dp->~ee74160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74160(Test_ee74160, "ee74160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74160C1Ev();
+extern void _ZN7ee74160D1Ev();
+Name_Map name_map_ee74160[] = {
+ NSPAIR(_ZN7ee74160C1Ev),
+ NSPAIR(_ZN7ee74160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd4160;
+extern VTBL_ENTRY _ZTI6dd4160[];
+extern VTBL_ENTRY _ZTV6dd4160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4160[];
+static Base_Class bases_ee74160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4160, 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 _ZTI7ee74160[];
+extern void _ZN7ee741603fooEv();
+extern void _ZN7ee741603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741603barEv,_ZTv0_n16_N7ee741603barEv)();
+extern void ABISELECT(_ZThn16_N7ee741603barEv,_ZThn8_N7ee741603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741603barEv,_ZTv0_n12_N7ee741603barEv)();
+extern void ABISELECT(_ZThn32_N7ee741603barEv,_ZThn20_N7ee741603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741603fooEv,_ZTv0_n16_N7ee741603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741603fooEv,_ZThn20_N7ee741603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74160[0]),
+ (VTBL_ENTRY)&_ZN7ee741603fooEv,
+ (VTBL_ENTRY)&_ZN7ee741603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741603barEv,_ZTv0_n16_N7ee741603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741603barEv,_ZTv0_n12_N7ee741603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741603fooEv,_ZTv0_n16_N7ee741603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74160[];
+extern void _ZN6dd41603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4160__7ee74160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&_ZN6dd41603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd4160__7ee74160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd4160__7ee74160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv)();
+extern void ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4160__7ee74160[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee74160[] = {
+ {&(_ZTV7ee74160[4]), 4,17},
+ {&(_ZTV7ee74160[10]), 10,17},
+ {&(_ZTV7ee74160[15]), 15,17},
+ {&(_tg__ZTV6dd4160__7ee74160[3]), 3,4},
+ {&(_tg__ZTV5cc1606dd4160__7ee74160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd4160__7ee74160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4160__7ee74160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74160[];
+extern VTBL_ENTRY _ZTV7ee74160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74160[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd41603barEv,_ZTv0_n12_N6dd41603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41603barEv,_ZThn12_N6dd41603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741603fooEv,_ZTv0_n16_N7ee741603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741603fooEv,_ZThn20_N7ee741603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741603barEv,_ZTv0_n12_N7ee741603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741603barEv,_ZThn20_N7ee741603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741603barEv,_ZTv0_n16_N7ee741603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741603barEv,_ZThn8_N7ee741603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74160 = { "ee74160", // class name
+ bases_ee74160, 4,
+ &(vtc_ee74160[0]), // expected_vtbl_contents
+ &(vtt_ee74160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74160),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74160),7, //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 dd5160 : virtual cc160 {
+ int d;
+ virtual void bar(); // _ZN6dd51603barEv
+ ~dd5160(); // tgen
+ dd5160(); // tgen
+};
+//SIG(-1 dd5160) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5160 ::bar(){vfunc_called(this, "_ZN6dd51603barEv");}
+dd5160 ::~dd5160(){ note_dtor("dd5160", this);} // tgen
+dd5160 ::dd5160(){ note_ctor("dd5160", this);} // tgen
+
+static void Test_dd5160()
+{
+ extern Class_Descriptor cd_dd5160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5160, buf);
+ dd5160 *dp, &lv = *(dp=new (buf) dd5160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd5160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,16), "dd5160");
+ check_base_class_offset(lv, (cc160*), ABISELECT(16,8), "dd5160");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5160.d");
+ test_class_info(&lv, &cd_dd5160);
+ dp->~dd5160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5160(Test_dd5160, "dd5160", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5160C1Ev();
+extern void _ZN6dd5160D1Ev();
+Name_Map name_map_dd5160[] = {
+ NSPAIR(_ZN6dd5160C1Ev),
+ NSPAIR(_ZN6dd5160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd5160[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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 _ZTI6dd5160[];
+extern void _ZN6dd51603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd5160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd5160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd5160[] = {
+ {&(_ZTV6dd5160[4]), 4,14},
+ {&(_ZTV6dd5160[8]), 8,14},
+ {&(_ZTV6dd5160[12]), 12,14},
+ {&(_tg__ZTV5cc160__6dd5160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd5160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5160 = { "dd5160", // class name
+ bases_dd5160, 3,
+ &(vtc_dd5160[0]), // expected_vtbl_contents
+ &(vtt_dd5160[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5160),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05160 : dd5160 {
+ int e;
+ ~ee05160(); // tgen
+ ee05160(); // tgen
+};
+//SIG(1 ee05160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05160 ::~ee05160(){ note_dtor("ee05160", this);} // tgen
+ee05160 ::ee05160(){ note_ctor("ee05160", this);} // tgen
+
+static void Test_ee05160()
+{
+ extern Class_Descriptor cd_ee05160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05160, buf);
+ ee05160 *dp, &lv = *(dp=new (buf) ee05160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee05160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee05160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(16,12), "ee05160");
+ check_base_class_offset(lv, (dd5160*), 0, "ee05160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05160.e");
+ test_class_info(&lv, &cd_ee05160);
+ dp->~ee05160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05160(Test_ee05160, "ee05160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05160C1Ev();
+extern void _ZN7ee05160D1Ev();
+Name_Map name_map_ee05160[] = {
+ NSPAIR(_ZN7ee05160C1Ev),
+ NSPAIR(_ZN7ee05160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee05160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05160[];
+extern void _ZN6dd51603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee05160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05160[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee05160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee05160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee05160[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee05160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee05160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee05160[] = {
+ {&(_ZTV7ee05160[4]), 4,14},
+ {&(_tg__ZTV6dd5160__7ee05160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee05160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee05160[4]), 4,6},
+ {&(_ZTV7ee05160[8]), 8,14},
+ {&(_ZTV7ee05160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee05160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee05160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05160[];
+extern VTBL_ENTRY _ZTV7ee05160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05160[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05160 = { "ee05160", // class name
+ bases_ee05160, 4,
+ &(vtc_ee05160[0]), // expected_vtbl_contents
+ &(vtt_ee05160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05160),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 ee15160 : virtual dd5160 {
+ int e;
+ ~ee15160(); // tgen
+ ee15160(); // tgen
+};
+//SIG(1 ee15160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15160 ::~ee15160(){ note_dtor("ee15160", this);} // tgen
+ee15160 ::ee15160(){ note_ctor("ee15160", this);} // tgen
+
+static void Test_ee15160()
+{
+ extern Class_Descriptor cd_ee15160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15160, buf);
+ ee15160 *dp, &lv = *(dp=new (buf) ee15160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee15160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee15160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(32,16), "ee15160");
+ check_base_class_offset(lv, (dd5160*), ABISELECT(16,8), "ee15160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15160.e");
+ test_class_info(&lv, &cd_ee15160);
+ dp->~ee15160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15160(Test_ee15160, "ee15160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15160C1Ev();
+extern void _ZN7ee15160D1Ev();
+Name_Map name_map_ee15160[] = {
+ NSPAIR(_ZN7ee15160C1Ev),
+ NSPAIR(_ZN7ee15160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee15160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, ABISELECT(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 _ZTI7ee15160[];
+extern void _ZN6dd51603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee15160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15160[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15160[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee15160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee15160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee15160[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee15160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee15160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee15160[] = {
+ {&(_ZTV7ee15160[5]), 5,20},
+ {&(_ZTV7ee15160[10]), 10,20},
+ {&(_ZTV7ee15160[14]), 14,20},
+ {&(_ZTV7ee15160[18]), 18,20},
+ {&(_tg__ZTV6dd5160__7ee15160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee15160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee15160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee15160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee15160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15160[];
+extern VTBL_ENTRY _ZTV7ee15160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15160[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15160 = { "ee15160", // class name
+ bases_ee15160, 4,
+ &(vtc_ee15160[0]), // expected_vtbl_contents
+ &(vtt_ee15160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15160),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15160),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 ee25160 : dd5160 {
+ int e;
+ virtual void foo(); // _ZN7ee251603fooEv
+ ~ee25160(); // tgen
+ ee25160(); // tgen
+};
+//SIG(1 ee25160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25160 ::foo(){vfunc_called(this, "_ZN7ee251603fooEv");}
+ee25160 ::~ee25160(){ note_dtor("ee25160", this);} // tgen
+ee25160 ::ee25160(){ note_ctor("ee25160", this);} // tgen
+
+static void Test_ee25160()
+{
+ extern Class_Descriptor cd_ee25160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25160, buf);
+ ee25160 *dp, &lv = *(dp=new (buf) ee25160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee25160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee25160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(16,12), "ee25160");
+ check_base_class_offset(lv, (dd5160*), 0, "ee25160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25160.e");
+ test_class_info(&lv, &cd_ee25160);
+ dp->~ee25160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25160(Test_ee25160, "ee25160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25160C1Ev();
+extern void _ZN7ee25160D1Ev();
+Name_Map name_map_ee25160[] = {
+ NSPAIR(_ZN7ee25160C1Ev),
+ NSPAIR(_ZN7ee25160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee25160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25160[];
+extern void _ZN6dd51603barEv();
+extern void _ZN7ee251603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee251603fooEv,_ZTv0_n16_N7ee251603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251603fooEv,_ZThn20_N7ee251603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+ (VTBL_ENTRY)&_ZN7ee251603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee251603fooEv,_ZTv0_n16_N7ee251603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee25160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee25160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee25160[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee25160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee25160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee25160[] = {
+ {&(_ZTV7ee25160[4]), 4,15},
+ {&(_tg__ZTV6dd5160__7ee25160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee25160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee25160[4]), 4,6},
+ {&(_ZTV7ee25160[9]), 9,15},
+ {&(_ZTV7ee25160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee25160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee25160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25160[];
+extern VTBL_ENTRY _ZTV7ee25160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25160[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee251603fooEv,_ZTv0_n16_N7ee251603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251603fooEv,_ZThn20_N7ee251603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25160 = { "ee25160", // class name
+ bases_ee25160, 4,
+ &(vtc_ee25160[0]), // expected_vtbl_contents
+ &(vtt_ee25160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25160),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 ee35160 : virtual dd5160 {
+ int e;
+ virtual void foo(); // _ZN7ee351603fooEv
+ ~ee35160(); // tgen
+ ee35160(); // tgen
+};
+//SIG(1 ee35160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35160 ::foo(){vfunc_called(this, "_ZN7ee351603fooEv");}
+ee35160 ::~ee35160(){ note_dtor("ee35160", this);} // tgen
+ee35160 ::ee35160(){ note_ctor("ee35160", this);} // tgen
+
+static void Test_ee35160()
+{
+ extern Class_Descriptor cd_ee35160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35160, buf);
+ ee35160 *dp, &lv = *(dp=new (buf) ee35160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee35160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee35160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(32,16), "ee35160");
+ check_base_class_offset(lv, (dd5160*), ABISELECT(16,8), "ee35160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35160.e");
+ test_class_info(&lv, &cd_ee35160);
+ dp->~ee35160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35160(Test_ee35160, "ee35160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35160C1Ev();
+extern void _ZN7ee35160D1Ev();
+Name_Map name_map_ee35160[] = {
+ NSPAIR(_ZN7ee35160C1Ev),
+ NSPAIR(_ZN7ee35160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee35160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, ABISELECT(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 _ZTI7ee35160[];
+extern void _ZN7ee351603fooEv();
+extern void _ZN6dd51603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee351603fooEv,_ZTv0_n16_N7ee351603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351603fooEv,_ZThn24_N7ee351603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35160[0]),
+ (VTBL_ENTRY)&_ZN7ee351603fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee351603fooEv,_ZTv0_n16_N7ee351603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee35160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee35160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee35160[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee35160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee35160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee35160[] = {
+ {&(_ZTV7ee35160[5]), 5,21},
+ {&(_ZTV7ee35160[11]), 11,21},
+ {&(_ZTV7ee35160[15]), 15,21},
+ {&(_ZTV7ee35160[19]), 19,21},
+ {&(_tg__ZTV6dd5160__7ee35160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee35160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee35160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee35160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee35160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35160[];
+extern VTBL_ENTRY _ZTV7ee35160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35160[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee351603fooEv,_ZTv0_n16_N7ee351603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351603fooEv,_ZThn24_N7ee351603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35160 = { "ee35160", // class name
+ bases_ee35160, 4,
+ &(vtc_ee35160[0]), // expected_vtbl_contents
+ &(vtt_ee35160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35160),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35160),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 ee45160 : dd5160 {
+ int e;
+ virtual void bar(); // _ZN7ee451603barEv
+ ~ee45160(); // tgen
+ ee45160(); // tgen
+};
+//SIG(1 ee45160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45160 ::bar(){vfunc_called(this, "_ZN7ee451603barEv");}
+ee45160 ::~ee45160(){ note_dtor("ee45160", this);} // tgen
+ee45160 ::ee45160(){ note_ctor("ee45160", this);} // tgen
+
+static void Test_ee45160()
+{
+ extern Class_Descriptor cd_ee45160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45160, buf);
+ ee45160 *dp, &lv = *(dp=new (buf) ee45160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee45160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee45160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(16,12), "ee45160");
+ check_base_class_offset(lv, (dd5160*), 0, "ee45160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45160.e");
+ test_class_info(&lv, &cd_ee45160);
+ dp->~ee45160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45160(Test_ee45160, "ee45160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45160C1Ev();
+extern void _ZN7ee45160D1Ev();
+Name_Map name_map_ee45160[] = {
+ NSPAIR(_ZN7ee45160C1Ev),
+ NSPAIR(_ZN7ee45160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee45160[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45160[];
+extern void _ZN7ee451603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee451603barEv,_ZTv0_n12_N7ee451603barEv)();
+extern void ABISELECT(_ZThn32_N7ee451603barEv,_ZThn20_N7ee451603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee45160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45160[0]),
+ (VTBL_ENTRY)&_ZN7ee451603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45160[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee451603barEv,_ZTv0_n12_N7ee451603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee45160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee45160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee45160[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee45160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee45160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee45160[] = {
+ {&(_ZTV7ee45160[4]), 4,14},
+ {&(_tg__ZTV6dd5160__7ee45160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee45160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee45160[4]), 4,6},
+ {&(_ZTV7ee45160[8]), 8,14},
+ {&(_ZTV7ee45160[12]), 12,14},
+ {&(_tg__ZTV5cc160__7ee45160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee45160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45160[];
+extern VTBL_ENTRY _ZTV7ee45160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45160[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee451603barEv,_ZTv0_n12_N7ee451603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451603barEv,_ZThn20_N7ee451603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45160 = { "ee45160", // class name
+ bases_ee45160, 4,
+ &(vtc_ee45160[0]), // expected_vtbl_contents
+ &(vtt_ee45160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45160),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45160),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 ee55160 : virtual dd5160 {
+ int e;
+ virtual void bar(); // _ZN7ee551603barEv
+ ~ee55160(); // tgen
+ ee55160(); // tgen
+};
+//SIG(1 ee55160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55160 ::bar(){vfunc_called(this, "_ZN7ee551603barEv");}
+ee55160 ::~ee55160(){ note_dtor("ee55160", this);} // tgen
+ee55160 ::ee55160(){ note_ctor("ee55160", this);} // tgen
+
+static void Test_ee55160()
+{
+ extern Class_Descriptor cd_ee55160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55160, buf);
+ ee55160 *dp, &lv = *(dp=new (buf) ee55160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee55160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee55160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(32,16), "ee55160");
+ check_base_class_offset(lv, (dd5160*), ABISELECT(16,8), "ee55160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55160.e");
+ test_class_info(&lv, &cd_ee55160);
+ dp->~ee55160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55160(Test_ee55160, "ee55160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55160C1Ev();
+extern void _ZN7ee55160D1Ev();
+Name_Map name_map_ee55160[] = {
+ NSPAIR(_ZN7ee55160C1Ev),
+ NSPAIR(_ZN7ee55160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee55160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, ABISELECT(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 _ZTI7ee55160[];
+extern void _ZN7ee551603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551603barEv,_ZTv0_n20_N7ee551603barEv)();
+extern void ABISELECT(_ZThn16_N7ee551603barEv,_ZThn8_N7ee551603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee551603barEv,_ZTv0_n12_N7ee551603barEv)();
+extern void ABISELECT(_ZThn48_N7ee551603barEv,_ZThn24_N7ee551603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee55160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55160[0]),
+ (VTBL_ENTRY)&_ZN7ee551603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551603barEv,_ZTv0_n20_N7ee551603barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55160[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee551603barEv,_ZTv0_n12_N7ee551603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee55160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee55160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee55160[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee55160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee55160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee55160[] = {
+ {&(_ZTV7ee55160[5]), 5,21},
+ {&(_ZTV7ee55160[11]), 11,21},
+ {&(_ZTV7ee55160[15]), 15,21},
+ {&(_ZTV7ee55160[19]), 19,21},
+ {&(_tg__ZTV6dd5160__7ee55160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee55160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee55160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee55160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee55160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55160[];
+extern VTBL_ENTRY _ZTV7ee55160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55160[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee551603barEv,_ZTv0_n12_N7ee551603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551603barEv,_ZThn24_N7ee551603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551603barEv,_ZTv0_n20_N7ee551603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551603barEv,_ZThn8_N7ee551603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55160 = { "ee55160", // class name
+ bases_ee55160, 4,
+ &(vtc_ee55160[0]), // expected_vtbl_contents
+ &(vtt_ee55160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55160),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55160),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 ee65160 : dd5160 {
+ int e;
+ virtual void foo(); // _ZN7ee651603fooEv
+ virtual void bar(); // _ZN7ee651603barEv
+ ~ee65160(); // tgen
+ ee65160(); // tgen
+};
+//SIG(1 ee65160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65160 ::foo(){vfunc_called(this, "_ZN7ee651603fooEv");}
+void ee65160 ::bar(){vfunc_called(this, "_ZN7ee651603barEv");}
+ee65160 ::~ee65160(){ note_dtor("ee65160", this);} // tgen
+ee65160 ::ee65160(){ note_ctor("ee65160", this);} // tgen
+
+static void Test_ee65160()
+{
+ extern Class_Descriptor cd_ee65160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65160, buf);
+ ee65160 *dp, &lv = *(dp=new (buf) ee65160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee65160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee65160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(16,12), "ee65160");
+ check_base_class_offset(lv, (dd5160*), 0, "ee65160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65160.e");
+ test_class_info(&lv, &cd_ee65160);
+ dp->~ee65160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65160(Test_ee65160, "ee65160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65160C1Ev();
+extern void _ZN7ee65160D1Ev();
+Name_Map name_map_ee65160[] = {
+ NSPAIR(_ZN7ee65160C1Ev),
+ NSPAIR(_ZN7ee65160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee65160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65160[];
+extern void _ZN7ee651603barEv();
+extern void _ZN7ee651603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651603barEv,_ZTv0_n12_N7ee651603barEv)();
+extern void ABISELECT(_ZThn32_N7ee651603barEv,_ZThn20_N7ee651603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651603fooEv,_ZTv0_n16_N7ee651603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651603fooEv,_ZThn20_N7ee651603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65160[0]),
+ (VTBL_ENTRY)&_ZN7ee651603barEv,
+ (VTBL_ENTRY)&_ZN7ee651603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651603barEv,_ZTv0_n12_N7ee651603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651603fooEv,_ZTv0_n16_N7ee651603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee65160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee65160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee65160[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee65160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee65160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee65160[] = {
+ {&(_ZTV7ee65160[4]), 4,15},
+ {&(_tg__ZTV6dd5160__7ee65160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee65160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee65160[4]), 4,6},
+ {&(_ZTV7ee65160[9]), 9,15},
+ {&(_ZTV7ee65160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee65160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee65160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65160[];
+extern VTBL_ENTRY _ZTV7ee65160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65160[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn20_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651603fooEv,_ZTv0_n16_N7ee651603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651603fooEv,_ZThn20_N7ee651603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651603barEv,_ZTv0_n12_N7ee651603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651603barEv,_ZThn20_N7ee651603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65160 = { "ee65160", // class name
+ bases_ee65160, 4,
+ &(vtc_ee65160[0]), // expected_vtbl_contents
+ &(vtt_ee65160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65160),8, //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 ee75160 : virtual dd5160 {
+ int e;
+ virtual void foo(); // _ZN7ee751603fooEv
+ virtual void bar(); // _ZN7ee751603barEv
+ ~ee75160(); // tgen
+ ee75160(); // tgen
+};
+//SIG(1 ee75160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75160 ::foo(){vfunc_called(this, "_ZN7ee751603fooEv");}
+void ee75160 ::bar(){vfunc_called(this, "_ZN7ee751603barEv");}
+ee75160 ::~ee75160(){ note_dtor("ee75160", this);} // tgen
+ee75160 ::ee75160(){ note_ctor("ee75160", this);} // tgen
+
+static void Test_ee75160()
+{
+ extern Class_Descriptor cd_ee75160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75160, buf);
+ ee75160 *dp, &lv = *(dp=new (buf) ee75160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee75160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee75160");
+ check_base_class_offset(lv, (cc160*)(dd5160*), ABISELECT(32,16), "ee75160");
+ check_base_class_offset(lv, (dd5160*), ABISELECT(16,8), "ee75160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75160.e");
+ test_class_info(&lv, &cd_ee75160);
+ dp->~ee75160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75160(Test_ee75160, "ee75160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75160C1Ev();
+extern void _ZN7ee75160D1Ev();
+Name_Map name_map_ee75160[] = {
+ NSPAIR(_ZN7ee75160C1Ev),
+ NSPAIR(_ZN7ee75160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd5160;
+extern VTBL_ENTRY _ZTI6dd5160[];
+extern VTBL_ENTRY _ZTV6dd5160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5160[];
+static Base_Class bases_ee75160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd5160, 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 _ZTI7ee75160[];
+extern void _ZN7ee751603fooEv();
+extern void _ZN7ee751603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751603barEv,_ZTv0_n20_N7ee751603barEv)();
+extern void ABISELECT(_ZThn16_N7ee751603barEv,_ZThn8_N7ee751603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751603barEv,_ZTv0_n12_N7ee751603barEv)();
+extern void ABISELECT(_ZThn48_N7ee751603barEv,_ZThn24_N7ee751603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751603fooEv,_ZTv0_n16_N7ee751603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751603fooEv,_ZThn24_N7ee751603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75160[0]),
+ (VTBL_ENTRY)&_ZN7ee751603fooEv,
+ (VTBL_ENTRY)&_ZN7ee751603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751603barEv,_ZTv0_n20_N7ee751603barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751603barEv,_ZTv0_n12_N7ee751603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751603fooEv,_ZTv0_n16_N7ee751603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75160[];
+extern void _ZN6dd51603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5160__7ee75160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&_ZN6dd51603barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd5160__7ee75160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv)();
+extern void ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5160__7ee75160[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee75160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee75160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee75160[] = {
+ {&(_ZTV7ee75160[5]), 5,22},
+ {&(_ZTV7ee75160[12]), 12,22},
+ {&(_ZTV7ee75160[16]), 16,22},
+ {&(_ZTV7ee75160[20]), 20,22},
+ {&(_tg__ZTV6dd5160__7ee75160[4]), 4,5},
+ {&(_tg__ZTV5cc160__6dd5160__7ee75160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd5160__7ee75160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee75160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee75160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75160[];
+extern VTBL_ENTRY _ZTV7ee75160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75160[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd51603barEv,_ZTv0_n12_N6dd51603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51603barEv,_ZThn16_N6dd51603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751603fooEv,_ZTv0_n16_N7ee751603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751603fooEv,_ZThn24_N7ee751603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751603barEv,_ZTv0_n12_N7ee751603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751603barEv,_ZThn24_N7ee751603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751603barEv,_ZTv0_n20_N7ee751603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751603barEv,_ZThn8_N7ee751603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75160 = { "ee75160", // class name
+ bases_ee75160, 4,
+ &(vtc_ee75160[0]), // expected_vtbl_contents
+ &(vtt_ee75160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75160),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75160),9, //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 dd6160 : cc160 {
+ int d;
+ virtual void bar(); // _ZN6dd61603barEv
+ virtual void foo(); // _ZN6dd61603fooEv
+ ~dd6160(); // tgen
+ dd6160(); // tgen
+};
+//SIG(-1 dd6160) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6160 ::bar(){vfunc_called(this, "_ZN6dd61603barEv");}
+void dd6160 ::foo(){vfunc_called(this, "_ZN6dd61603fooEv");}
+dd6160 ::~dd6160(){ note_dtor("dd6160", this);} // tgen
+dd6160 ::dd6160(){ note_ctor("dd6160", this);} // tgen
+
+static void Test_dd6160()
+{
+ extern Class_Descriptor cd_dd6160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6160, buf);
+ dd6160 *dp, &lv = *(dp=new (buf) dd6160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd6160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(16,12), "dd6160");
+ check_base_class_offset(lv, (cc160*), 0, "dd6160");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6160.d");
+ test_class_info(&lv, &cd_dd6160);
+ dp->~dd6160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6160(Test_dd6160, "dd6160", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6160C1Ev();
+extern void _ZN6dd6160D1Ev();
+Name_Map name_map_dd6160[] = {
+ NSPAIR(_ZN6dd6160C1Ev),
+ NSPAIR(_ZN6dd6160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd6160[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd6160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd6160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd6160[] = {
+ {&(_ZTV6dd6160[3]), 3,11},
+ {&(_tg__ZTV5cc160__6dd6160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd6160[4]), 4,6},
+ {&(_ZTV6dd6160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6160 = { "dd6160", // class name
+ bases_dd6160, 3,
+ &(vtc_dd6160[0]), // expected_vtbl_contents
+ &(vtt_dd6160[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6160),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06160 : dd6160 {
+ int e;
+ ~ee06160(); // tgen
+ ee06160(); // tgen
+};
+//SIG(1 ee06160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06160 ::~ee06160(){ note_dtor("ee06160", this);} // tgen
+ee06160 ::ee06160(){ note_ctor("ee06160", this);} // tgen
+
+static void Test_ee06160()
+{
+ extern Class_Descriptor cd_ee06160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06160, buf);
+ ee06160 *dp, &lv = *(dp=new (buf) ee06160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee06160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(24,16), "ee06160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), 0, "ee06160");
+ check_base_class_offset(lv, (dd6160*), 0, "ee06160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06160.e");
+ test_class_info(&lv, &cd_ee06160);
+ dp->~ee06160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06160(Test_ee06160, "ee06160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06160C1Ev();
+extern void _ZN7ee06160D1Ev();
+Name_Map name_map_ee06160[] = {
+ NSPAIR(_ZN7ee06160C1Ev),
+ NSPAIR(_ZN7ee06160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee06160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee06160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee06160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee06160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee06160[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee06160[] = {
+ {&(_ZTV7ee06160[3]), 3,11},
+ {&(_tg__ZTV6dd6160__7ee06160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee06160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee06160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee06160[4]), 4,6},
+ {&(_ZTV7ee06160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06160[];
+extern VTBL_ENTRY _ZTV7ee06160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06160[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06160 = { "ee06160", // class name
+ bases_ee06160, 4,
+ &(vtc_ee06160[0]), // expected_vtbl_contents
+ &(vtt_ee06160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06160),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names95,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16160 : virtual dd6160 {
+ int e;
+ ~ee16160(); // tgen
+ ee16160(); // tgen
+};
+//SIG(1 ee16160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16160 ::~ee16160(){ note_dtor("ee16160", this);} // tgen
+ee16160 ::ee16160(){ note_ctor("ee16160", this);} // tgen
+
+static void Test_ee16160()
+{
+ extern Class_Descriptor cd_ee16160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16160, buf);
+ ee16160 *dp, &lv = *(dp=new (buf) ee16160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee16160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(32,20), "ee16160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), ABISELECT(16,8), "ee16160");
+ check_base_class_offset(lv, (dd6160*), ABISELECT(16,8), "ee16160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16160.e");
+ test_class_info(&lv, &cd_ee16160);
+ dp->~ee16160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16160(Test_ee16160, "ee16160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16160C1Ev();
+extern void _ZN7ee16160D1Ev();
+Name_Map name_map_ee16160[] = {
+ NSPAIR(_ZN7ee16160C1Ev),
+ NSPAIR(_ZN7ee16160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee16160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, 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 _ZTI7ee16160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16160[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee16160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee16160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee16160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee16160[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee16160[] = {
+ {&(_ZTV7ee16160[4]), 4,17},
+ {&(_ZTV7ee16160[9]), 9,17},
+ {&(_ZTV7ee16160[15]), 15,17},
+ {&(_tg__ZTV6dd6160__7ee16160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee16160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee16160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee16160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16160[];
+extern VTBL_ENTRY _ZTV7ee16160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16160[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16160 = { "ee16160", // class name
+ bases_ee16160, 4,
+ &(vtc_ee16160[0]), // expected_vtbl_contents
+ &(vtt_ee16160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16160),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names96,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26160 : dd6160 {
+ int e;
+ virtual void foo(); // _ZN7ee261603fooEv
+ ~ee26160(); // tgen
+ ee26160(); // tgen
+};
+//SIG(1 ee26160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26160 ::foo(){vfunc_called(this, "_ZN7ee261603fooEv");}
+ee26160 ::~ee26160(){ note_dtor("ee26160", this);} // tgen
+ee26160 ::ee26160(){ note_ctor("ee26160", this);} // tgen
+
+static void Test_ee26160()
+{
+ extern Class_Descriptor cd_ee26160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26160, buf);
+ ee26160 *dp, &lv = *(dp=new (buf) ee26160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee26160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(24,16), "ee26160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), 0, "ee26160");
+ check_base_class_offset(lv, (dd6160*), 0, "ee26160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26160.e");
+ test_class_info(&lv, &cd_ee26160);
+ dp->~ee26160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26160(Test_ee26160, "ee26160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26160C1Ev();
+extern void _ZN7ee26160D1Ev();
+Name_Map name_map_ee26160[] = {
+ NSPAIR(_ZN7ee26160C1Ev),
+ NSPAIR(_ZN7ee26160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee26160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN7ee261603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee261603fooEv,_ZTv0_n16_N7ee261603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261603fooEv,_ZThn16_N7ee261603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN7ee261603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee261603fooEv,_ZTv0_n16_N7ee261603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee26160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee26160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee26160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee26160[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee26160[] = {
+ {&(_ZTV7ee26160[3]), 3,11},
+ {&(_tg__ZTV6dd6160__7ee26160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee26160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee26160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee26160[4]), 4,6},
+ {&(_ZTV7ee26160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26160[];
+extern VTBL_ENTRY _ZTV7ee26160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26160[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee261603fooEv,_ZTv0_n16_N7ee261603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261603fooEv,_ZThn16_N7ee261603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26160 = { "ee26160", // class name
+ bases_ee26160, 4,
+ &(vtc_ee26160[0]), // expected_vtbl_contents
+ &(vtt_ee26160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26160),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names97,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36160 : virtual dd6160 {
+ int e;
+ virtual void foo(); // _ZN7ee361603fooEv
+ ~ee36160(); // tgen
+ ee36160(); // tgen
+};
+//SIG(1 ee36160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36160 ::foo(){vfunc_called(this, "_ZN7ee361603fooEv");}
+ee36160 ::~ee36160(){ note_dtor("ee36160", this);} // tgen
+ee36160 ::ee36160(){ note_ctor("ee36160", this);} // tgen
+
+static void Test_ee36160()
+{
+ extern Class_Descriptor cd_ee36160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36160, buf);
+ ee36160 *dp, &lv = *(dp=new (buf) ee36160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee36160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(32,20), "ee36160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), ABISELECT(16,8), "ee36160");
+ check_base_class_offset(lv, (dd6160*), ABISELECT(16,8), "ee36160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36160.e");
+ test_class_info(&lv, &cd_ee36160);
+ dp->~ee36160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36160(Test_ee36160, "ee36160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36160C1Ev();
+extern void _ZN7ee36160D1Ev();
+Name_Map name_map_ee36160[] = {
+ NSPAIR(_ZN7ee36160C1Ev),
+ NSPAIR(_ZN7ee36160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee36160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, ABISELECT(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 _ZTI7ee36160[];
+extern void _ZN7ee361603fooEv();
+extern void _ZN6dd61603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361603fooEv,_ZTv0_n20_N7ee361603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361603fooEv,_ZThn8_N7ee361603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee361603fooEv,_ZTv0_n16_N7ee361603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361603fooEv,_ZThn20_N7ee361603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36160[0]),
+ (VTBL_ENTRY)&_ZN7ee361603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361603fooEv,_ZTv0_n20_N7ee361603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee361603fooEv,_ZTv0_n16_N7ee361603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee36160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee36160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee36160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee36160[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee36160[] = {
+ {&(_ZTV7ee36160[4]), 4,18},
+ {&(_ZTV7ee36160[10]), 10,18},
+ {&(_ZTV7ee36160[16]), 16,18},
+ {&(_tg__ZTV6dd6160__7ee36160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee36160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee36160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee36160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36160[];
+extern VTBL_ENTRY _ZTV7ee36160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36160[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee361603fooEv,_ZTv0_n16_N7ee361603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361603fooEv,_ZThn20_N7ee361603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361603fooEv,_ZTv0_n20_N7ee361603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361603fooEv,_ZThn8_N7ee361603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36160 = { "ee36160", // class name
+ bases_ee36160, 4,
+ &(vtc_ee36160[0]), // expected_vtbl_contents
+ &(vtt_ee36160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36160),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names98,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46160 : dd6160 {
+ int e;
+ virtual void bar(); // _ZN7ee461603barEv
+ ~ee46160(); // tgen
+ ee46160(); // tgen
+};
+//SIG(1 ee46160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46160 ::bar(){vfunc_called(this, "_ZN7ee461603barEv");}
+ee46160 ::~ee46160(){ note_dtor("ee46160", this);} // tgen
+ee46160 ::ee46160(){ note_ctor("ee46160", this);} // tgen
+
+static void Test_ee46160()
+{
+ extern Class_Descriptor cd_ee46160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46160, buf);
+ ee46160 *dp, &lv = *(dp=new (buf) ee46160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee46160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(24,16), "ee46160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), 0, "ee46160");
+ check_base_class_offset(lv, (dd6160*), 0, "ee46160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46160.e");
+ test_class_info(&lv, &cd_ee46160);
+ dp->~ee46160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46160(Test_ee46160, "ee46160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46160C1Ev();
+extern void _ZN7ee46160D1Ev();
+Name_Map name_map_ee46160[] = {
+ NSPAIR(_ZN7ee46160C1Ev),
+ NSPAIR(_ZN7ee46160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee46160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46160[];
+extern void _ZN7ee461603barEv();
+extern void _ZN6dd61603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee461603barEv,_ZTv0_n12_N7ee461603barEv)();
+extern void ABISELECT(_ZThn24_N7ee461603barEv,_ZThn16_N7ee461603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46160[0]),
+ (VTBL_ENTRY)&_ZN7ee461603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee461603barEv,_ZTv0_n12_N7ee461603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee46160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee46160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee46160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee46160[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee46160[] = {
+ {&(_ZTV7ee46160[3]), 3,11},
+ {&(_tg__ZTV6dd6160__7ee46160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee46160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee46160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee46160[4]), 4,6},
+ {&(_ZTV7ee46160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46160[];
+extern VTBL_ENTRY _ZTV7ee46160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46160[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee461603barEv,_ZTv0_n12_N7ee461603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461603barEv,_ZThn16_N7ee461603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46160 = { "ee46160", // class name
+ bases_ee46160, 4,
+ &(vtc_ee46160[0]), // expected_vtbl_contents
+ &(vtt_ee46160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46160),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56160 : virtual dd6160 {
+ int e;
+ virtual void bar(); // _ZN7ee561603barEv
+ ~ee56160(); // tgen
+ ee56160(); // tgen
+};
+//SIG(1 ee56160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56160 ::bar(){vfunc_called(this, "_ZN7ee561603barEv");}
+ee56160 ::~ee56160(){ note_dtor("ee56160", this);} // tgen
+ee56160 ::ee56160(){ note_ctor("ee56160", this);} // tgen
+
+static void Test_ee56160()
+{
+ extern Class_Descriptor cd_ee56160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56160, buf);
+ ee56160 *dp, &lv = *(dp=new (buf) ee56160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee56160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(32,20), "ee56160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), ABISELECT(16,8), "ee56160");
+ check_base_class_offset(lv, (dd6160*), ABISELECT(16,8), "ee56160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56160.e");
+ test_class_info(&lv, &cd_ee56160);
+ dp->~ee56160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56160(Test_ee56160, "ee56160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56160C1Ev();
+extern void _ZN7ee56160D1Ev();
+Name_Map name_map_ee56160[] = {
+ NSPAIR(_ZN7ee56160C1Ev),
+ NSPAIR(_ZN7ee56160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee56160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, ABISELECT(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 _ZTI7ee56160[];
+extern void _ZN7ee561603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561603barEv,_ZTv0_n16_N7ee561603barEv)();
+extern void ABISELECT(_ZThn16_N7ee561603barEv,_ZThn8_N7ee561603barEv)() __attribute__((weak));
+extern void _ZN6dd61603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee561603barEv,_ZTv0_n12_N7ee561603barEv)();
+extern void ABISELECT(_ZThn32_N7ee561603barEv,_ZThn20_N7ee561603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56160[0]),
+ (VTBL_ENTRY)&_ZN7ee561603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561603barEv,_ZTv0_n16_N7ee561603barEv),
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee561603barEv,_ZTv0_n12_N7ee561603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee56160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee56160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee56160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee56160[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee56160[] = {
+ {&(_ZTV7ee56160[4]), 4,18},
+ {&(_ZTV7ee56160[10]), 10,18},
+ {&(_ZTV7ee56160[16]), 16,18},
+ {&(_tg__ZTV6dd6160__7ee56160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee56160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee56160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee56160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56160[];
+extern VTBL_ENTRY _ZTV7ee56160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56160[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee561603barEv,_ZTv0_n12_N7ee561603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561603barEv,_ZThn20_N7ee561603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561603barEv,_ZTv0_n16_N7ee561603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561603barEv,_ZThn8_N7ee561603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56160 = { "ee56160", // class name
+ bases_ee56160, 4,
+ &(vtc_ee56160[0]), // expected_vtbl_contents
+ &(vtt_ee56160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56160),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56160),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66160 : dd6160 {
+ int e;
+ virtual void foo(); // _ZN7ee661603fooEv
+ virtual void bar(); // _ZN7ee661603barEv
+ ~ee66160(); // tgen
+ ee66160(); // tgen
+};
+//SIG(1 ee66160) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66160 ::foo(){vfunc_called(this, "_ZN7ee661603fooEv");}
+void ee66160 ::bar(){vfunc_called(this, "_ZN7ee661603barEv");}
+ee66160 ::~ee66160(){ note_dtor("ee66160", this);} // tgen
+ee66160 ::ee66160(){ note_ctor("ee66160", this);} // tgen
+
+static void Test_ee66160()
+{
+ extern Class_Descriptor cd_ee66160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66160, buf);
+ ee66160 *dp, &lv = *(dp=new (buf) ee66160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee66160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(24,16), "ee66160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), 0, "ee66160");
+ check_base_class_offset(lv, (dd6160*), 0, "ee66160");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66160.e");
+ test_class_info(&lv, &cd_ee66160);
+ dp->~ee66160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66160(Test_ee66160, "ee66160", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66160C1Ev();
+extern void _ZN7ee66160D1Ev();
+Name_Map name_map_ee66160[] = {
+ NSPAIR(_ZN7ee66160C1Ev),
+ NSPAIR(_ZN7ee66160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee66160[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66160[];
+extern void _ZN7ee661603barEv();
+extern void _ZN7ee661603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661603barEv,_ZTv0_n12_N7ee661603barEv)();
+extern void ABISELECT(_ZThn24_N7ee661603barEv,_ZThn16_N7ee661603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661603fooEv,_ZTv0_n16_N7ee661603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661603fooEv,_ZThn16_N7ee661603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66160[0]),
+ (VTBL_ENTRY)&_ZN7ee661603barEv,
+ (VTBL_ENTRY)&_ZN7ee661603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661603barEv,_ZTv0_n12_N7ee661603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661603fooEv,_ZTv0_n16_N7ee661603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee66160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee66160[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee66160[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee66160[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee66160[] = {
+ {&(_ZTV7ee66160[3]), 3,11},
+ {&(_tg__ZTV6dd6160__7ee66160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee66160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee66160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee66160[4]), 4,6},
+ {&(_ZTV7ee66160[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66160[];
+extern VTBL_ENTRY _ZTV7ee66160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66160[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603fooEv,_ZThn16_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61603barEv,_ZThn16_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661603fooEv,_ZTv0_n16_N7ee661603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661603fooEv,_ZThn16_N7ee661603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661603barEv,_ZTv0_n12_N7ee661603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661603barEv,_ZThn16_N7ee661603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66160 = { "ee66160", // class name
+ bases_ee66160, 4,
+ &(vtc_ee66160[0]), // expected_vtbl_contents
+ &(vtt_ee66160[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66160),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66160),6, //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 ee76160 : virtual dd6160 {
+ int e;
+ virtual void foo(); // _ZN7ee761603fooEv
+ virtual void bar(); // _ZN7ee761603barEv
+ ~ee76160(); // tgen
+ ee76160(); // tgen
+};
+//SIG(1 ee76160) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76160 ::foo(){vfunc_called(this, "_ZN7ee761603fooEv");}
+void ee76160 ::bar(){vfunc_called(this, "_ZN7ee761603barEv");}
+ee76160 ::~ee76160(){ note_dtor("ee76160", this);} // tgen
+ee76160 ::ee76160(){ note_ctor("ee76160", this);} // tgen
+
+static void Test_ee76160()
+{
+ extern Class_Descriptor cd_ee76160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76160, buf);
+ ee76160 *dp, &lv = *(dp=new (buf) ee76160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee76160");
+ check_base_class_offset(lv, (bb60*)(cc160*)(dd6160*), ABISELECT(32,20), "ee76160");
+ check_base_class_offset(lv, (cc160*)(dd6160*), ABISELECT(16,8), "ee76160");
+ check_base_class_offset(lv, (dd6160*), ABISELECT(16,8), "ee76160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76160.e");
+ test_class_info(&lv, &cd_ee76160);
+ dp->~ee76160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76160(Test_ee76160, "ee76160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76160C1Ev();
+extern void _ZN7ee76160D1Ev();
+Name_Map name_map_ee76160[] = {
+ NSPAIR(_ZN7ee76160C1Ev),
+ NSPAIR(_ZN7ee76160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd6160;
+extern VTBL_ENTRY _ZTI6dd6160[];
+extern VTBL_ENTRY _ZTV6dd6160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6160[];
+static Base_Class bases_ee76160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6160, ABISELECT(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 _ZTI7ee76160[];
+extern void _ZN7ee761603fooEv();
+extern void _ZN7ee761603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761603barEv,_ZTv0_n16_N7ee761603barEv)();
+extern void ABISELECT(_ZThn16_N7ee761603barEv,_ZThn8_N7ee761603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761603fooEv,_ZTv0_n20_N7ee761603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761603fooEv,_ZThn8_N7ee761603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761603barEv,_ZTv0_n12_N7ee761603barEv)();
+extern void ABISELECT(_ZThn32_N7ee761603barEv,_ZThn20_N7ee761603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761603fooEv,_ZTv0_n16_N7ee761603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761603fooEv,_ZThn20_N7ee761603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76160[0]),
+ (VTBL_ENTRY)&_ZN7ee761603fooEv,
+ (VTBL_ENTRY)&_ZN7ee761603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761603barEv,_ZTv0_n16_N7ee761603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761603fooEv,_ZTv0_n20_N7ee761603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761603barEv,_ZTv0_n12_N7ee761603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761603fooEv,_ZTv0_n16_N7ee761603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76160[];
+extern void _ZN6dd61603barEv();
+extern void _ZN6dd61603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6160__7ee76160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&_ZN6dd61603barEv,
+ (VTBL_ENTRY)&_ZN6dd61603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1606dd6160__7ee76160[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc1606dd6160__7ee76160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv)();
+extern void ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6160__7ee76160[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv),
+};
+static VTT_ENTRY vtt_ee76160[] = {
+ {&(_ZTV7ee76160[4]), 4,19},
+ {&(_ZTV7ee76160[11]), 11,19},
+ {&(_ZTV7ee76160[17]), 17,19},
+ {&(_tg__ZTV6dd6160__7ee76160[3]), 3,5},
+ {&(_tg__ZTV5cc1606dd6160__7ee76160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc1606dd6160__7ee76160[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6160__7ee76160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76160[];
+extern VTBL_ENTRY _ZTV7ee76160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76160[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61603fooEv,_ZTv0_n16_N6dd61603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603fooEv,_ZThn12_N6dd61603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61603barEv,_ZTv0_n12_N6dd61603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61603barEv,_ZThn12_N6dd61603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761603fooEv,_ZTv0_n16_N7ee761603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761603fooEv,_ZThn20_N7ee761603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761603barEv,_ZTv0_n12_N7ee761603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761603barEv,_ZThn20_N7ee761603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761603fooEv,_ZTv0_n20_N7ee761603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761603fooEv,_ZThn8_N7ee761603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761603barEv,_ZTv0_n16_N7ee761603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761603barEv,_ZThn8_N7ee761603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76160 = { "ee76160", // class name
+ bases_ee76160, 4,
+ &(vtc_ee76160[0]), // expected_vtbl_contents
+ &(vtt_ee76160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76160),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76160),7, //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 dd7160 : virtual cc160 {
+ int d;
+ virtual void bar(); // _ZN6dd71603barEv
+ virtual void foo(); // _ZN6dd71603fooEv
+ ~dd7160(); // tgen
+ dd7160(); // tgen
+};
+//SIG(-1 dd7160) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7160 ::bar(){vfunc_called(this, "_ZN6dd71603barEv");}
+void dd7160 ::foo(){vfunc_called(this, "_ZN6dd71603fooEv");}
+dd7160 ::~dd7160(){ note_dtor("dd7160", this);} // tgen
+dd7160 ::dd7160(){ note_ctor("dd7160", this);} // tgen
+
+static void Test_dd7160()
+{
+ extern Class_Descriptor cd_dd7160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7160, buf);
+ dd7160 *dp, &lv = *(dp=new (buf) dd7160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd7160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,16), "dd7160");
+ check_base_class_offset(lv, (cc160*), ABISELECT(16,8), "dd7160");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7160.d");
+ test_class_info(&lv, &cd_dd7160);
+ dp->~dd7160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7160(Test_dd7160, "dd7160", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7160C1Ev();
+extern void _ZN6dd7160D1Ev();
+Name_Map name_map_dd7160[] = {
+ NSPAIR(_ZN6dd7160C1Ev),
+ NSPAIR(_ZN6dd7160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+static Base_Class bases_dd7160[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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 _ZTI6dd7160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7160[];
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__6dd7160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd7160[] = {
+ {&(_ZTV6dd7160[4]), 4,15},
+ {&(_ZTV6dd7160[9]), 9,15},
+ {&(_ZTV6dd7160[13]), 13,15},
+ {&(_tg__ZTV5cc160__6dd7160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__6dd7160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7160 = { "dd7160", // class name
+ bases_dd7160, 3,
+ &(vtc_dd7160[0]), // expected_vtbl_contents
+ &(vtt_dd7160[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7160),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07160 : dd7160 {
+ int e;
+ ~ee07160(); // tgen
+ ee07160(); // tgen
+};
+//SIG(1 ee07160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07160 ::~ee07160(){ note_dtor("ee07160", this);} // tgen
+ee07160 ::ee07160(){ note_ctor("ee07160", this);} // tgen
+
+static void Test_ee07160()
+{
+ extern Class_Descriptor cd_ee07160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07160, buf);
+ ee07160 *dp, &lv = *(dp=new (buf) ee07160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee07160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee07160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(16,12), "ee07160");
+ check_base_class_offset(lv, (dd7160*), 0, "ee07160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07160.e");
+ test_class_info(&lv, &cd_ee07160);
+ dp->~ee07160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07160(Test_ee07160, "ee07160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07160C1Ev();
+extern void _ZN7ee07160D1Ev();
+Name_Map name_map_ee07160[] = {
+ NSPAIR(_ZN7ee07160C1Ev),
+ NSPAIR(_ZN7ee07160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee07160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee07160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee07160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee07160[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee07160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee07160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee07160[] = {
+ {&(_ZTV7ee07160[4]), 4,15},
+ {&(_tg__ZTV6dd7160__7ee07160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee07160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee07160[4]), 4,6},
+ {&(_ZTV7ee07160[9]), 9,15},
+ {&(_ZTV7ee07160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee07160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee07160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07160[];
+extern VTBL_ENTRY _ZTV7ee07160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07160[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07160 = { "ee07160", // class name
+ bases_ee07160, 4,
+ &(vtc_ee07160[0]), // expected_vtbl_contents
+ &(vtt_ee07160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07160),8, //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 ee17160 : virtual dd7160 {
+ int e;
+ ~ee17160(); // tgen
+ ee17160(); // tgen
+};
+//SIG(1 ee17160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17160 ::~ee17160(){ note_dtor("ee17160", this);} // tgen
+ee17160 ::ee17160(){ note_ctor("ee17160", this);} // tgen
+
+static void Test_ee17160()
+{
+ extern Class_Descriptor cd_ee17160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17160, buf);
+ ee17160 *dp, &lv = *(dp=new (buf) ee17160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee17160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee17160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(32,16), "ee17160");
+ check_base_class_offset(lv, (dd7160*), ABISELECT(16,8), "ee17160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17160.e");
+ test_class_info(&lv, &cd_ee17160);
+ dp->~ee17160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17160(Test_ee17160, "ee17160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17160C1Ev();
+extern void _ZN7ee17160D1Ev();
+Name_Map name_map_ee17160[] = {
+ NSPAIR(_ZN7ee17160C1Ev),
+ NSPAIR(_ZN7ee17160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee17160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 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 _ZTI7ee17160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17160[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17160[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee17160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee17160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee17160[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee17160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee17160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee17160[] = {
+ {&(_ZTV7ee17160[5]), 5,22},
+ {&(_ZTV7ee17160[11]), 11,22},
+ {&(_ZTV7ee17160[16]), 16,22},
+ {&(_ZTV7ee17160[20]), 20,22},
+ {&(_tg__ZTV6dd7160__7ee17160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee17160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee17160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee17160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee17160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17160[];
+extern VTBL_ENTRY _ZTV7ee17160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17160[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17160 = { "ee17160", // class name
+ bases_ee17160, 4,
+ &(vtc_ee17160[0]), // expected_vtbl_contents
+ &(vtt_ee17160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17160),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17160),9, //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 ee27160 : dd7160 {
+ int e;
+ virtual void foo(); // _ZN7ee271603fooEv
+ ~ee27160(); // tgen
+ ee27160(); // tgen
+};
+//SIG(1 ee27160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27160 ::foo(){vfunc_called(this, "_ZN7ee271603fooEv");}
+ee27160 ::~ee27160(){ note_dtor("ee27160", this);} // tgen
+ee27160 ::ee27160(){ note_ctor("ee27160", this);} // tgen
+
+static void Test_ee27160()
+{
+ extern Class_Descriptor cd_ee27160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27160, buf);
+ ee27160 *dp, &lv = *(dp=new (buf) ee27160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee27160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee27160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(16,12), "ee27160");
+ check_base_class_offset(lv, (dd7160*), 0, "ee27160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27160.e");
+ test_class_info(&lv, &cd_ee27160);
+ dp->~ee27160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27160(Test_ee27160, "ee27160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27160C1Ev();
+extern void _ZN7ee27160D1Ev();
+Name_Map name_map_ee27160[] = {
+ NSPAIR(_ZN7ee27160C1Ev),
+ NSPAIR(_ZN7ee27160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee27160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN7ee271603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee271603fooEv,_ZTv0_n16_N7ee271603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271603fooEv,_ZThn20_N7ee271603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN7ee271603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee271603fooEv,_ZTv0_n16_N7ee271603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee27160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee27160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee27160[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee27160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee27160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee27160[] = {
+ {&(_ZTV7ee27160[4]), 4,15},
+ {&(_tg__ZTV6dd7160__7ee27160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee27160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee27160[4]), 4,6},
+ {&(_ZTV7ee27160[9]), 9,15},
+ {&(_ZTV7ee27160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee27160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee27160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27160[];
+extern VTBL_ENTRY _ZTV7ee27160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27160[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee271603fooEv,_ZTv0_n16_N7ee271603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271603fooEv,_ZThn20_N7ee271603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27160 = { "ee27160", // class name
+ bases_ee27160, 4,
+ &(vtc_ee27160[0]), // expected_vtbl_contents
+ &(vtt_ee27160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27160),8, //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 ee37160 : virtual dd7160 {
+ int e;
+ virtual void foo(); // _ZN7ee371603fooEv
+ ~ee37160(); // tgen
+ ee37160(); // tgen
+};
+//SIG(1 ee37160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37160 ::foo(){vfunc_called(this, "_ZN7ee371603fooEv");}
+ee37160 ::~ee37160(){ note_dtor("ee37160", this);} // tgen
+ee37160 ::ee37160(){ note_ctor("ee37160", this);} // tgen
+
+static void Test_ee37160()
+{
+ extern Class_Descriptor cd_ee37160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37160, buf);
+ ee37160 *dp, &lv = *(dp=new (buf) ee37160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee37160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee37160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(32,16), "ee37160");
+ check_base_class_offset(lv, (dd7160*), ABISELECT(16,8), "ee37160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37160.e");
+ test_class_info(&lv, &cd_ee37160);
+ dp->~ee37160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37160(Test_ee37160, "ee37160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37160C1Ev();
+extern void _ZN7ee37160D1Ev();
+Name_Map name_map_ee37160[] = {
+ NSPAIR(_ZN7ee37160C1Ev),
+ NSPAIR(_ZN7ee37160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee37160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 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 _ZTI7ee37160[];
+extern void _ZN7ee371603fooEv();
+extern void _ZN6dd71603barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371603fooEv,_ZTv0_n24_N7ee371603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371603fooEv,_ZThn8_N7ee371603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee371603fooEv,_ZTv0_n16_N7ee371603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371603fooEv,_ZThn24_N7ee371603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37160[0]),
+ (VTBL_ENTRY)&_ZN7ee371603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371603fooEv,_ZTv0_n24_N7ee371603fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee371603fooEv,_ZTv0_n16_N7ee371603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee37160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee37160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee37160[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee37160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee37160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee37160[] = {
+ {&(_ZTV7ee37160[5]), 5,23},
+ {&(_ZTV7ee37160[12]), 12,23},
+ {&(_ZTV7ee37160[17]), 17,23},
+ {&(_ZTV7ee37160[21]), 21,23},
+ {&(_tg__ZTV6dd7160__7ee37160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee37160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee37160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee37160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee37160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37160[];
+extern VTBL_ENTRY _ZTV7ee37160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37160[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee371603fooEv,_ZTv0_n16_N7ee371603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371603fooEv,_ZThn24_N7ee371603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371603fooEv,_ZTv0_n24_N7ee371603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371603fooEv,_ZThn8_N7ee371603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37160 = { "ee37160", // class name
+ bases_ee37160, 4,
+ &(vtc_ee37160[0]), // expected_vtbl_contents
+ &(vtt_ee37160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37160),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37160),9, //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 ee47160 : dd7160 {
+ int e;
+ virtual void bar(); // _ZN7ee471603barEv
+ ~ee47160(); // tgen
+ ee47160(); // tgen
+};
+//SIG(1 ee47160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47160 ::bar(){vfunc_called(this, "_ZN7ee471603barEv");}
+ee47160 ::~ee47160(){ note_dtor("ee47160", this);} // tgen
+ee47160 ::ee47160(){ note_ctor("ee47160", this);} // tgen
+
+static void Test_ee47160()
+{
+ extern Class_Descriptor cd_ee47160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47160, buf);
+ ee47160 *dp, &lv = *(dp=new (buf) ee47160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee47160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee47160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(16,12), "ee47160");
+ check_base_class_offset(lv, (dd7160*), 0, "ee47160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47160.e");
+ test_class_info(&lv, &cd_ee47160);
+ dp->~ee47160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47160(Test_ee47160, "ee47160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47160C1Ev();
+extern void _ZN7ee47160D1Ev();
+Name_Map name_map_ee47160[] = {
+ NSPAIR(_ZN7ee47160C1Ev),
+ NSPAIR(_ZN7ee47160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee47160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47160[];
+extern void _ZN7ee471603barEv();
+extern void _ZN6dd71603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee471603barEv,_ZTv0_n12_N7ee471603barEv)();
+extern void ABISELECT(_ZThn32_N7ee471603barEv,_ZThn20_N7ee471603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47160[0]),
+ (VTBL_ENTRY)&_ZN7ee471603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee471603barEv,_ZTv0_n12_N7ee471603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee47160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee47160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee47160[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee47160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee47160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee47160[] = {
+ {&(_ZTV7ee47160[4]), 4,15},
+ {&(_tg__ZTV6dd7160__7ee47160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee47160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee47160[4]), 4,6},
+ {&(_ZTV7ee47160[9]), 9,15},
+ {&(_ZTV7ee47160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee47160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee47160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47160[];
+extern VTBL_ENTRY _ZTV7ee47160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47160[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee471603barEv,_ZTv0_n12_N7ee471603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471603barEv,_ZThn20_N7ee471603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47160 = { "ee47160", // class name
+ bases_ee47160, 4,
+ &(vtc_ee47160[0]), // expected_vtbl_contents
+ &(vtt_ee47160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47160),8, //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 ee57160 : virtual dd7160 {
+ int e;
+ virtual void bar(); // _ZN7ee571603barEv
+ ~ee57160(); // tgen
+ ee57160(); // tgen
+};
+//SIG(1 ee57160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57160 ::bar(){vfunc_called(this, "_ZN7ee571603barEv");}
+ee57160 ::~ee57160(){ note_dtor("ee57160", this);} // tgen
+ee57160 ::ee57160(){ note_ctor("ee57160", this);} // tgen
+
+static void Test_ee57160()
+{
+ extern Class_Descriptor cd_ee57160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57160, buf);
+ ee57160 *dp, &lv = *(dp=new (buf) ee57160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee57160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee57160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(32,16), "ee57160");
+ check_base_class_offset(lv, (dd7160*), ABISELECT(16,8), "ee57160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57160.e");
+ test_class_info(&lv, &cd_ee57160);
+ dp->~ee57160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57160(Test_ee57160, "ee57160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57160C1Ev();
+extern void _ZN7ee57160D1Ev();
+Name_Map name_map_ee57160[] = {
+ NSPAIR(_ZN7ee57160C1Ev),
+ NSPAIR(_ZN7ee57160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee57160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 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 _ZTI7ee57160[];
+extern void _ZN7ee571603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571603barEv,_ZTv0_n20_N7ee571603barEv)();
+extern void ABISELECT(_ZThn16_N7ee571603barEv,_ZThn8_N7ee571603barEv)() __attribute__((weak));
+extern void _ZN6dd71603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee571603barEv,_ZTv0_n12_N7ee571603barEv)();
+extern void ABISELECT(_ZThn48_N7ee571603barEv,_ZThn24_N7ee571603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57160[0]),
+ (VTBL_ENTRY)&_ZN7ee571603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571603barEv,_ZTv0_n20_N7ee571603barEv),
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57160[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee571603barEv,_ZTv0_n12_N7ee571603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee57160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee57160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee57160[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee57160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee57160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee57160[] = {
+ {&(_ZTV7ee57160[5]), 5,23},
+ {&(_ZTV7ee57160[12]), 12,23},
+ {&(_ZTV7ee57160[17]), 17,23},
+ {&(_ZTV7ee57160[21]), 21,23},
+ {&(_tg__ZTV6dd7160__7ee57160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee57160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee57160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee57160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee57160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57160[];
+extern VTBL_ENTRY _ZTV7ee57160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57160[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee571603barEv,_ZTv0_n12_N7ee571603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571603barEv,_ZThn24_N7ee571603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571603barEv,_ZTv0_n20_N7ee571603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571603barEv,_ZThn8_N7ee571603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57160 = { "ee57160", // class name
+ bases_ee57160, 4,
+ &(vtc_ee57160[0]), // expected_vtbl_contents
+ &(vtt_ee57160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57160),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57160),9, //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 ee67160 : dd7160 {
+ int e;
+ virtual void foo(); // _ZN7ee671603fooEv
+ virtual void bar(); // _ZN7ee671603barEv
+ ~ee67160(); // tgen
+ ee67160(); // tgen
+};
+//SIG(1 ee67160) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67160 ::foo(){vfunc_called(this, "_ZN7ee671603fooEv");}
+void ee67160 ::bar(){vfunc_called(this, "_ZN7ee671603barEv");}
+ee67160 ::~ee67160(){ note_dtor("ee67160", this);} // tgen
+ee67160 ::ee67160(){ note_ctor("ee67160", this);} // tgen
+
+static void Test_ee67160()
+{
+ extern Class_Descriptor cd_ee67160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67160, buf);
+ ee67160 *dp, &lv = *(dp=new (buf) ee67160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee67160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(32,20), "ee67160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(16,12), "ee67160");
+ check_base_class_offset(lv, (dd7160*), 0, "ee67160");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67160.e");
+ test_class_info(&lv, &cd_ee67160);
+ dp->~ee67160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67160(Test_ee67160, "ee67160", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67160C1Ev();
+extern void _ZN7ee67160D1Ev();
+Name_Map name_map_ee67160[] = {
+ NSPAIR(_ZN7ee67160C1Ev),
+ NSPAIR(_ZN7ee67160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee67160[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67160[];
+extern void _ZN7ee671603barEv();
+extern void _ZN7ee671603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671603barEv,_ZTv0_n12_N7ee671603barEv)();
+extern void ABISELECT(_ZThn32_N7ee671603barEv,_ZThn20_N7ee671603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671603fooEv,_ZTv0_n16_N7ee671603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671603fooEv,_ZThn20_N7ee671603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67160[0]),
+ (VTBL_ENTRY)&_ZN7ee671603barEv,
+ (VTBL_ENTRY)&_ZN7ee671603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67160[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671603barEv,_ZTv0_n12_N7ee671603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671603fooEv,_ZTv0_n16_N7ee671603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee67160[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee67160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee67160[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee67160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee67160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee67160[] = {
+ {&(_ZTV7ee67160[4]), 4,15},
+ {&(_tg__ZTV6dd7160__7ee67160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee67160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee67160[4]), 4,6},
+ {&(_ZTV7ee67160[9]), 9,15},
+ {&(_ZTV7ee67160[13]), 13,15},
+ {&(_tg__ZTV5cc160__7ee67160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee67160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67160[];
+extern VTBL_ENTRY _ZTV7ee67160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67160[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn20_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn20_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671603fooEv,_ZTv0_n16_N7ee671603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671603fooEv,_ZThn20_N7ee671603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671603barEv,_ZTv0_n12_N7ee671603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671603barEv,_ZThn20_N7ee671603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67160 = { "ee67160", // class name
+ bases_ee67160, 4,
+ &(vtc_ee67160[0]), // expected_vtbl_contents
+ &(vtt_ee67160[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67160),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67160),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67160),8, //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 ee77160 : virtual dd7160 {
+ int e;
+ virtual void foo(); // _ZN7ee771603fooEv
+ virtual void bar(); // _ZN7ee771603barEv
+ ~ee77160(); // tgen
+ ee77160(); // tgen
+};
+//SIG(1 ee77160) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77160 ::foo(){vfunc_called(this, "_ZN7ee771603fooEv");}
+void ee77160 ::bar(){vfunc_called(this, "_ZN7ee771603barEv");}
+ee77160 ::~ee77160(){ note_dtor("ee77160", this);} // tgen
+ee77160 ::ee77160(){ note_ctor("ee77160", this);} // tgen
+
+static void Test_ee77160()
+{
+ extern Class_Descriptor cd_ee77160;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77160, buf);
+ ee77160 *dp, &lv = *(dp=new (buf) ee77160());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77160)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77160)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee77160");
+ check_base_class_offset(lv, (bb60*)(cc160*), ABISELECT(48,24), "ee77160");
+ check_base_class_offset(lv, (cc160*)(dd7160*), ABISELECT(32,16), "ee77160");
+ check_base_class_offset(lv, (dd7160*), ABISELECT(16,8), "ee77160");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77160.e");
+ test_class_info(&lv, &cd_ee77160);
+ dp->~ee77160();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77160(Test_ee77160, "ee77160", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77160C1Ev();
+extern void _ZN7ee77160D1Ev();
+Name_Map name_map_ee77160[] = {
+ NSPAIR(_ZN7ee77160C1Ev),
+ NSPAIR(_ZN7ee77160D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc160;
+extern VTBL_ENTRY _ZTI5cc160[];
+extern VTBL_ENTRY _ZTV5cc160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc160[];
+extern Class_Descriptor cd_dd7160;
+extern VTBL_ENTRY _ZTI6dd7160[];
+extern VTBL_ENTRY _ZTV6dd7160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7160[];
+static Base_Class bases_ee77160[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc160, 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_dd7160, 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 _ZTI7ee77160[];
+extern void _ZN7ee771603fooEv();
+extern void _ZN7ee771603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771603barEv,_ZTv0_n20_N7ee771603barEv)();
+extern void ABISELECT(_ZThn16_N7ee771603barEv,_ZThn8_N7ee771603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771603fooEv,_ZTv0_n24_N7ee771603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771603fooEv,_ZThn8_N7ee771603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771603barEv,_ZTv0_n12_N7ee771603barEv)();
+extern void ABISELECT(_ZThn48_N7ee771603barEv,_ZThn24_N7ee771603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771603fooEv,_ZTv0_n16_N7ee771603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771603fooEv,_ZThn24_N7ee771603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77160[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77160[0]),
+ (VTBL_ENTRY)&_ZN7ee771603fooEv,
+ (VTBL_ENTRY)&_ZN7ee771603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771603barEv,_ZTv0_n20_N7ee771603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771603fooEv,_ZTv0_n24_N7ee771603fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77160[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771603barEv,_ZTv0_n12_N7ee771603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771603fooEv,_ZTv0_n16_N7ee771603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77160[];
+extern void _ZN6dd71603barEv();
+extern void _ZN6dd71603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7160__7ee77160[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&_ZN6dd71603barEv,
+ (VTBL_ENTRY)&_ZN6dd71603fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc160__6dd7160__7ee77160[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv)();
+extern void ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7160__7ee77160[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7160[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc160__7ee77160[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc160__7ee77160[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc160[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee77160[] = {
+ {&(_ZTV7ee77160[5]), 5,24},
+ {&(_ZTV7ee77160[13]), 13,24},
+ {&(_ZTV7ee77160[18]), 18,24},
+ {&(_ZTV7ee77160[22]), 22,24},
+ {&(_tg__ZTV6dd7160__7ee77160[4]), 4,6},
+ {&(_tg__ZTV5cc160__6dd7160__7ee77160[3]), 3,3},
+ {&(_tg__ZTV4bb60__6dd7160__7ee77160[4]), 4,6},
+ {&(_tg__ZTV5cc160__7ee77160[3]), 3,3},
+ {&(_tg__ZTV4bb60__5cc160__7ee77160[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77160[];
+extern VTBL_ENTRY _ZTV7ee77160[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77160[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71603fooEv,_ZTv0_n16_N6dd71603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603fooEv,_ZThn16_N6dd71603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71603barEv,_ZTv0_n12_N6dd71603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71603barEv,_ZThn16_N6dd71603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771603fooEv,_ZTv0_n16_N7ee771603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771603fooEv,_ZThn24_N7ee771603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771603barEv,_ZTv0_n12_N7ee771603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771603barEv,_ZThn24_N7ee771603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771603fooEv,_ZTv0_n24_N7ee771603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771603fooEv,_ZThn8_N7ee771603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771603barEv,_ZTv0_n20_N7ee771603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771603barEv,_ZThn8_N7ee771603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77160 = { "ee77160", // class name
+ bases_ee77160, 4,
+ &(vtc_ee77160[0]), // expected_vtbl_contents
+ &(vtt_ee77160[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77160),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77160),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77160),9, //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 cc260 : bb60 {
+ int c;
+ virtual void foo(); // _ZN5cc2603fooEv
+ ~cc260(); // tgen
+ cc260(); // tgen
+};
+//SIG(-1 cc260) C1{ BC2{ BC3{ Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc260 ::foo(){vfunc_called(this, "_ZN5cc2603fooEv");}
+cc260 ::~cc260(){ note_dtor("cc260", this);} // tgen
+cc260 ::cc260(){ note_ctor("cc260", this);} // tgen
+
+static void Test_cc260()
+{
+ extern Class_Descriptor cd_cc260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc260, buf);
+ cc260 *dp, &lv = *(dp=new (buf) cc260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc260)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(8,4), "cc260");
+ check_base_class_offset(lv, (bb60*), 0, "cc260");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc260.c");
+ test_class_info(&lv, &cd_cc260);
+ dp->~cc260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc260(Test_cc260, "cc260", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc260C1Ev();
+extern void _ZN5cc260D1Ev();
+Name_Map name_map_cc260[] = {
+ NSPAIR(_ZN5cc260C1Ev),
+ NSPAIR(_ZN5cc260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_cc260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+Class_Descriptor cd_cc260 = { "cc260", // class name
+ bases_cc260, 2,
+ &(vtc_cc260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc260),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 dd0260 : cc260 {
+ int d;
+ ~dd0260(); // tgen
+ dd0260(); // tgen
+};
+//SIG(-1 dd0260) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0260 ::~dd0260(){ note_dtor("dd0260", this);} // tgen
+dd0260 ::dd0260(){ note_ctor("dd0260", this);} // tgen
+
+static void Test_dd0260()
+{
+ extern Class_Descriptor cd_dd0260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0260, buf);
+ dd0260 *dp, &lv = *(dp=new (buf) dd0260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(8,4), "dd0260");
+ check_base_class_offset(lv, (bb60*)(cc260*), 0, "dd0260");
+ check_base_class_offset(lv, (cc260*), 0, "dd0260");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0260.d");
+ test_class_info(&lv, &cd_dd0260);
+ dp->~dd0260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0260(Test_dd0260, "dd0260", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0260C1Ev();
+extern void _ZN6dd0260D1Ev();
+Name_Map name_map_dd0260[] = {
+ NSPAIR(_ZN6dd0260C1Ev),
+ NSPAIR(_ZN6dd0260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd0260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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 _ZTI6dd0260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_dd0260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+Class_Descriptor cd_dd0260 = { "dd0260", // class name
+ bases_dd0260, 3,
+ &(vtc_dd0260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0260),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 ee00260 : dd0260 {
+ int e;
+ ~ee00260(); // tgen
+ ee00260(); // tgen
+};
+//SIG(1 ee00260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00260 ::~ee00260(){ note_dtor("ee00260", this);} // tgen
+ee00260 ::ee00260(){ note_ctor("ee00260", this);} // tgen
+
+static void Test_ee00260()
+{
+ extern Class_Descriptor cd_ee00260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00260, buf);
+ ee00260 *dp, &lv = *(dp=new (buf) ee00260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(8,4), "ee00260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), 0, "ee00260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), 0, "ee00260");
+ check_base_class_offset(lv, (dd0260*), 0, "ee00260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00260.e");
+ test_class_info(&lv, &cd_ee00260);
+ dp->~ee00260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00260(Test_ee00260, "ee00260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00260C1Ev();
+extern void _ZN7ee00260D1Ev();
+Name_Map name_map_ee00260[] = {
+ NSPAIR(_ZN7ee00260C1Ev),
+ NSPAIR(_ZN7ee00260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee00260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd0260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee00260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00260[];
+extern VTBL_ENTRY _ZTV7ee00260[];
+Class_Descriptor cd_ee00260 = { "ee00260", // class name
+ bases_ee00260, 4,
+ &(vtc_ee00260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00260),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 ee10260 : virtual dd0260 {
+ int e;
+ ~ee10260(); // tgen
+ ee10260(); // tgen
+};
+//SIG(1 ee10260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10260 ::~ee10260(){ note_dtor("ee10260", this);} // tgen
+ee10260 ::ee10260(){ note_ctor("ee10260", this);} // tgen
+
+static void Test_ee10260()
+{
+ extern Class_Descriptor cd_ee10260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10260, buf);
+ ee10260 *dp, &lv = *(dp=new (buf) ee10260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(24,12), "ee10260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), ABISELECT(16,8), "ee10260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), ABISELECT(16,8), "ee10260");
+ check_base_class_offset(lv, (dd0260*), ABISELECT(16,8), "ee10260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10260.e");
+ test_class_info(&lv, &cd_ee10260);
+ dp->~ee10260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10260(Test_ee10260, "ee10260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10260C1Ev();
+extern void _ZN7ee10260D1Ev();
+Name_Map name_map_ee10260[] = {
+ NSPAIR(_ZN7ee10260C1Ev),
+ NSPAIR(_ZN7ee10260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee10260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd0260, 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 _ZTI7ee10260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee10260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10260[];
+static VTT_ENTRY vtt_ee10260[] = {
+ {&(_ZTV7ee10260[3]), 3,9},
+ {&(_ZTV7ee10260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10260[];
+extern VTBL_ENTRY _ZTV7ee10260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10260[];
+Class_Descriptor cd_ee10260 = { "ee10260", // class name
+ bases_ee10260, 4,
+ &(vtc_ee10260[0]), // expected_vtbl_contents
+ &(vtt_ee10260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10260),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 ee20260 : dd0260 {
+ int e;
+ virtual void foo(); // _ZN7ee202603fooEv
+ ~ee20260(); // tgen
+ ee20260(); // tgen
+};
+//SIG(1 ee20260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20260 ::foo(){vfunc_called(this, "_ZN7ee202603fooEv");}
+ee20260 ::~ee20260(){ note_dtor("ee20260", this);} // tgen
+ee20260 ::ee20260(){ note_ctor("ee20260", this);} // tgen
+
+static void Test_ee20260()
+{
+ extern Class_Descriptor cd_ee20260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20260, buf);
+ ee20260 *dp, &lv = *(dp=new (buf) ee20260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(8,4), "ee20260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), 0, "ee20260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), 0, "ee20260");
+ check_base_class_offset(lv, (dd0260*), 0, "ee20260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20260.e");
+ test_class_info(&lv, &cd_ee20260);
+ dp->~ee20260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20260(Test_ee20260, "ee20260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20260C1Ev();
+extern void _ZN7ee20260D1Ev();
+Name_Map name_map_ee20260[] = {
+ NSPAIR(_ZN7ee20260C1Ev),
+ NSPAIR(_ZN7ee20260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee20260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20260[];
+extern void _ZN4bb603barEv();
+extern void _ZN7ee202603fooEv();
+static VTBL_ENTRY vtc_ee20260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN7ee202603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20260[];
+extern VTBL_ENTRY _ZTV7ee20260[];
+Class_Descriptor cd_ee20260 = { "ee20260", // class name
+ bases_ee20260, 4,
+ &(vtc_ee20260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20260),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 ee30260 : virtual dd0260 {
+ int e;
+ virtual void foo(); // _ZN7ee302603fooEv
+ ~ee30260(); // tgen
+ ee30260(); // tgen
+};
+//SIG(1 ee30260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30260 ::foo(){vfunc_called(this, "_ZN7ee302603fooEv");}
+ee30260 ::~ee30260(){ note_dtor("ee30260", this);} // tgen
+ee30260 ::ee30260(){ note_ctor("ee30260", this);} // tgen
+
+static void Test_ee30260()
+{
+ extern Class_Descriptor cd_ee30260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30260, buf);
+ ee30260 *dp, &lv = *(dp=new (buf) ee30260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(24,12), "ee30260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), ABISELECT(16,8), "ee30260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), ABISELECT(16,8), "ee30260");
+ check_base_class_offset(lv, (dd0260*), ABISELECT(16,8), "ee30260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30260.e");
+ test_class_info(&lv, &cd_ee30260);
+ dp->~ee30260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30260(Test_ee30260, "ee30260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30260C1Ev();
+extern void _ZN7ee30260D1Ev();
+Name_Map name_map_ee30260[] = {
+ NSPAIR(_ZN7ee30260C1Ev),
+ NSPAIR(_ZN7ee30260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee30260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd0260, 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 _ZTI7ee30260[];
+extern void _ZN7ee302603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee302603fooEv,_ZTv0_n16_N7ee302603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302603fooEv,_ZThn8_N7ee302603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30260[0]),
+ (VTBL_ENTRY)&_ZN7ee302603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee302603fooEv,_ZTv0_n16_N7ee302603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30260[];
+static VTT_ENTRY vtt_ee30260[] = {
+ {&(_ZTV7ee30260[3]), 3,10},
+ {&(_ZTV7ee30260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30260[];
+extern VTBL_ENTRY _ZTV7ee30260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30260[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee302603fooEv,_ZTv0_n16_N7ee302603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302603fooEv,_ZThn8_N7ee302603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30260 = { "ee30260", // class name
+ bases_ee30260, 4,
+ &(vtc_ee30260[0]), // expected_vtbl_contents
+ &(vtt_ee30260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30260),2, //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 ee40260 : dd0260 {
+ int e;
+ virtual void bar(); // _ZN7ee402603barEv
+ ~ee40260(); // tgen
+ ee40260(); // tgen
+};
+//SIG(1 ee40260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40260 ::bar(){vfunc_called(this, "_ZN7ee402603barEv");}
+ee40260 ::~ee40260(){ note_dtor("ee40260", this);} // tgen
+ee40260 ::ee40260(){ note_ctor("ee40260", this);} // tgen
+
+static void Test_ee40260()
+{
+ extern Class_Descriptor cd_ee40260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40260, buf);
+ ee40260 *dp, &lv = *(dp=new (buf) ee40260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(8,4), "ee40260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), 0, "ee40260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), 0, "ee40260");
+ check_base_class_offset(lv, (dd0260*), 0, "ee40260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40260.e");
+ test_class_info(&lv, &cd_ee40260);
+ dp->~ee40260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40260(Test_ee40260, "ee40260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40260C1Ev();
+extern void _ZN7ee40260D1Ev();
+Name_Map name_map_ee40260[] = {
+ NSPAIR(_ZN7ee40260C1Ev),
+ NSPAIR(_ZN7ee40260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee40260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40260[];
+extern void _ZN7ee402603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee40260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40260[0]),
+ (VTBL_ENTRY)&_ZN7ee402603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee40260[];
+extern VTBL_ENTRY _ZTV7ee40260[];
+Class_Descriptor cd_ee40260 = { "ee40260", // class name
+ bases_ee40260, 4,
+ &(vtc_ee40260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40260),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 ee50260 : virtual dd0260 {
+ int e;
+ virtual void bar(); // _ZN7ee502603barEv
+ ~ee50260(); // tgen
+ ee50260(); // tgen
+};
+//SIG(1 ee50260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50260 ::bar(){vfunc_called(this, "_ZN7ee502603barEv");}
+ee50260 ::~ee50260(){ note_dtor("ee50260", this);} // tgen
+ee50260 ::ee50260(){ note_ctor("ee50260", this);} // tgen
+
+static void Test_ee50260()
+{
+ extern Class_Descriptor cd_ee50260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50260, buf);
+ ee50260 *dp, &lv = *(dp=new (buf) ee50260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(24,12), "ee50260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), ABISELECT(16,8), "ee50260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), ABISELECT(16,8), "ee50260");
+ check_base_class_offset(lv, (dd0260*), ABISELECT(16,8), "ee50260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50260.e");
+ test_class_info(&lv, &cd_ee50260);
+ dp->~ee50260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50260(Test_ee50260, "ee50260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50260C1Ev();
+extern void _ZN7ee50260D1Ev();
+Name_Map name_map_ee50260[] = {
+ NSPAIR(_ZN7ee50260C1Ev),
+ NSPAIR(_ZN7ee50260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee50260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd0260, 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 _ZTI7ee50260[];
+extern void _ZN7ee502603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee502603barEv,_ZTv0_n12_N7ee502603barEv)();
+extern void ABISELECT(_ZThn16_N7ee502603barEv,_ZThn8_N7ee502603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee50260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50260[0]),
+ (VTBL_ENTRY)&_ZN7ee502603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee502603barEv,_ZTv0_n12_N7ee502603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50260[];
+static VTT_ENTRY vtt_ee50260[] = {
+ {&(_ZTV7ee50260[3]), 3,10},
+ {&(_ZTV7ee50260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50260[];
+extern VTBL_ENTRY _ZTV7ee50260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50260[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee502603barEv,_ZTv0_n12_N7ee502603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502603barEv,_ZThn8_N7ee502603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50260 = { "ee50260", // class name
+ bases_ee50260, 4,
+ &(vtc_ee50260[0]), // expected_vtbl_contents
+ &(vtt_ee50260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50260),2, //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 ee60260 : dd0260 {
+ int e;
+ virtual void foo(); // _ZN7ee602603fooEv
+ virtual void bar(); // _ZN7ee602603barEv
+ ~ee60260(); // tgen
+ ee60260(); // tgen
+};
+//SIG(1 ee60260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60260 ::foo(){vfunc_called(this, "_ZN7ee602603fooEv");}
+void ee60260 ::bar(){vfunc_called(this, "_ZN7ee602603barEv");}
+ee60260 ::~ee60260(){ note_dtor("ee60260", this);} // tgen
+ee60260 ::ee60260(){ note_ctor("ee60260", this);} // tgen
+
+static void Test_ee60260()
+{
+ extern Class_Descriptor cd_ee60260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60260, buf);
+ ee60260 *dp, &lv = *(dp=new (buf) ee60260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(8,4), "ee60260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), 0, "ee60260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), 0, "ee60260");
+ check_base_class_offset(lv, (dd0260*), 0, "ee60260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60260.e");
+ test_class_info(&lv, &cd_ee60260);
+ dp->~ee60260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60260(Test_ee60260, "ee60260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60260C1Ev();
+extern void _ZN7ee60260D1Ev();
+Name_Map name_map_ee60260[] = {
+ NSPAIR(_ZN7ee60260C1Ev),
+ NSPAIR(_ZN7ee60260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee60260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60260[];
+extern void _ZN7ee602603barEv();
+extern void _ZN7ee602603fooEv();
+static VTBL_ENTRY vtc_ee60260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60260[0]),
+ (VTBL_ENTRY)&_ZN7ee602603barEv,
+ (VTBL_ENTRY)&_ZN7ee602603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee60260[];
+extern VTBL_ENTRY _ZTV7ee60260[];
+Class_Descriptor cd_ee60260 = { "ee60260", // class name
+ bases_ee60260, 4,
+ &(vtc_ee60260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60260),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 ee70260 : virtual dd0260 {
+ int e;
+ virtual void foo(); // _ZN7ee702603fooEv
+ virtual void bar(); // _ZN7ee702603barEv
+ ~ee70260(); // tgen
+ ee70260(); // tgen
+};
+//SIG(1 ee70260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70260 ::foo(){vfunc_called(this, "_ZN7ee702603fooEv");}
+void ee70260 ::bar(){vfunc_called(this, "_ZN7ee702603barEv");}
+ee70260 ::~ee70260(){ note_dtor("ee70260", this);} // tgen
+ee70260 ::ee70260(){ note_ctor("ee70260", this);} // tgen
+
+static void Test_ee70260()
+{
+ extern Class_Descriptor cd_ee70260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70260, buf);
+ ee70260 *dp, &lv = *(dp=new (buf) ee70260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd0260*), ABISELECT(24,12), "ee70260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd0260*), ABISELECT(16,8), "ee70260");
+ check_base_class_offset(lv, (cc260*)(dd0260*), ABISELECT(16,8), "ee70260");
+ check_base_class_offset(lv, (dd0260*), ABISELECT(16,8), "ee70260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70260.e");
+ test_class_info(&lv, &cd_ee70260);
+ dp->~ee70260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70260(Test_ee70260, "ee70260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70260C1Ev();
+extern void _ZN7ee70260D1Ev();
+Name_Map name_map_ee70260[] = {
+ NSPAIR(_ZN7ee70260C1Ev),
+ NSPAIR(_ZN7ee70260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd0260;
+extern VTBL_ENTRY _ZTI6dd0260[];
+extern VTBL_ENTRY _ZTV6dd0260[];
+static Base_Class bases_ee70260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd0260, 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 _ZTI7ee70260[];
+extern void _ZN7ee702603fooEv();
+extern void _ZN7ee702603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702603barEv,_ZTv0_n12_N7ee702603barEv)();
+extern void ABISELECT(_ZThn16_N7ee702603barEv,_ZThn8_N7ee702603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702603fooEv,_ZTv0_n16_N7ee702603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702603fooEv,_ZThn8_N7ee702603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70260[0]),
+ (VTBL_ENTRY)&_ZN7ee702603fooEv,
+ (VTBL_ENTRY)&_ZN7ee702603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702603barEv,_ZTv0_n12_N7ee702603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702603fooEv,_ZTv0_n16_N7ee702603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70260[];
+static VTT_ENTRY vtt_ee70260[] = {
+ {&(_ZTV7ee70260[3]), 3,11},
+ {&(_ZTV7ee70260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70260[];
+extern VTBL_ENTRY _ZTV7ee70260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70260[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702603fooEv,_ZTv0_n16_N7ee702603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702603fooEv,_ZThn8_N7ee702603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702603barEv,_ZTv0_n12_N7ee702603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702603barEv,_ZThn8_N7ee702603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70260 = { "ee70260", // class name
+ bases_ee70260, 4,
+ &(vtc_ee70260[0]), // expected_vtbl_contents
+ &(vtt_ee70260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70260),2, //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 dd1260 : virtual cc260 {
+ int d;
+ ~dd1260(); // tgen
+ dd1260(); // tgen
+};
+//SIG(-1 dd1260) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1260 ::~dd1260(){ note_dtor("dd1260", this);} // tgen
+dd1260 ::dd1260(){ note_ctor("dd1260", this);} // tgen
+
+static void Test_dd1260()
+{
+ extern Class_Descriptor cd_dd1260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1260, buf);
+ dd1260 *dp, &lv = *(dp=new (buf) dd1260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,12), "dd1260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,8), "dd1260");
+ check_base_class_offset(lv, (cc260*), ABISELECT(16,8), "dd1260");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1260.d");
+ test_class_info(&lv, &cd_dd1260);
+ dp->~dd1260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1260(Test_dd1260, "dd1260", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1260C1Ev();
+extern void _ZN6dd1260D1Ev();
+Name_Map name_map_dd1260[] = {
+ NSPAIR(_ZN6dd1260C1Ev),
+ NSPAIR(_ZN6dd1260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd1260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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 _ZTI6dd1260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_dd1260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1260[];
+static VTT_ENTRY vtt_dd1260[] = {
+ {&(_ZTV6dd1260[3]), 3,9},
+ {&(_ZTV6dd1260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+Class_Descriptor cd_dd1260 = { "dd1260", // class name
+ bases_dd1260, 3,
+ &(vtc_dd1260[0]), // expected_vtbl_contents
+ &(vtt_dd1260[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1260),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 ee01260 : dd1260 {
+ int e;
+ ~ee01260(); // tgen
+ ee01260(); // tgen
+};
+//SIG(1 ee01260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01260 ::~ee01260(){ note_dtor("ee01260", this);} // tgen
+ee01260 ::ee01260(){ note_ctor("ee01260", this);} // tgen
+
+static void Test_ee01260()
+{
+ extern Class_Descriptor cd_ee01260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01260, buf);
+ ee01260 *dp, &lv = *(dp=new (buf) ee01260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee01260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee01260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(16,12), "ee01260");
+ check_base_class_offset(lv, (dd1260*), 0, "ee01260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01260.e");
+ test_class_info(&lv, &cd_ee01260);
+ dp->~ee01260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01260(Test_ee01260, "ee01260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01260C1Ev();
+extern void _ZN7ee01260D1Ev();
+Name_Map name_map_ee01260[] = {
+ NSPAIR(_ZN7ee01260C1Ev),
+ NSPAIR(_ZN7ee01260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee01260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee01260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee01260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee01260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee01260[] = {
+ {&(_ZTV7ee01260[3]), 3,9},
+ {&(_tg__ZTV6dd1260__7ee01260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee01260[4]), 4,6},
+ {&(_ZTV7ee01260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01260[];
+extern VTBL_ENTRY _ZTV7ee01260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01260[];
+Class_Descriptor cd_ee01260 = { "ee01260", // class name
+ bases_ee01260, 4,
+ &(vtc_ee01260[0]), // expected_vtbl_contents
+ &(vtt_ee01260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01260),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 ee11260 : virtual dd1260 {
+ int e;
+ ~ee11260(); // tgen
+ ee11260(); // tgen
+};
+//SIG(1 ee11260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11260 ::~ee11260(){ note_dtor("ee11260", this);} // tgen
+ee11260 ::ee11260(){ note_ctor("ee11260", this);} // tgen
+
+static void Test_ee11260()
+{
+ extern Class_Descriptor cd_ee11260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11260, buf);
+ ee11260 *dp, &lv = *(dp=new (buf) ee11260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee11260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee11260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(32,16), "ee11260");
+ check_base_class_offset(lv, (dd1260*), ABISELECT(16,8), "ee11260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11260.e");
+ test_class_info(&lv, &cd_ee11260);
+ dp->~ee11260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11260(Test_ee11260, "ee11260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11260C1Ev();
+extern void _ZN7ee11260D1Ev();
+Name_Map name_map_ee11260[] = {
+ NSPAIR(_ZN7ee11260C1Ev),
+ NSPAIR(_ZN7ee11260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee11260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 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 _ZTI7ee11260[];
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee11260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11260[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11260[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee11260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee11260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee11260[] = {
+ {&(_ZTV7ee11260[4]), 4,13},
+ {&(_ZTV7ee11260[7]), 7,13},
+ {&(_ZTV7ee11260[11]), 11,13},
+ {&(_tg__ZTV6dd1260__7ee11260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee11260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11260[];
+extern VTBL_ENTRY _ZTV7ee11260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11260[];
+Class_Descriptor cd_ee11260 = { "ee11260", // class name
+ bases_ee11260, 4,
+ &(vtc_ee11260[0]), // expected_vtbl_contents
+ &(vtt_ee11260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11260),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11260),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 ee21260 : dd1260 {
+ int e;
+ virtual void foo(); // _ZN7ee212603fooEv
+ ~ee21260(); // tgen
+ ee21260(); // tgen
+};
+//SIG(1 ee21260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21260 ::foo(){vfunc_called(this, "_ZN7ee212603fooEv");}
+ee21260 ::~ee21260(){ note_dtor("ee21260", this);} // tgen
+ee21260 ::ee21260(){ note_ctor("ee21260", this);} // tgen
+
+static void Test_ee21260()
+{
+ extern Class_Descriptor cd_ee21260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21260, buf);
+ ee21260 *dp, &lv = *(dp=new (buf) ee21260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee21260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee21260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(16,12), "ee21260");
+ check_base_class_offset(lv, (dd1260*), 0, "ee21260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21260.e");
+ test_class_info(&lv, &cd_ee21260);
+ dp->~ee21260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21260(Test_ee21260, "ee21260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21260C1Ev();
+extern void _ZN7ee21260D1Ev();
+Name_Map name_map_ee21260[] = {
+ NSPAIR(_ZN7ee21260C1Ev),
+ NSPAIR(_ZN7ee21260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee21260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21260[];
+extern void _ZN7ee212603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee212603fooEv,_ZTv0_n16_N7ee212603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212603fooEv,_ZThn12_N7ee212603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21260[0]),
+ (VTBL_ENTRY)&_ZN7ee212603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee212603fooEv,_ZTv0_n16_N7ee212603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee21260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee21260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee21260[] = {
+ {&(_ZTV7ee21260[3]), 3,10},
+ {&(_tg__ZTV6dd1260__7ee21260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee21260[4]), 4,6},
+ {&(_ZTV7ee21260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21260[];
+extern VTBL_ENTRY _ZTV7ee21260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21260[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee212603fooEv,_ZTv0_n16_N7ee212603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212603fooEv,_ZThn12_N7ee212603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21260 = { "ee21260", // class name
+ bases_ee21260, 4,
+ &(vtc_ee21260[0]), // expected_vtbl_contents
+ &(vtt_ee21260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21260),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 ee31260 : virtual dd1260 {
+ int e;
+ virtual void foo(); // _ZN7ee312603fooEv
+ ~ee31260(); // tgen
+ ee31260(); // tgen
+};
+//SIG(1 ee31260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31260 ::foo(){vfunc_called(this, "_ZN7ee312603fooEv");}
+ee31260 ::~ee31260(){ note_dtor("ee31260", this);} // tgen
+ee31260 ::ee31260(){ note_ctor("ee31260", this);} // tgen
+
+static void Test_ee31260()
+{
+ extern Class_Descriptor cd_ee31260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31260, buf);
+ ee31260 *dp, &lv = *(dp=new (buf) ee31260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee31260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee31260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(32,16), "ee31260");
+ check_base_class_offset(lv, (dd1260*), ABISELECT(16,8), "ee31260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31260.e");
+ test_class_info(&lv, &cd_ee31260);
+ dp->~ee31260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31260(Test_ee31260, "ee31260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31260C1Ev();
+extern void _ZN7ee31260D1Ev();
+Name_Map name_map_ee31260[] = {
+ NSPAIR(_ZN7ee31260C1Ev),
+ NSPAIR(_ZN7ee31260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee31260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 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 _ZTI7ee31260[];
+extern void _ZN7ee312603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee312603fooEv,_ZTv0_n16_N7ee312603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312603fooEv,_ZThn16_N7ee312603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31260[0]),
+ (VTBL_ENTRY)&_ZN7ee312603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31260[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee312603fooEv,_ZTv0_n16_N7ee312603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee31260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee31260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee31260[] = {
+ {&(_ZTV7ee31260[4]), 4,14},
+ {&(_ZTV7ee31260[8]), 8,14},
+ {&(_ZTV7ee31260[12]), 12,14},
+ {&(_tg__ZTV6dd1260__7ee31260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee31260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31260[];
+extern VTBL_ENTRY _ZTV7ee31260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31260[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee312603fooEv,_ZTv0_n16_N7ee312603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312603fooEv,_ZThn16_N7ee312603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31260 = { "ee31260", // class name
+ bases_ee31260, 4,
+ &(vtc_ee31260[0]), // expected_vtbl_contents
+ &(vtt_ee31260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31260),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31260),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 ee41260 : dd1260 {
+ int e;
+ virtual void bar(); // _ZN7ee412603barEv
+ ~ee41260(); // tgen
+ ee41260(); // tgen
+};
+//SIG(1 ee41260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41260 ::bar(){vfunc_called(this, "_ZN7ee412603barEv");}
+ee41260 ::~ee41260(){ note_dtor("ee41260", this);} // tgen
+ee41260 ::ee41260(){ note_ctor("ee41260", this);} // tgen
+
+static void Test_ee41260()
+{
+ extern Class_Descriptor cd_ee41260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41260, buf);
+ ee41260 *dp, &lv = *(dp=new (buf) ee41260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee41260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee41260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(16,12), "ee41260");
+ check_base_class_offset(lv, (dd1260*), 0, "ee41260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41260.e");
+ test_class_info(&lv, &cd_ee41260);
+ dp->~ee41260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41260(Test_ee41260, "ee41260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41260C1Ev();
+extern void _ZN7ee41260D1Ev();
+Name_Map name_map_ee41260[] = {
+ NSPAIR(_ZN7ee41260C1Ev),
+ NSPAIR(_ZN7ee41260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee41260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41260[];
+extern void _ZN7ee412603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee412603barEv,_ZTv0_n12_N7ee412603barEv)();
+extern void ABISELECT(_ZThn16_N7ee412603barEv,_ZThn12_N7ee412603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee41260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41260[0]),
+ (VTBL_ENTRY)&_ZN7ee412603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee412603barEv,_ZTv0_n12_N7ee412603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee41260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee41260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee41260[] = {
+ {&(_ZTV7ee41260[3]), 3,10},
+ {&(_tg__ZTV6dd1260__7ee41260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee41260[4]), 4,6},
+ {&(_ZTV7ee41260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41260[];
+extern VTBL_ENTRY _ZTV7ee41260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41260[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee412603barEv,_ZTv0_n12_N7ee412603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412603barEv,_ZThn12_N7ee412603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41260 = { "ee41260", // class name
+ bases_ee41260, 4,
+ &(vtc_ee41260[0]), // expected_vtbl_contents
+ &(vtt_ee41260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41260),4, //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 ee51260 : virtual dd1260 {
+ int e;
+ virtual void bar(); // _ZN7ee512603barEv
+ ~ee51260(); // tgen
+ ee51260(); // tgen
+};
+//SIG(1 ee51260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51260 ::bar(){vfunc_called(this, "_ZN7ee512603barEv");}
+ee51260 ::~ee51260(){ note_dtor("ee51260", this);} // tgen
+ee51260 ::ee51260(){ note_ctor("ee51260", this);} // tgen
+
+static void Test_ee51260()
+{
+ extern Class_Descriptor cd_ee51260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51260, buf);
+ ee51260 *dp, &lv = *(dp=new (buf) ee51260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee51260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee51260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(32,16), "ee51260");
+ check_base_class_offset(lv, (dd1260*), ABISELECT(16,8), "ee51260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51260.e");
+ test_class_info(&lv, &cd_ee51260);
+ dp->~ee51260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51260(Test_ee51260, "ee51260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51260C1Ev();
+extern void _ZN7ee51260D1Ev();
+Name_Map name_map_ee51260[] = {
+ NSPAIR(_ZN7ee51260C1Ev),
+ NSPAIR(_ZN7ee51260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee51260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 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 _ZTI7ee51260[];
+extern void _ZN7ee512603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee512603barEv,_ZTv0_n12_N7ee512603barEv)();
+extern void ABISELECT(_ZThn32_N7ee512603barEv,_ZThn16_N7ee512603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee51260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51260[0]),
+ (VTBL_ENTRY)&_ZN7ee512603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51260[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee512603barEv,_ZTv0_n12_N7ee512603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee51260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee51260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee51260[] = {
+ {&(_ZTV7ee51260[4]), 4,14},
+ {&(_ZTV7ee51260[8]), 8,14},
+ {&(_ZTV7ee51260[12]), 12,14},
+ {&(_tg__ZTV6dd1260__7ee51260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee51260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51260[];
+extern VTBL_ENTRY _ZTV7ee51260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51260[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee512603barEv,_ZTv0_n12_N7ee512603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512603barEv,_ZThn16_N7ee512603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51260 = { "ee51260", // class name
+ bases_ee51260, 4,
+ &(vtc_ee51260[0]), // expected_vtbl_contents
+ &(vtt_ee51260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51260),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51260),5, //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 ee61260 : dd1260 {
+ int e;
+ virtual void foo(); // _ZN7ee612603fooEv
+ virtual void bar(); // _ZN7ee612603barEv
+ ~ee61260(); // tgen
+ ee61260(); // tgen
+};
+//SIG(1 ee61260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61260 ::foo(){vfunc_called(this, "_ZN7ee612603fooEv");}
+void ee61260 ::bar(){vfunc_called(this, "_ZN7ee612603barEv");}
+ee61260 ::~ee61260(){ note_dtor("ee61260", this);} // tgen
+ee61260 ::ee61260(){ note_ctor("ee61260", this);} // tgen
+
+static void Test_ee61260()
+{
+ extern Class_Descriptor cd_ee61260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61260, buf);
+ ee61260 *dp, &lv = *(dp=new (buf) ee61260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee61260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee61260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(16,12), "ee61260");
+ check_base_class_offset(lv, (dd1260*), 0, "ee61260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61260.e");
+ test_class_info(&lv, &cd_ee61260);
+ dp->~ee61260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61260(Test_ee61260, "ee61260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61260C1Ev();
+extern void _ZN7ee61260D1Ev();
+Name_Map name_map_ee61260[] = {
+ NSPAIR(_ZN7ee61260C1Ev),
+ NSPAIR(_ZN7ee61260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee61260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61260[];
+extern void _ZN7ee612603fooEv();
+extern void _ZN7ee612603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612603barEv,_ZTv0_n12_N7ee612603barEv)();
+extern void ABISELECT(_ZThn16_N7ee612603barEv,_ZThn12_N7ee612603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612603fooEv,_ZTv0_n16_N7ee612603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612603fooEv,_ZThn12_N7ee612603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61260[0]),
+ (VTBL_ENTRY)&_ZN7ee612603fooEv,
+ (VTBL_ENTRY)&_ZN7ee612603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612603barEv,_ZTv0_n12_N7ee612603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612603fooEv,_ZTv0_n16_N7ee612603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee61260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee61260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee61260[] = {
+ {&(_ZTV7ee61260[3]), 3,11},
+ {&(_tg__ZTV6dd1260__7ee61260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee61260[4]), 4,6},
+ {&(_ZTV7ee61260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61260[];
+extern VTBL_ENTRY _ZTV7ee61260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61260[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612603fooEv,_ZTv0_n16_N7ee612603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612603fooEv,_ZThn12_N7ee612603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612603barEv,_ZTv0_n12_N7ee612603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612603barEv,_ZThn12_N7ee612603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61260 = { "ee61260", // class name
+ bases_ee61260, 4,
+ &(vtc_ee61260[0]), // expected_vtbl_contents
+ &(vtt_ee61260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61260),4, //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 ee71260 : virtual dd1260 {
+ int e;
+ virtual void foo(); // _ZN7ee712603fooEv
+ virtual void bar(); // _ZN7ee712603barEv
+ ~ee71260(); // tgen
+ ee71260(); // tgen
+};
+//SIG(1 ee71260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71260 ::foo(){vfunc_called(this, "_ZN7ee712603fooEv");}
+void ee71260 ::bar(){vfunc_called(this, "_ZN7ee712603barEv");}
+ee71260 ::~ee71260(){ note_dtor("ee71260", this);} // tgen
+ee71260 ::ee71260(){ note_ctor("ee71260", this);} // tgen
+
+static void Test_ee71260()
+{
+ extern Class_Descriptor cd_ee71260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71260, buf);
+ ee71260 *dp, &lv = *(dp=new (buf) ee71260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee71260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee71260");
+ check_base_class_offset(lv, (cc260*)(dd1260*), ABISELECT(32,16), "ee71260");
+ check_base_class_offset(lv, (dd1260*), ABISELECT(16,8), "ee71260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71260.e");
+ test_class_info(&lv, &cd_ee71260);
+ dp->~ee71260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71260(Test_ee71260, "ee71260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71260C1Ev();
+extern void _ZN7ee71260D1Ev();
+Name_Map name_map_ee71260[] = {
+ NSPAIR(_ZN7ee71260C1Ev),
+ NSPAIR(_ZN7ee71260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd1260;
+extern VTBL_ENTRY _ZTI6dd1260[];
+extern VTBL_ENTRY _ZTV6dd1260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1260[];
+static Base_Class bases_ee71260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd1260, 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 _ZTI7ee71260[];
+extern void _ZN7ee712603fooEv();
+extern void _ZN7ee712603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712603barEv,_ZTv0_n12_N7ee712603barEv)();
+extern void ABISELECT(_ZThn32_N7ee712603barEv,_ZThn16_N7ee712603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712603fooEv,_ZTv0_n16_N7ee712603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712603fooEv,_ZThn16_N7ee712603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71260[0]),
+ (VTBL_ENTRY)&_ZN7ee712603fooEv,
+ (VTBL_ENTRY)&_ZN7ee712603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71260[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712603barEv,_ZTv0_n12_N7ee712603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712603fooEv,_ZTv0_n16_N7ee712603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71260[];
+static VTBL_ENTRY _tg__ZTV6dd1260__7ee71260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+};
+extern void _ZN4bb603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd1260__7ee71260[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee71260[] = {
+ {&(_ZTV7ee71260[4]), 4,15},
+ {&(_ZTV7ee71260[9]), 9,15},
+ {&(_ZTV7ee71260[13]), 13,15},
+ {&(_tg__ZTV6dd1260__7ee71260[3]), 3,3},
+ {&(_tg__ZTV5cc260__6dd1260__7ee71260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71260[];
+extern VTBL_ENTRY _ZTV7ee71260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71260[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712603fooEv,_ZTv0_n16_N7ee712603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712603fooEv,_ZThn16_N7ee712603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712603barEv,_ZTv0_n12_N7ee712603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712603barEv,_ZThn16_N7ee712603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71260 = { "ee71260", // class name
+ bases_ee71260, 4,
+ &(vtc_ee71260[0]), // expected_vtbl_contents
+ &(vtt_ee71260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71260),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71260),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2260 : cc260 {
+ int d;
+ virtual void foo(); // _ZN6dd22603fooEv
+ ~dd2260(); // tgen
+ dd2260(); // tgen
+};
+//SIG(-1 dd2260) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2260 ::foo(){vfunc_called(this, "_ZN6dd22603fooEv");}
+dd2260 ::~dd2260(){ note_dtor("dd2260", this);} // tgen
+dd2260 ::dd2260(){ note_ctor("dd2260", this);} // tgen
+
+static void Test_dd2260()
+{
+ extern Class_Descriptor cd_dd2260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2260, buf);
+ dd2260 *dp, &lv = *(dp=new (buf) dd2260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(8,4), "dd2260");
+ check_base_class_offset(lv, (bb60*)(cc260*), 0, "dd2260");
+ check_base_class_offset(lv, (cc260*), 0, "dd2260");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2260.d");
+ test_class_info(&lv, &cd_dd2260);
+ dp->~dd2260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2260(Test_dd2260, "dd2260", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2260C1Ev();
+extern void _ZN6dd2260D1Ev();
+Name_Map name_map_dd2260[] = {
+ NSPAIR(_ZN6dd2260C1Ev),
+ NSPAIR(_ZN6dd2260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd2260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2260[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd22603fooEv();
+static VTBL_ENTRY vtc_dd2260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd22603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+Class_Descriptor cd_dd2260 = { "dd2260", // class name
+ bases_dd2260, 3,
+ &(vtc_dd2260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2260),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 ee02260 : dd2260 {
+ int e;
+ ~ee02260(); // tgen
+ ee02260(); // tgen
+};
+//SIG(1 ee02260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02260 ::~ee02260(){ note_dtor("ee02260", this);} // tgen
+ee02260 ::ee02260(){ note_ctor("ee02260", this);} // tgen
+
+static void Test_ee02260()
+{
+ extern Class_Descriptor cd_ee02260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02260, buf);
+ ee02260 *dp, &lv = *(dp=new (buf) ee02260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(8,4), "ee02260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), 0, "ee02260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), 0, "ee02260");
+ check_base_class_offset(lv, (dd2260*), 0, "ee02260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02260.e");
+ test_class_info(&lv, &cd_ee02260);
+ dp->~ee02260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02260(Test_ee02260, "ee02260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02260C1Ev();
+extern void _ZN7ee02260D1Ev();
+Name_Map name_map_ee02260[] = {
+ NSPAIR(_ZN7ee02260C1Ev),
+ NSPAIR(_ZN7ee02260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee02260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, 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 _ZTI7ee02260[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd22603fooEv();
+static VTBL_ENTRY vtc_ee02260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd22603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02260[];
+extern VTBL_ENTRY _ZTV7ee02260[];
+Class_Descriptor cd_ee02260 = { "ee02260", // class name
+ bases_ee02260, 4,
+ &(vtc_ee02260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02260),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 ee12260 : virtual dd2260 {
+ int e;
+ ~ee12260(); // tgen
+ ee12260(); // tgen
+};
+//SIG(1 ee12260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12260 ::~ee12260(){ note_dtor("ee12260", this);} // tgen
+ee12260 ::ee12260(){ note_ctor("ee12260", this);} // tgen
+
+static void Test_ee12260()
+{
+ extern Class_Descriptor cd_ee12260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12260, buf);
+ ee12260 *dp, &lv = *(dp=new (buf) ee12260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(24,12), "ee12260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), ABISELECT(16,8), "ee12260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), ABISELECT(16,8), "ee12260");
+ check_base_class_offset(lv, (dd2260*), ABISELECT(16,8), "ee12260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12260.e");
+ test_class_info(&lv, &cd_ee12260);
+ dp->~ee12260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12260(Test_ee12260, "ee12260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12260C1Ev();
+extern void _ZN7ee12260D1Ev();
+Name_Map name_map_ee12260[] = {
+ NSPAIR(_ZN7ee12260C1Ev),
+ NSPAIR(_ZN7ee12260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee12260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, 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 _ZTI7ee12260[];
+extern void _ZN4bb603barEv();
+extern void _ZN6dd22603fooEv();
+static VTBL_ENTRY vtc_ee12260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN6dd22603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12260[];
+static VTT_ENTRY vtt_ee12260[] = {
+ {&(_ZTV7ee12260[3]), 3,9},
+ {&(_ZTV7ee12260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12260[];
+extern VTBL_ENTRY _ZTV7ee12260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12260[];
+Class_Descriptor cd_ee12260 = { "ee12260", // class name
+ bases_ee12260, 4,
+ &(vtc_ee12260[0]), // expected_vtbl_contents
+ &(vtt_ee12260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12260),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 ee22260 : dd2260 {
+ int e;
+ virtual void foo(); // _ZN7ee222603fooEv
+ ~ee22260(); // tgen
+ ee22260(); // tgen
+};
+//SIG(1 ee22260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22260 ::foo(){vfunc_called(this, "_ZN7ee222603fooEv");}
+ee22260 ::~ee22260(){ note_dtor("ee22260", this);} // tgen
+ee22260 ::ee22260(){ note_ctor("ee22260", this);} // tgen
+
+static void Test_ee22260()
+{
+ extern Class_Descriptor cd_ee22260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22260, buf);
+ ee22260 *dp, &lv = *(dp=new (buf) ee22260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(8,4), "ee22260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), 0, "ee22260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), 0, "ee22260");
+ check_base_class_offset(lv, (dd2260*), 0, "ee22260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22260.e");
+ test_class_info(&lv, &cd_ee22260);
+ dp->~ee22260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22260(Test_ee22260, "ee22260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22260C1Ev();
+extern void _ZN7ee22260D1Ev();
+Name_Map name_map_ee22260[] = {
+ NSPAIR(_ZN7ee22260C1Ev),
+ NSPAIR(_ZN7ee22260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee22260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22260[];
+extern void _ZN4bb603barEv();
+extern void _ZN7ee222603fooEv();
+static VTBL_ENTRY vtc_ee22260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&_ZN7ee222603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22260[];
+extern VTBL_ENTRY _ZTV7ee22260[];
+Class_Descriptor cd_ee22260 = { "ee22260", // class name
+ bases_ee22260, 4,
+ &(vtc_ee22260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22260),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 ee32260 : virtual dd2260 {
+ int e;
+ virtual void foo(); // _ZN7ee322603fooEv
+ ~ee32260(); // tgen
+ ee32260(); // tgen
+};
+//SIG(1 ee32260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32260 ::foo(){vfunc_called(this, "_ZN7ee322603fooEv");}
+ee32260 ::~ee32260(){ note_dtor("ee32260", this);} // tgen
+ee32260 ::ee32260(){ note_ctor("ee32260", this);} // tgen
+
+static void Test_ee32260()
+{
+ extern Class_Descriptor cd_ee32260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32260, buf);
+ ee32260 *dp, &lv = *(dp=new (buf) ee32260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(24,12), "ee32260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), ABISELECT(16,8), "ee32260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), ABISELECT(16,8), "ee32260");
+ check_base_class_offset(lv, (dd2260*), ABISELECT(16,8), "ee32260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32260.e");
+ test_class_info(&lv, &cd_ee32260);
+ dp->~ee32260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32260(Test_ee32260, "ee32260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32260C1Ev();
+extern void _ZN7ee32260D1Ev();
+Name_Map name_map_ee32260[] = {
+ NSPAIR(_ZN7ee32260C1Ev),
+ NSPAIR(_ZN7ee32260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee32260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, ABISELECT(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 _ZTI7ee32260[];
+extern void _ZN7ee322603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee322603fooEv,_ZTv0_n16_N7ee322603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322603fooEv,_ZThn8_N7ee322603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32260[0]),
+ (VTBL_ENTRY)&_ZN7ee322603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee322603fooEv,_ZTv0_n16_N7ee322603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32260[];
+static VTT_ENTRY vtt_ee32260[] = {
+ {&(_ZTV7ee32260[3]), 3,10},
+ {&(_ZTV7ee32260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32260[];
+extern VTBL_ENTRY _ZTV7ee32260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32260[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee322603fooEv,_ZTv0_n16_N7ee322603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322603fooEv,_ZThn8_N7ee322603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32260 = { "ee32260", // class name
+ bases_ee32260, 4,
+ &(vtc_ee32260[0]), // expected_vtbl_contents
+ &(vtt_ee32260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32260),2, //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 ee42260 : dd2260 {
+ int e;
+ virtual void bar(); // _ZN7ee422603barEv
+ ~ee42260(); // tgen
+ ee42260(); // tgen
+};
+//SIG(1 ee42260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42260 ::bar(){vfunc_called(this, "_ZN7ee422603barEv");}
+ee42260 ::~ee42260(){ note_dtor("ee42260", this);} // tgen
+ee42260 ::ee42260(){ note_ctor("ee42260", this);} // tgen
+
+static void Test_ee42260()
+{
+ extern Class_Descriptor cd_ee42260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42260, buf);
+ ee42260 *dp, &lv = *(dp=new (buf) ee42260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(8,4), "ee42260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), 0, "ee42260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), 0, "ee42260");
+ check_base_class_offset(lv, (dd2260*), 0, "ee42260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42260.e");
+ test_class_info(&lv, &cd_ee42260);
+ dp->~ee42260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42260(Test_ee42260, "ee42260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42260C1Ev();
+extern void _ZN7ee42260D1Ev();
+Name_Map name_map_ee42260[] = {
+ NSPAIR(_ZN7ee42260C1Ev),
+ NSPAIR(_ZN7ee42260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee42260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42260[];
+extern void _ZN7ee422603barEv();
+extern void _ZN6dd22603fooEv();
+static VTBL_ENTRY vtc_ee42260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42260[0]),
+ (VTBL_ENTRY)&_ZN7ee422603barEv,
+ (VTBL_ENTRY)&_ZN6dd22603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee42260[];
+extern VTBL_ENTRY _ZTV7ee42260[];
+Class_Descriptor cd_ee42260 = { "ee42260", // class name
+ bases_ee42260, 4,
+ &(vtc_ee42260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42260),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 ee52260 : virtual dd2260 {
+ int e;
+ virtual void bar(); // _ZN7ee522603barEv
+ ~ee52260(); // tgen
+ ee52260(); // tgen
+};
+//SIG(1 ee52260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52260 ::bar(){vfunc_called(this, "_ZN7ee522603barEv");}
+ee52260 ::~ee52260(){ note_dtor("ee52260", this);} // tgen
+ee52260 ::ee52260(){ note_ctor("ee52260", this);} // tgen
+
+static void Test_ee52260()
+{
+ extern Class_Descriptor cd_ee52260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52260, buf);
+ ee52260 *dp, &lv = *(dp=new (buf) ee52260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(24,12), "ee52260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), ABISELECT(16,8), "ee52260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), ABISELECT(16,8), "ee52260");
+ check_base_class_offset(lv, (dd2260*), ABISELECT(16,8), "ee52260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52260.e");
+ test_class_info(&lv, &cd_ee52260);
+ dp->~ee52260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52260(Test_ee52260, "ee52260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52260C1Ev();
+extern void _ZN7ee52260D1Ev();
+Name_Map name_map_ee52260[] = {
+ NSPAIR(_ZN7ee52260C1Ev),
+ NSPAIR(_ZN7ee52260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee52260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, ABISELECT(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 _ZTI7ee52260[];
+extern void _ZN7ee522603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee522603barEv,_ZTv0_n12_N7ee522603barEv)();
+extern void ABISELECT(_ZThn16_N7ee522603barEv,_ZThn8_N7ee522603barEv)() __attribute__((weak));
+extern void _ZN6dd22603fooEv();
+static VTBL_ENTRY vtc_ee52260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52260[0]),
+ (VTBL_ENTRY)&_ZN7ee522603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee522603barEv,_ZTv0_n12_N7ee522603barEv),
+ (VTBL_ENTRY)&_ZN6dd22603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52260[];
+static VTT_ENTRY vtt_ee52260[] = {
+ {&(_ZTV7ee52260[3]), 3,10},
+ {&(_ZTV7ee52260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52260[];
+extern VTBL_ENTRY _ZTV7ee52260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52260[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee522603barEv,_ZTv0_n12_N7ee522603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522603barEv,_ZThn8_N7ee522603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52260 = { "ee52260", // class name
+ bases_ee52260, 4,
+ &(vtc_ee52260[0]), // expected_vtbl_contents
+ &(vtt_ee52260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52260),2, //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 ee62260 : dd2260 {
+ int e;
+ virtual void foo(); // _ZN7ee622603fooEv
+ virtual void bar(); // _ZN7ee622603barEv
+ ~ee62260(); // tgen
+ ee62260(); // tgen
+};
+//SIG(1 ee62260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62260 ::foo(){vfunc_called(this, "_ZN7ee622603fooEv");}
+void ee62260 ::bar(){vfunc_called(this, "_ZN7ee622603barEv");}
+ee62260 ::~ee62260(){ note_dtor("ee62260", this);} // tgen
+ee62260 ::ee62260(){ note_ctor("ee62260", this);} // tgen
+
+static void Test_ee62260()
+{
+ extern Class_Descriptor cd_ee62260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62260, buf);
+ ee62260 *dp, &lv = *(dp=new (buf) ee62260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(8,4), "ee62260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), 0, "ee62260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), 0, "ee62260");
+ check_base_class_offset(lv, (dd2260*), 0, "ee62260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62260.e");
+ test_class_info(&lv, &cd_ee62260);
+ dp->~ee62260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62260(Test_ee62260, "ee62260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62260C1Ev();
+extern void _ZN7ee62260D1Ev();
+Name_Map name_map_ee62260[] = {
+ NSPAIR(_ZN7ee62260C1Ev),
+ NSPAIR(_ZN7ee62260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee62260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62260[];
+extern void _ZN7ee622603barEv();
+extern void _ZN7ee622603fooEv();
+static VTBL_ENTRY vtc_ee62260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62260[0]),
+ (VTBL_ENTRY)&_ZN7ee622603barEv,
+ (VTBL_ENTRY)&_ZN7ee622603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee62260[];
+extern VTBL_ENTRY _ZTV7ee62260[];
+Class_Descriptor cd_ee62260 = { "ee62260", // class name
+ bases_ee62260, 4,
+ &(vtc_ee62260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62260),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 ee72260 : virtual dd2260 {
+ int e;
+ virtual void foo(); // _ZN7ee722603fooEv
+ virtual void bar(); // _ZN7ee722603barEv
+ ~ee72260(); // tgen
+ ee72260(); // tgen
+};
+//SIG(1 ee72260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72260 ::foo(){vfunc_called(this, "_ZN7ee722603fooEv");}
+void ee72260 ::bar(){vfunc_called(this, "_ZN7ee722603barEv");}
+ee72260 ::~ee72260(){ note_dtor("ee72260", this);} // tgen
+ee72260 ::ee72260(){ note_ctor("ee72260", this);} // tgen
+
+static void Test_ee72260()
+{
+ extern Class_Descriptor cd_ee72260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72260, buf);
+ ee72260 *dp, &lv = *(dp=new (buf) ee72260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd2260*), ABISELECT(24,12), "ee72260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd2260*), ABISELECT(16,8), "ee72260");
+ check_base_class_offset(lv, (cc260*)(dd2260*), ABISELECT(16,8), "ee72260");
+ check_base_class_offset(lv, (dd2260*), ABISELECT(16,8), "ee72260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72260.e");
+ test_class_info(&lv, &cd_ee72260);
+ dp->~ee72260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72260(Test_ee72260, "ee72260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72260C1Ev();
+extern void _ZN7ee72260D1Ev();
+Name_Map name_map_ee72260[] = {
+ NSPAIR(_ZN7ee72260C1Ev),
+ NSPAIR(_ZN7ee72260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd2260;
+extern VTBL_ENTRY _ZTI6dd2260[];
+extern VTBL_ENTRY _ZTV6dd2260[];
+static Base_Class bases_ee72260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2260, ABISELECT(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 _ZTI7ee72260[];
+extern void _ZN7ee722603fooEv();
+extern void _ZN7ee722603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722603barEv,_ZTv0_n12_N7ee722603barEv)();
+extern void ABISELECT(_ZThn16_N7ee722603barEv,_ZThn8_N7ee722603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722603fooEv,_ZTv0_n16_N7ee722603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722603fooEv,_ZThn8_N7ee722603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72260[0]),
+ (VTBL_ENTRY)&_ZN7ee722603fooEv,
+ (VTBL_ENTRY)&_ZN7ee722603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722603barEv,_ZTv0_n12_N7ee722603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722603fooEv,_ZTv0_n16_N7ee722603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72260[];
+static VTT_ENTRY vtt_ee72260[] = {
+ {&(_ZTV7ee72260[3]), 3,11},
+ {&(_ZTV7ee72260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72260[];
+extern VTBL_ENTRY _ZTV7ee72260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72260[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722603fooEv,_ZTv0_n16_N7ee722603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722603fooEv,_ZThn8_N7ee722603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722603barEv,_ZTv0_n12_N7ee722603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722603barEv,_ZThn8_N7ee722603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72260 = { "ee72260", // class name
+ bases_ee72260, 4,
+ &(vtc_ee72260[0]), // expected_vtbl_contents
+ &(vtt_ee72260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72260),2, //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 dd3260 : virtual cc260 {
+ int d;
+ virtual void foo(); // _ZN6dd32603fooEv
+ ~dd3260(); // tgen
+ dd3260(); // tgen
+};
+//SIG(-1 dd3260) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3260 ::foo(){vfunc_called(this, "_ZN6dd32603fooEv");}
+dd3260 ::~dd3260(){ note_dtor("dd3260", this);} // tgen
+dd3260 ::dd3260(){ note_ctor("dd3260", this);} // tgen
+
+static void Test_dd3260()
+{
+ extern Class_Descriptor cd_dd3260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3260, buf);
+ dd3260 *dp, &lv = *(dp=new (buf) dd3260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,12), "dd3260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,8), "dd3260");
+ check_base_class_offset(lv, (cc260*), ABISELECT(16,8), "dd3260");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3260.d");
+ test_class_info(&lv, &cd_dd3260);
+ dp->~dd3260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3260(Test_dd3260, "dd3260", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3260C1Ev();
+extern void _ZN6dd3260D1Ev();
+Name_Map name_map_dd3260[] = {
+ NSPAIR(_ZN6dd3260C1Ev),
+ NSPAIR(_ZN6dd3260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd3260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(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 _ZTI6dd3260[];
+extern void _ZN6dd32603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3260[];
+static VTT_ENTRY vtt_dd3260[] = {
+ {&(_ZTV6dd3260[3]), 3,10},
+ {&(_ZTV6dd3260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3260 = { "dd3260", // class name
+ bases_dd3260, 3,
+ &(vtc_dd3260[0]), // expected_vtbl_contents
+ &(vtt_dd3260[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3260),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03260 : dd3260 {
+ int e;
+ ~ee03260(); // tgen
+ ee03260(); // tgen
+};
+//SIG(1 ee03260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03260 ::~ee03260(){ note_dtor("ee03260", this);} // tgen
+ee03260 ::ee03260(){ note_ctor("ee03260", this);} // tgen
+
+static void Test_ee03260()
+{
+ extern Class_Descriptor cd_ee03260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03260, buf);
+ ee03260 *dp, &lv = *(dp=new (buf) ee03260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee03260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee03260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(16,12), "ee03260");
+ check_base_class_offset(lv, (dd3260*), 0, "ee03260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03260.e");
+ test_class_info(&lv, &cd_ee03260);
+ dp->~ee03260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03260(Test_ee03260, "ee03260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03260C1Ev();
+extern void _ZN7ee03260D1Ev();
+Name_Map name_map_ee03260[] = {
+ NSPAIR(_ZN7ee03260C1Ev),
+ NSPAIR(_ZN7ee03260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee03260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03260[];
+extern void _ZN6dd32603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee03260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee03260[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee03260[] = {
+ {&(_ZTV7ee03260[3]), 3,10},
+ {&(_tg__ZTV6dd3260__7ee03260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee03260[4]), 4,6},
+ {&(_ZTV7ee03260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03260[];
+extern VTBL_ENTRY _ZTV7ee03260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03260[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03260 = { "ee03260", // class name
+ bases_ee03260, 4,
+ &(vtc_ee03260[0]), // expected_vtbl_contents
+ &(vtt_ee03260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03260),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 ee13260 : virtual dd3260 {
+ int e;
+ ~ee13260(); // tgen
+ ee13260(); // tgen
+};
+//SIG(1 ee13260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13260 ::~ee13260(){ note_dtor("ee13260", this);} // tgen
+ee13260 ::ee13260(){ note_ctor("ee13260", this);} // tgen
+
+static void Test_ee13260()
+{
+ extern Class_Descriptor cd_ee13260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13260, buf);
+ ee13260 *dp, &lv = *(dp=new (buf) ee13260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee13260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee13260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(32,16), "ee13260");
+ check_base_class_offset(lv, (dd3260*), ABISELECT(16,8), "ee13260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13260.e");
+ test_class_info(&lv, &cd_ee13260);
+ dp->~ee13260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13260(Test_ee13260, "ee13260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13260C1Ev();
+extern void _ZN7ee13260D1Ev();
+Name_Map name_map_ee13260[] = {
+ NSPAIR(_ZN7ee13260C1Ev),
+ NSPAIR(_ZN7ee13260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee13260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, ABISELECT(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 _ZTI7ee13260[];
+extern void _ZN6dd32603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13260[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee13260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee13260[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee13260[] = {
+ {&(_ZTV7ee13260[4]), 4,15},
+ {&(_ZTV7ee13260[8]), 8,15},
+ {&(_ZTV7ee13260[13]), 13,15},
+ {&(_tg__ZTV6dd3260__7ee13260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee13260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13260[];
+extern VTBL_ENTRY _ZTV7ee13260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13260[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13260 = { "ee13260", // class name
+ bases_ee13260, 4,
+ &(vtc_ee13260[0]), // expected_vtbl_contents
+ &(vtt_ee13260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13260),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13260),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 ee23260 : dd3260 {
+ int e;
+ virtual void foo(); // _ZN7ee232603fooEv
+ ~ee23260(); // tgen
+ ee23260(); // tgen
+};
+//SIG(1 ee23260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23260 ::foo(){vfunc_called(this, "_ZN7ee232603fooEv");}
+ee23260 ::~ee23260(){ note_dtor("ee23260", this);} // tgen
+ee23260 ::ee23260(){ note_ctor("ee23260", this);} // tgen
+
+static void Test_ee23260()
+{
+ extern Class_Descriptor cd_ee23260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23260, buf);
+ ee23260 *dp, &lv = *(dp=new (buf) ee23260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee23260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee23260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(16,12), "ee23260");
+ check_base_class_offset(lv, (dd3260*), 0, "ee23260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23260.e");
+ test_class_info(&lv, &cd_ee23260);
+ dp->~ee23260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23260(Test_ee23260, "ee23260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23260C1Ev();
+extern void _ZN7ee23260D1Ev();
+Name_Map name_map_ee23260[] = {
+ NSPAIR(_ZN7ee23260C1Ev),
+ NSPAIR(_ZN7ee23260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee23260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23260[];
+extern void _ZN7ee232603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee232603fooEv,_ZTv0_n16_N7ee232603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232603fooEv,_ZThn12_N7ee232603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23260[0]),
+ (VTBL_ENTRY)&_ZN7ee232603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee232603fooEv,_ZTv0_n16_N7ee232603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee23260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee23260[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee23260[] = {
+ {&(_ZTV7ee23260[3]), 3,10},
+ {&(_tg__ZTV6dd3260__7ee23260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee23260[4]), 4,6},
+ {&(_ZTV7ee23260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23260[];
+extern VTBL_ENTRY _ZTV7ee23260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23260[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee232603fooEv,_ZTv0_n16_N7ee232603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232603fooEv,_ZThn12_N7ee232603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23260 = { "ee23260", // class name
+ bases_ee23260, 4,
+ &(vtc_ee23260[0]), // expected_vtbl_contents
+ &(vtt_ee23260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23260),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 ee33260 : virtual dd3260 {
+ int e;
+ virtual void foo(); // _ZN7ee332603fooEv
+ ~ee33260(); // tgen
+ ee33260(); // tgen
+};
+//SIG(1 ee33260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33260 ::foo(){vfunc_called(this, "_ZN7ee332603fooEv");}
+ee33260 ::~ee33260(){ note_dtor("ee33260", this);} // tgen
+ee33260 ::ee33260(){ note_ctor("ee33260", this);} // tgen
+
+static void Test_ee33260()
+{
+ extern Class_Descriptor cd_ee33260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33260, buf);
+ ee33260 *dp, &lv = *(dp=new (buf) ee33260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee33260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee33260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(32,16), "ee33260");
+ check_base_class_offset(lv, (dd3260*), ABISELECT(16,8), "ee33260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33260.e");
+ test_class_info(&lv, &cd_ee33260);
+ dp->~ee33260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33260(Test_ee33260, "ee33260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33260C1Ev();
+extern void _ZN7ee33260D1Ev();
+Name_Map name_map_ee33260[] = {
+ NSPAIR(_ZN7ee33260C1Ev),
+ NSPAIR(_ZN7ee33260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee33260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, ABISELECT(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 _ZTI7ee33260[];
+extern void _ZN7ee332603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332603fooEv,_ZTv0_n16_N7ee332603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332603fooEv,_ZThn8_N7ee332603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332603fooEv,_ZTv0_n16_N7ee332603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332603fooEv,_ZThn16_N7ee332603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33260[0]),
+ (VTBL_ENTRY)&_ZN7ee332603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332603fooEv,_ZTv0_n16_N7ee332603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332603fooEv,_ZTv0_n16_N7ee332603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee33260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee33260[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee33260[] = {
+ {&(_ZTV7ee33260[4]), 4,16},
+ {&(_ZTV7ee33260[9]), 9,16},
+ {&(_ZTV7ee33260[14]), 14,16},
+ {&(_tg__ZTV6dd3260__7ee33260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee33260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33260[];
+extern VTBL_ENTRY _ZTV7ee33260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33260[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332603fooEv,_ZTv0_n16_N7ee332603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332603fooEv,_ZThn16_N7ee332603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332603fooEv,_ZThn8_N7ee332603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33260 = { "ee33260", // class name
+ bases_ee33260, 4,
+ &(vtc_ee33260[0]), // expected_vtbl_contents
+ &(vtt_ee33260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33260),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33260),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 ee43260 : dd3260 {
+ int e;
+ virtual void bar(); // _ZN7ee432603barEv
+ ~ee43260(); // tgen
+ ee43260(); // tgen
+};
+//SIG(1 ee43260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43260 ::bar(){vfunc_called(this, "_ZN7ee432603barEv");}
+ee43260 ::~ee43260(){ note_dtor("ee43260", this);} // tgen
+ee43260 ::ee43260(){ note_ctor("ee43260", this);} // tgen
+
+static void Test_ee43260()
+{
+ extern Class_Descriptor cd_ee43260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43260, buf);
+ ee43260 *dp, &lv = *(dp=new (buf) ee43260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee43260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee43260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(16,12), "ee43260");
+ check_base_class_offset(lv, (dd3260*), 0, "ee43260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43260.e");
+ test_class_info(&lv, &cd_ee43260);
+ dp->~ee43260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43260(Test_ee43260, "ee43260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43260C1Ev();
+extern void _ZN7ee43260D1Ev();
+Name_Map name_map_ee43260[] = {
+ NSPAIR(_ZN7ee43260C1Ev),
+ NSPAIR(_ZN7ee43260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee43260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43260[];
+extern void _ZN6dd32603fooEv();
+extern void _ZN7ee432603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee432603barEv,_ZTv0_n12_N7ee432603barEv)();
+extern void ABISELECT(_ZThn16_N7ee432603barEv,_ZThn12_N7ee432603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+ (VTBL_ENTRY)&_ZN7ee432603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee432603barEv,_ZTv0_n12_N7ee432603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee43260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee43260[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee43260[] = {
+ {&(_ZTV7ee43260[3]), 3,11},
+ {&(_tg__ZTV6dd3260__7ee43260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee43260[4]), 4,6},
+ {&(_ZTV7ee43260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43260[];
+extern VTBL_ENTRY _ZTV7ee43260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43260[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee432603barEv,_ZTv0_n12_N7ee432603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432603barEv,_ZThn12_N7ee432603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43260 = { "ee43260", // class name
+ bases_ee43260, 4,
+ &(vtc_ee43260[0]), // expected_vtbl_contents
+ &(vtt_ee43260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43260),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53260 : virtual dd3260 {
+ int e;
+ virtual void bar(); // _ZN7ee532603barEv
+ ~ee53260(); // tgen
+ ee53260(); // tgen
+};
+//SIG(1 ee53260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53260 ::bar(){vfunc_called(this, "_ZN7ee532603barEv");}
+ee53260 ::~ee53260(){ note_dtor("ee53260", this);} // tgen
+ee53260 ::ee53260(){ note_ctor("ee53260", this);} // tgen
+
+static void Test_ee53260()
+{
+ extern Class_Descriptor cd_ee53260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53260, buf);
+ ee53260 *dp, &lv = *(dp=new (buf) ee53260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee53260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee53260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(32,16), "ee53260");
+ check_base_class_offset(lv, (dd3260*), ABISELECT(16,8), "ee53260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53260.e");
+ test_class_info(&lv, &cd_ee53260);
+ dp->~ee53260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53260(Test_ee53260, "ee53260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53260C1Ev();
+extern void _ZN7ee53260D1Ev();
+Name_Map name_map_ee53260[] = {
+ NSPAIR(_ZN7ee53260C1Ev),
+ NSPAIR(_ZN7ee53260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee53260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, ABISELECT(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 _ZTI7ee53260[];
+extern void _ZN7ee532603barEv();
+extern void _ZN6dd32603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee532603barEv,_ZTv0_n12_N7ee532603barEv)();
+extern void ABISELECT(_ZThn32_N7ee532603barEv,_ZThn16_N7ee532603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53260[0]),
+ (VTBL_ENTRY)&_ZN7ee532603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee532603barEv,_ZTv0_n12_N7ee532603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee53260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee53260[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee53260[] = {
+ {&(_ZTV7ee53260[4]), 4,16},
+ {&(_ZTV7ee53260[9]), 9,16},
+ {&(_ZTV7ee53260[14]), 14,16},
+ {&(_tg__ZTV6dd3260__7ee53260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee53260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53260[];
+extern VTBL_ENTRY _ZTV7ee53260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53260[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee532603barEv,_ZTv0_n12_N7ee532603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532603barEv,_ZThn16_N7ee532603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53260 = { "ee53260", // class name
+ bases_ee53260, 4,
+ &(vtc_ee53260[0]), // expected_vtbl_contents
+ &(vtt_ee53260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53260),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53260),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63260 : dd3260 {
+ int e;
+ virtual void foo(); // _ZN7ee632603fooEv
+ virtual void bar(); // _ZN7ee632603barEv
+ ~ee63260(); // tgen
+ ee63260(); // tgen
+};
+//SIG(1 ee63260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63260 ::foo(){vfunc_called(this, "_ZN7ee632603fooEv");}
+void ee63260 ::bar(){vfunc_called(this, "_ZN7ee632603barEv");}
+ee63260 ::~ee63260(){ note_dtor("ee63260", this);} // tgen
+ee63260 ::ee63260(){ note_ctor("ee63260", this);} // tgen
+
+static void Test_ee63260()
+{
+ extern Class_Descriptor cd_ee63260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63260, buf);
+ ee63260 *dp, &lv = *(dp=new (buf) ee63260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee63260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee63260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(16,12), "ee63260");
+ check_base_class_offset(lv, (dd3260*), 0, "ee63260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63260.e");
+ test_class_info(&lv, &cd_ee63260);
+ dp->~ee63260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63260(Test_ee63260, "ee63260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63260C1Ev();
+extern void _ZN7ee63260D1Ev();
+Name_Map name_map_ee63260[] = {
+ NSPAIR(_ZN7ee63260C1Ev),
+ NSPAIR(_ZN7ee63260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee63260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63260[];
+extern void _ZN7ee632603fooEv();
+extern void _ZN7ee632603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632603barEv,_ZTv0_n12_N7ee632603barEv)();
+extern void ABISELECT(_ZThn16_N7ee632603barEv,_ZThn12_N7ee632603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632603fooEv,_ZTv0_n16_N7ee632603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632603fooEv,_ZThn12_N7ee632603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63260[0]),
+ (VTBL_ENTRY)&_ZN7ee632603fooEv,
+ (VTBL_ENTRY)&_ZN7ee632603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632603barEv,_ZTv0_n12_N7ee632603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632603fooEv,_ZTv0_n16_N7ee632603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee63260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee63260[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee63260[] = {
+ {&(_ZTV7ee63260[3]), 3,11},
+ {&(_tg__ZTV6dd3260__7ee63260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee63260[4]), 4,6},
+ {&(_ZTV7ee63260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63260[];
+extern VTBL_ENTRY _ZTV7ee63260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63260[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn12_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632603fooEv,_ZTv0_n16_N7ee632603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632603fooEv,_ZThn12_N7ee632603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632603barEv,_ZTv0_n12_N7ee632603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632603barEv,_ZThn12_N7ee632603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63260 = { "ee63260", // class name
+ bases_ee63260, 4,
+ &(vtc_ee63260[0]), // expected_vtbl_contents
+ &(vtt_ee63260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63260),4, //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 ee73260 : virtual dd3260 {
+ int e;
+ virtual void foo(); // _ZN7ee732603fooEv
+ virtual void bar(); // _ZN7ee732603barEv
+ ~ee73260(); // tgen
+ ee73260(); // tgen
+};
+//SIG(1 ee73260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73260 ::foo(){vfunc_called(this, "_ZN7ee732603fooEv");}
+void ee73260 ::bar(){vfunc_called(this, "_ZN7ee732603barEv");}
+ee73260 ::~ee73260(){ note_dtor("ee73260", this);} // tgen
+ee73260 ::ee73260(){ note_ctor("ee73260", this);} // tgen
+
+static void Test_ee73260()
+{
+ extern Class_Descriptor cd_ee73260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73260, buf);
+ ee73260 *dp, &lv = *(dp=new (buf) ee73260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee73260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee73260");
+ check_base_class_offset(lv, (cc260*)(dd3260*), ABISELECT(32,16), "ee73260");
+ check_base_class_offset(lv, (dd3260*), ABISELECT(16,8), "ee73260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73260.e");
+ test_class_info(&lv, &cd_ee73260);
+ dp->~ee73260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73260(Test_ee73260, "ee73260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73260C1Ev();
+extern void _ZN7ee73260D1Ev();
+Name_Map name_map_ee73260[] = {
+ NSPAIR(_ZN7ee73260C1Ev),
+ NSPAIR(_ZN7ee73260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd3260;
+extern VTBL_ENTRY _ZTI6dd3260[];
+extern VTBL_ENTRY _ZTV6dd3260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3260[];
+static Base_Class bases_ee73260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd3260, 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 _ZTI7ee73260[];
+extern void _ZN7ee732603fooEv();
+extern void _ZN7ee732603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732603fooEv,_ZTv0_n16_N7ee732603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732603fooEv,_ZThn8_N7ee732603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732603barEv,_ZTv0_n12_N7ee732603barEv)();
+extern void ABISELECT(_ZThn32_N7ee732603barEv,_ZThn16_N7ee732603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732603fooEv,_ZTv0_n16_N7ee732603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732603fooEv,_ZThn16_N7ee732603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73260[0]),
+ (VTBL_ENTRY)&_ZN7ee732603fooEv,
+ (VTBL_ENTRY)&_ZN7ee732603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732603fooEv,_ZTv0_n16_N7ee732603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732603barEv,_ZTv0_n12_N7ee732603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732603fooEv,_ZTv0_n16_N7ee732603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73260[];
+extern void _ZN6dd32603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3260__7ee73260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN6dd32603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd3260__7ee73260[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3260[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv),
+};
+static VTT_ENTRY vtt_ee73260[] = {
+ {&(_ZTV7ee73260[4]), 4,17},
+ {&(_ZTV7ee73260[10]), 10,17},
+ {&(_ZTV7ee73260[15]), 15,17},
+ {&(_tg__ZTV6dd3260__7ee73260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd3260__7ee73260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73260[];
+extern VTBL_ENTRY _ZTV7ee73260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73260[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd32603fooEv,_ZTv0_n16_N6dd32603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32603fooEv,_ZThn8_N6dd32603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732603barEv,_ZTv0_n12_N7ee732603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732603barEv,_ZThn16_N7ee732603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732603fooEv,_ZTv0_n16_N7ee732603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732603fooEv,_ZThn16_N7ee732603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732603fooEv,_ZThn8_N7ee732603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73260 = { "ee73260", // class name
+ bases_ee73260, 4,
+ &(vtc_ee73260[0]), // expected_vtbl_contents
+ &(vtt_ee73260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73260),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73260),5, //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 dd4260 : cc260 {
+ int d;
+ virtual void bar(); // _ZN6dd42603barEv
+ ~dd4260(); // tgen
+ dd4260(); // tgen
+};
+//SIG(-1 dd4260) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4260 ::bar(){vfunc_called(this, "_ZN6dd42603barEv");}
+dd4260 ::~dd4260(){ note_dtor("dd4260", this);} // tgen
+dd4260 ::dd4260(){ note_ctor("dd4260", this);} // tgen
+
+static void Test_dd4260()
+{
+ extern Class_Descriptor cd_dd4260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4260, buf);
+ dd4260 *dp, &lv = *(dp=new (buf) dd4260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(8,4), "dd4260");
+ check_base_class_offset(lv, (bb60*)(cc260*), 0, "dd4260");
+ check_base_class_offset(lv, (cc260*), 0, "dd4260");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4260.d");
+ test_class_info(&lv, &cd_dd4260);
+ dp->~dd4260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4260(Test_dd4260, "dd4260", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4260C1Ev();
+extern void _ZN6dd4260D1Ev();
+Name_Map name_map_dd4260[] = {
+ NSPAIR(_ZN6dd4260C1Ev),
+ NSPAIR(_ZN6dd4260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd4260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4260[];
+extern void _ZN6dd42603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_dd4260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4260[0]),
+ (VTBL_ENTRY)&_ZN6dd42603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+Class_Descriptor cd_dd4260 = { "dd4260", // class name
+ bases_dd4260, 3,
+ &(vtc_dd4260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4260),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 ee04260 : dd4260 {
+ int e;
+ ~ee04260(); // tgen
+ ee04260(); // tgen
+};
+//SIG(1 ee04260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04260 ::~ee04260(){ note_dtor("ee04260", this);} // tgen
+ee04260 ::ee04260(){ note_ctor("ee04260", this);} // tgen
+
+static void Test_ee04260()
+{
+ extern Class_Descriptor cd_ee04260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04260, buf);
+ ee04260 *dp, &lv = *(dp=new (buf) ee04260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(8,4), "ee04260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), 0, "ee04260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), 0, "ee04260");
+ check_base_class_offset(lv, (dd4260*), 0, "ee04260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04260.e");
+ test_class_info(&lv, &cd_ee04260);
+ dp->~ee04260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04260(Test_ee04260, "ee04260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04260C1Ev();
+extern void _ZN7ee04260D1Ev();
+Name_Map name_map_ee04260[] = {
+ NSPAIR(_ZN7ee04260C1Ev),
+ NSPAIR(_ZN7ee04260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee04260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, 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 _ZTI7ee04260[];
+extern void _ZN6dd42603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee04260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04260[0]),
+ (VTBL_ENTRY)&_ZN6dd42603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee04260[];
+extern VTBL_ENTRY _ZTV7ee04260[];
+Class_Descriptor cd_ee04260 = { "ee04260", // class name
+ bases_ee04260, 4,
+ &(vtc_ee04260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04260),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 ee14260 : virtual dd4260 {
+ int e;
+ ~ee14260(); // tgen
+ ee14260(); // tgen
+};
+//SIG(1 ee14260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14260 ::~ee14260(){ note_dtor("ee14260", this);} // tgen
+ee14260 ::ee14260(){ note_ctor("ee14260", this);} // tgen
+
+static void Test_ee14260()
+{
+ extern Class_Descriptor cd_ee14260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14260, buf);
+ ee14260 *dp, &lv = *(dp=new (buf) ee14260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(24,12), "ee14260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), ABISELECT(16,8), "ee14260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), ABISELECT(16,8), "ee14260");
+ check_base_class_offset(lv, (dd4260*), ABISELECT(16,8), "ee14260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14260.e");
+ test_class_info(&lv, &cd_ee14260);
+ dp->~ee14260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14260(Test_ee14260, "ee14260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14260C1Ev();
+extern void _ZN7ee14260D1Ev();
+Name_Map name_map_ee14260[] = {
+ NSPAIR(_ZN7ee14260C1Ev),
+ NSPAIR(_ZN7ee14260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee14260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, 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 _ZTI7ee14260[];
+extern void _ZN6dd42603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee14260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14260[0]),
+ (VTBL_ENTRY)&_ZN6dd42603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14260[];
+static VTT_ENTRY vtt_ee14260[] = {
+ {&(_ZTV7ee14260[3]), 3,9},
+ {&(_ZTV7ee14260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14260[];
+extern VTBL_ENTRY _ZTV7ee14260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14260[];
+Class_Descriptor cd_ee14260 = { "ee14260", // class name
+ bases_ee14260, 4,
+ &(vtc_ee14260[0]), // expected_vtbl_contents
+ &(vtt_ee14260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14260),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 ee24260 : dd4260 {
+ int e;
+ virtual void foo(); // _ZN7ee242603fooEv
+ ~ee24260(); // tgen
+ ee24260(); // tgen
+};
+//SIG(1 ee24260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24260 ::foo(){vfunc_called(this, "_ZN7ee242603fooEv");}
+ee24260 ::~ee24260(){ note_dtor("ee24260", this);} // tgen
+ee24260 ::ee24260(){ note_ctor("ee24260", this);} // tgen
+
+static void Test_ee24260()
+{
+ extern Class_Descriptor cd_ee24260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24260, buf);
+ ee24260 *dp, &lv = *(dp=new (buf) ee24260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(8,4), "ee24260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), 0, "ee24260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), 0, "ee24260");
+ check_base_class_offset(lv, (dd4260*), 0, "ee24260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24260.e");
+ test_class_info(&lv, &cd_ee24260);
+ dp->~ee24260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24260(Test_ee24260, "ee24260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24260C1Ev();
+extern void _ZN7ee24260D1Ev();
+Name_Map name_map_ee24260[] = {
+ NSPAIR(_ZN7ee24260C1Ev),
+ NSPAIR(_ZN7ee24260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee24260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24260[];
+extern void _ZN6dd42603barEv();
+extern void _ZN7ee242603fooEv();
+static VTBL_ENTRY vtc_ee24260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24260[0]),
+ (VTBL_ENTRY)&_ZN6dd42603barEv,
+ (VTBL_ENTRY)&_ZN7ee242603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24260[];
+extern VTBL_ENTRY _ZTV7ee24260[];
+Class_Descriptor cd_ee24260 = { "ee24260", // class name
+ bases_ee24260, 4,
+ &(vtc_ee24260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24260),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 ee34260 : virtual dd4260 {
+ int e;
+ virtual void foo(); // _ZN7ee342603fooEv
+ ~ee34260(); // tgen
+ ee34260(); // tgen
+};
+//SIG(1 ee34260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34260 ::foo(){vfunc_called(this, "_ZN7ee342603fooEv");}
+ee34260 ::~ee34260(){ note_dtor("ee34260", this);} // tgen
+ee34260 ::ee34260(){ note_ctor("ee34260", this);} // tgen
+
+static void Test_ee34260()
+{
+ extern Class_Descriptor cd_ee34260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34260, buf);
+ ee34260 *dp, &lv = *(dp=new (buf) ee34260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(24,12), "ee34260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), ABISELECT(16,8), "ee34260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), ABISELECT(16,8), "ee34260");
+ check_base_class_offset(lv, (dd4260*), ABISELECT(16,8), "ee34260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34260.e");
+ test_class_info(&lv, &cd_ee34260);
+ dp->~ee34260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34260(Test_ee34260, "ee34260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34260C1Ev();
+extern void _ZN7ee34260D1Ev();
+Name_Map name_map_ee34260[] = {
+ NSPAIR(_ZN7ee34260C1Ev),
+ NSPAIR(_ZN7ee34260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee34260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, ABISELECT(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 _ZTI7ee34260[];
+extern void _ZN7ee342603fooEv();
+extern void _ZN6dd42603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee342603fooEv,_ZTv0_n16_N7ee342603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342603fooEv,_ZThn8_N7ee342603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34260[0]),
+ (VTBL_ENTRY)&_ZN7ee342603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34260[0]),
+ (VTBL_ENTRY)&_ZN6dd42603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee342603fooEv,_ZTv0_n16_N7ee342603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34260[];
+static VTT_ENTRY vtt_ee34260[] = {
+ {&(_ZTV7ee34260[3]), 3,10},
+ {&(_ZTV7ee34260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34260[];
+extern VTBL_ENTRY _ZTV7ee34260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34260[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee342603fooEv,_ZTv0_n16_N7ee342603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342603fooEv,_ZThn8_N7ee342603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34260 = { "ee34260", // class name
+ bases_ee34260, 4,
+ &(vtc_ee34260[0]), // expected_vtbl_contents
+ &(vtt_ee34260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34260),2, //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 ee44260 : dd4260 {
+ int e;
+ virtual void bar(); // _ZN7ee442603barEv
+ ~ee44260(); // tgen
+ ee44260(); // tgen
+};
+//SIG(1 ee44260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44260 ::bar(){vfunc_called(this, "_ZN7ee442603barEv");}
+ee44260 ::~ee44260(){ note_dtor("ee44260", this);} // tgen
+ee44260 ::ee44260(){ note_ctor("ee44260", this);} // tgen
+
+static void Test_ee44260()
+{
+ extern Class_Descriptor cd_ee44260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44260, buf);
+ ee44260 *dp, &lv = *(dp=new (buf) ee44260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(8,4), "ee44260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), 0, "ee44260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), 0, "ee44260");
+ check_base_class_offset(lv, (dd4260*), 0, "ee44260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44260.e");
+ test_class_info(&lv, &cd_ee44260);
+ dp->~ee44260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44260(Test_ee44260, "ee44260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44260C1Ev();
+extern void _ZN7ee44260D1Ev();
+Name_Map name_map_ee44260[] = {
+ NSPAIR(_ZN7ee44260C1Ev),
+ NSPAIR(_ZN7ee44260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee44260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44260[];
+extern void _ZN7ee442603barEv();
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee44260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44260[0]),
+ (VTBL_ENTRY)&_ZN7ee442603barEv,
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee44260[];
+extern VTBL_ENTRY _ZTV7ee44260[];
+Class_Descriptor cd_ee44260 = { "ee44260", // class name
+ bases_ee44260, 4,
+ &(vtc_ee44260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44260),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 ee54260 : virtual dd4260 {
+ int e;
+ virtual void bar(); // _ZN7ee542603barEv
+ ~ee54260(); // tgen
+ ee54260(); // tgen
+};
+//SIG(1 ee54260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54260 ::bar(){vfunc_called(this, "_ZN7ee542603barEv");}
+ee54260 ::~ee54260(){ note_dtor("ee54260", this);} // tgen
+ee54260 ::ee54260(){ note_ctor("ee54260", this);} // tgen
+
+static void Test_ee54260()
+{
+ extern Class_Descriptor cd_ee54260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54260, buf);
+ ee54260 *dp, &lv = *(dp=new (buf) ee54260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(24,12), "ee54260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), ABISELECT(16,8), "ee54260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), ABISELECT(16,8), "ee54260");
+ check_base_class_offset(lv, (dd4260*), ABISELECT(16,8), "ee54260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54260.e");
+ test_class_info(&lv, &cd_ee54260);
+ dp->~ee54260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54260(Test_ee54260, "ee54260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54260C1Ev();
+extern void _ZN7ee54260D1Ev();
+Name_Map name_map_ee54260[] = {
+ NSPAIR(_ZN7ee54260C1Ev),
+ NSPAIR(_ZN7ee54260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee54260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, ABISELECT(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 _ZTI7ee54260[];
+extern void _ZN7ee542603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee542603barEv,_ZTv0_n12_N7ee542603barEv)();
+extern void ABISELECT(_ZThn16_N7ee542603barEv,_ZThn8_N7ee542603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee54260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54260[0]),
+ (VTBL_ENTRY)&_ZN7ee542603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee542603barEv,_ZTv0_n12_N7ee542603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54260[];
+static VTT_ENTRY vtt_ee54260[] = {
+ {&(_ZTV7ee54260[3]), 3,10},
+ {&(_ZTV7ee54260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54260[];
+extern VTBL_ENTRY _ZTV7ee54260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54260[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee542603barEv,_ZTv0_n12_N7ee542603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542603barEv,_ZThn8_N7ee542603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54260 = { "ee54260", // class name
+ bases_ee54260, 4,
+ &(vtc_ee54260[0]), // expected_vtbl_contents
+ &(vtt_ee54260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54260),2, //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 ee64260 : dd4260 {
+ int e;
+ virtual void foo(); // _ZN7ee642603fooEv
+ virtual void bar(); // _ZN7ee642603barEv
+ ~ee64260(); // tgen
+ ee64260(); // tgen
+};
+//SIG(1 ee64260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64260 ::foo(){vfunc_called(this, "_ZN7ee642603fooEv");}
+void ee64260 ::bar(){vfunc_called(this, "_ZN7ee642603barEv");}
+ee64260 ::~ee64260(){ note_dtor("ee64260", this);} // tgen
+ee64260 ::ee64260(){ note_ctor("ee64260", this);} // tgen
+
+static void Test_ee64260()
+{
+ extern Class_Descriptor cd_ee64260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64260, buf);
+ ee64260 *dp, &lv = *(dp=new (buf) ee64260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(8,4), "ee64260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), 0, "ee64260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), 0, "ee64260");
+ check_base_class_offset(lv, (dd4260*), 0, "ee64260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64260.e");
+ test_class_info(&lv, &cd_ee64260);
+ dp->~ee64260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64260(Test_ee64260, "ee64260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64260C1Ev();
+extern void _ZN7ee64260D1Ev();
+Name_Map name_map_ee64260[] = {
+ NSPAIR(_ZN7ee64260C1Ev),
+ NSPAIR(_ZN7ee64260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee64260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64260[];
+extern void _ZN7ee642603barEv();
+extern void _ZN7ee642603fooEv();
+static VTBL_ENTRY vtc_ee64260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64260[0]),
+ (VTBL_ENTRY)&_ZN7ee642603barEv,
+ (VTBL_ENTRY)&_ZN7ee642603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64260[];
+extern VTBL_ENTRY _ZTV7ee64260[];
+Class_Descriptor cd_ee64260 = { "ee64260", // class name
+ bases_ee64260, 4,
+ &(vtc_ee64260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64260),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 ee74260 : virtual dd4260 {
+ int e;
+ virtual void foo(); // _ZN7ee742603fooEv
+ virtual void bar(); // _ZN7ee742603barEv
+ ~ee74260(); // tgen
+ ee74260(); // tgen
+};
+//SIG(1 ee74260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74260 ::foo(){vfunc_called(this, "_ZN7ee742603fooEv");}
+void ee74260 ::bar(){vfunc_called(this, "_ZN7ee742603barEv");}
+ee74260 ::~ee74260(){ note_dtor("ee74260", this);} // tgen
+ee74260 ::ee74260(){ note_ctor("ee74260", this);} // tgen
+
+static void Test_ee74260()
+{
+ extern Class_Descriptor cd_ee74260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74260, buf);
+ ee74260 *dp, &lv = *(dp=new (buf) ee74260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd4260*), ABISELECT(24,12), "ee74260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd4260*), ABISELECT(16,8), "ee74260");
+ check_base_class_offset(lv, (cc260*)(dd4260*), ABISELECT(16,8), "ee74260");
+ check_base_class_offset(lv, (dd4260*), ABISELECT(16,8), "ee74260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74260.e");
+ test_class_info(&lv, &cd_ee74260);
+ dp->~ee74260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74260(Test_ee74260, "ee74260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74260C1Ev();
+extern void _ZN7ee74260D1Ev();
+Name_Map name_map_ee74260[] = {
+ NSPAIR(_ZN7ee74260C1Ev),
+ NSPAIR(_ZN7ee74260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd4260;
+extern VTBL_ENTRY _ZTI6dd4260[];
+extern VTBL_ENTRY _ZTV6dd4260[];
+static Base_Class bases_ee74260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4260, ABISELECT(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 _ZTI7ee74260[];
+extern void _ZN7ee742603fooEv();
+extern void _ZN7ee742603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742603barEv,_ZTv0_n12_N7ee742603barEv)();
+extern void ABISELECT(_ZThn16_N7ee742603barEv,_ZThn8_N7ee742603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742603fooEv,_ZTv0_n16_N7ee742603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742603fooEv,_ZThn8_N7ee742603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74260[0]),
+ (VTBL_ENTRY)&_ZN7ee742603fooEv,
+ (VTBL_ENTRY)&_ZN7ee742603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742603barEv,_ZTv0_n12_N7ee742603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742603fooEv,_ZTv0_n16_N7ee742603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74260[];
+static VTT_ENTRY vtt_ee74260[] = {
+ {&(_ZTV7ee74260[3]), 3,11},
+ {&(_ZTV7ee74260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74260[];
+extern VTBL_ENTRY _ZTV7ee74260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74260[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742603fooEv,_ZTv0_n16_N7ee742603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742603fooEv,_ZThn8_N7ee742603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742603barEv,_ZTv0_n12_N7ee742603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742603barEv,_ZThn8_N7ee742603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74260 = { "ee74260", // class name
+ bases_ee74260, 4,
+ &(vtc_ee74260[0]), // expected_vtbl_contents
+ &(vtt_ee74260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74260),2, //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 dd5260 : virtual cc260 {
+ int d;
+ virtual void bar(); // _ZN6dd52603barEv
+ ~dd5260(); // tgen
+ dd5260(); // tgen
+};
+//SIG(-1 dd5260) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5260 ::bar(){vfunc_called(this, "_ZN6dd52603barEv");}
+dd5260 ::~dd5260(){ note_dtor("dd5260", this);} // tgen
+dd5260 ::dd5260(){ note_ctor("dd5260", this);} // tgen
+
+static void Test_dd5260()
+{
+ extern Class_Descriptor cd_dd5260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5260, buf);
+ dd5260 *dp, &lv = *(dp=new (buf) dd5260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,12), "dd5260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,8), "dd5260");
+ check_base_class_offset(lv, (cc260*), ABISELECT(16,8), "dd5260");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5260.d");
+ test_class_info(&lv, &cd_dd5260);
+ dp->~dd5260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5260(Test_dd5260, "dd5260", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5260C1Ev();
+extern void _ZN6dd5260D1Ev();
+Name_Map name_map_dd5260[] = {
+ NSPAIR(_ZN6dd5260C1Ev),
+ NSPAIR(_ZN6dd5260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd5260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(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 _ZTI6dd5260[];
+extern void _ZN6dd52603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_dd5260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5260[];
+static VTT_ENTRY vtt_dd5260[] = {
+ {&(_ZTV6dd5260[3]), 3,10},
+ {&(_ZTV6dd5260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5260 = { "dd5260", // class name
+ bases_dd5260, 3,
+ &(vtc_dd5260[0]), // expected_vtbl_contents
+ &(vtt_dd5260[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5260),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05260 : dd5260 {
+ int e;
+ ~ee05260(); // tgen
+ ee05260(); // tgen
+};
+//SIG(1 ee05260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05260 ::~ee05260(){ note_dtor("ee05260", this);} // tgen
+ee05260 ::ee05260(){ note_ctor("ee05260", this);} // tgen
+
+static void Test_ee05260()
+{
+ extern Class_Descriptor cd_ee05260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05260, buf);
+ ee05260 *dp, &lv = *(dp=new (buf) ee05260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee05260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee05260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(16,12), "ee05260");
+ check_base_class_offset(lv, (dd5260*), 0, "ee05260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05260.e");
+ test_class_info(&lv, &cd_ee05260);
+ dp->~ee05260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05260(Test_ee05260, "ee05260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05260C1Ev();
+extern void _ZN7ee05260D1Ev();
+Name_Map name_map_ee05260[] = {
+ NSPAIR(_ZN7ee05260C1Ev),
+ NSPAIR(_ZN7ee05260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee05260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05260[];
+extern void _ZN6dd52603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee05260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee05260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee05260[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee05260[] = {
+ {&(_ZTV7ee05260[3]), 3,10},
+ {&(_tg__ZTV6dd5260__7ee05260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee05260[4]), 4,6},
+ {&(_ZTV7ee05260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05260[];
+extern VTBL_ENTRY _ZTV7ee05260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05260[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05260 = { "ee05260", // class name
+ bases_ee05260, 4,
+ &(vtc_ee05260[0]), // expected_vtbl_contents
+ &(vtt_ee05260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05260),4, //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 ee15260 : virtual dd5260 {
+ int e;
+ ~ee15260(); // tgen
+ ee15260(); // tgen
+};
+//SIG(1 ee15260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15260 ::~ee15260(){ note_dtor("ee15260", this);} // tgen
+ee15260 ::ee15260(){ note_ctor("ee15260", this);} // tgen
+
+static void Test_ee15260()
+{
+ extern Class_Descriptor cd_ee15260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15260, buf);
+ ee15260 *dp, &lv = *(dp=new (buf) ee15260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee15260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee15260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(32,16), "ee15260");
+ check_base_class_offset(lv, (dd5260*), ABISELECT(16,8), "ee15260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15260.e");
+ test_class_info(&lv, &cd_ee15260);
+ dp->~ee15260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15260(Test_ee15260, "ee15260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15260C1Ev();
+extern void _ZN7ee15260D1Ev();
+Name_Map name_map_ee15260[] = {
+ NSPAIR(_ZN7ee15260C1Ev),
+ NSPAIR(_ZN7ee15260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee15260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, ABISELECT(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 _ZTI7ee15260[];
+extern void _ZN6dd52603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee15260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15260[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee15260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee15260[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee15260[] = {
+ {&(_ZTV7ee15260[4]), 4,15},
+ {&(_ZTV7ee15260[8]), 8,15},
+ {&(_ZTV7ee15260[13]), 13,15},
+ {&(_tg__ZTV6dd5260__7ee15260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee15260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15260[];
+extern VTBL_ENTRY _ZTV7ee15260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15260[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15260 = { "ee15260", // class name
+ bases_ee15260, 4,
+ &(vtc_ee15260[0]), // expected_vtbl_contents
+ &(vtt_ee15260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15260),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15260),5, //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 ee25260 : dd5260 {
+ int e;
+ virtual void foo(); // _ZN7ee252603fooEv
+ ~ee25260(); // tgen
+ ee25260(); // tgen
+};
+//SIG(1 ee25260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25260 ::foo(){vfunc_called(this, "_ZN7ee252603fooEv");}
+ee25260 ::~ee25260(){ note_dtor("ee25260", this);} // tgen
+ee25260 ::ee25260(){ note_ctor("ee25260", this);} // tgen
+
+static void Test_ee25260()
+{
+ extern Class_Descriptor cd_ee25260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25260, buf);
+ ee25260 *dp, &lv = *(dp=new (buf) ee25260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee25260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee25260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(16,12), "ee25260");
+ check_base_class_offset(lv, (dd5260*), 0, "ee25260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25260.e");
+ test_class_info(&lv, &cd_ee25260);
+ dp->~ee25260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25260(Test_ee25260, "ee25260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25260C1Ev();
+extern void _ZN7ee25260D1Ev();
+Name_Map name_map_ee25260[] = {
+ NSPAIR(_ZN7ee25260C1Ev),
+ NSPAIR(_ZN7ee25260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee25260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25260[];
+extern void _ZN6dd52603barEv();
+extern void _ZN7ee252603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee252603fooEv,_ZTv0_n16_N7ee252603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252603fooEv,_ZThn12_N7ee252603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+ (VTBL_ENTRY)&_ZN7ee252603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee252603fooEv,_ZTv0_n16_N7ee252603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee25260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee25260[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee25260[] = {
+ {&(_ZTV7ee25260[3]), 3,11},
+ {&(_tg__ZTV6dd5260__7ee25260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee25260[4]), 4,6},
+ {&(_ZTV7ee25260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25260[];
+extern VTBL_ENTRY _ZTV7ee25260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25260[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee252603fooEv,_ZTv0_n16_N7ee252603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252603fooEv,_ZThn12_N7ee252603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25260 = { "ee25260", // class name
+ bases_ee25260, 4,
+ &(vtc_ee25260[0]), // expected_vtbl_contents
+ &(vtt_ee25260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25260),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35260 : virtual dd5260 {
+ int e;
+ virtual void foo(); // _ZN7ee352603fooEv
+ ~ee35260(); // tgen
+ ee35260(); // tgen
+};
+//SIG(1 ee35260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35260 ::foo(){vfunc_called(this, "_ZN7ee352603fooEv");}
+ee35260 ::~ee35260(){ note_dtor("ee35260", this);} // tgen
+ee35260 ::ee35260(){ note_ctor("ee35260", this);} // tgen
+
+static void Test_ee35260()
+{
+ extern Class_Descriptor cd_ee35260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35260, buf);
+ ee35260 *dp, &lv = *(dp=new (buf) ee35260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee35260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee35260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(32,16), "ee35260");
+ check_base_class_offset(lv, (dd5260*), ABISELECT(16,8), "ee35260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35260.e");
+ test_class_info(&lv, &cd_ee35260);
+ dp->~ee35260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35260(Test_ee35260, "ee35260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35260C1Ev();
+extern void _ZN7ee35260D1Ev();
+Name_Map name_map_ee35260[] = {
+ NSPAIR(_ZN7ee35260C1Ev),
+ NSPAIR(_ZN7ee35260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee35260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, ABISELECT(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 _ZTI7ee35260[];
+extern void _ZN7ee352603fooEv();
+extern void _ZN6dd52603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee352603fooEv,_ZTv0_n16_N7ee352603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352603fooEv,_ZThn16_N7ee352603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35260[0]),
+ (VTBL_ENTRY)&_ZN7ee352603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee352603fooEv,_ZTv0_n16_N7ee352603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee35260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee35260[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee35260[] = {
+ {&(_ZTV7ee35260[4]), 4,16},
+ {&(_ZTV7ee35260[9]), 9,16},
+ {&(_ZTV7ee35260[14]), 14,16},
+ {&(_tg__ZTV6dd5260__7ee35260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee35260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35260[];
+extern VTBL_ENTRY _ZTV7ee35260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35260[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee352603fooEv,_ZTv0_n16_N7ee352603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352603fooEv,_ZThn16_N7ee352603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35260 = { "ee35260", // class name
+ bases_ee35260, 4,
+ &(vtc_ee35260[0]), // expected_vtbl_contents
+ &(vtt_ee35260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35260),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35260),5, //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 ee45260 : dd5260 {
+ int e;
+ virtual void bar(); // _ZN7ee452603barEv
+ ~ee45260(); // tgen
+ ee45260(); // tgen
+};
+//SIG(1 ee45260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45260 ::bar(){vfunc_called(this, "_ZN7ee452603barEv");}
+ee45260 ::~ee45260(){ note_dtor("ee45260", this);} // tgen
+ee45260 ::ee45260(){ note_ctor("ee45260", this);} // tgen
+
+static void Test_ee45260()
+{
+ extern Class_Descriptor cd_ee45260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45260, buf);
+ ee45260 *dp, &lv = *(dp=new (buf) ee45260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee45260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee45260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(16,12), "ee45260");
+ check_base_class_offset(lv, (dd5260*), 0, "ee45260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45260.e");
+ test_class_info(&lv, &cd_ee45260);
+ dp->~ee45260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45260(Test_ee45260, "ee45260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45260C1Ev();
+extern void _ZN7ee45260D1Ev();
+Name_Map name_map_ee45260[] = {
+ NSPAIR(_ZN7ee45260C1Ev),
+ NSPAIR(_ZN7ee45260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee45260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45260[];
+extern void _ZN7ee452603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee452603barEv,_ZTv0_n12_N7ee452603barEv)();
+extern void ABISELECT(_ZThn16_N7ee452603barEv,_ZThn12_N7ee452603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee45260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45260[0]),
+ (VTBL_ENTRY)&_ZN7ee452603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee452603barEv,_ZTv0_n12_N7ee452603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee45260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee45260[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee45260[] = {
+ {&(_ZTV7ee45260[3]), 3,10},
+ {&(_tg__ZTV6dd5260__7ee45260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee45260[4]), 4,6},
+ {&(_ZTV7ee45260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45260[];
+extern VTBL_ENTRY _ZTV7ee45260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45260[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee452603barEv,_ZTv0_n12_N7ee452603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452603barEv,_ZThn12_N7ee452603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45260 = { "ee45260", // class name
+ bases_ee45260, 4,
+ &(vtc_ee45260[0]), // expected_vtbl_contents
+ &(vtt_ee45260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45260),4, //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 ee55260 : virtual dd5260 {
+ int e;
+ virtual void bar(); // _ZN7ee552603barEv
+ ~ee55260(); // tgen
+ ee55260(); // tgen
+};
+//SIG(1 ee55260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55260 ::bar(){vfunc_called(this, "_ZN7ee552603barEv");}
+ee55260 ::~ee55260(){ note_dtor("ee55260", this);} // tgen
+ee55260 ::ee55260(){ note_ctor("ee55260", this);} // tgen
+
+static void Test_ee55260()
+{
+ extern Class_Descriptor cd_ee55260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55260, buf);
+ ee55260 *dp, &lv = *(dp=new (buf) ee55260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee55260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee55260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(32,16), "ee55260");
+ check_base_class_offset(lv, (dd5260*), ABISELECT(16,8), "ee55260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55260.e");
+ test_class_info(&lv, &cd_ee55260);
+ dp->~ee55260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55260(Test_ee55260, "ee55260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55260C1Ev();
+extern void _ZN7ee55260D1Ev();
+Name_Map name_map_ee55260[] = {
+ NSPAIR(_ZN7ee55260C1Ev),
+ NSPAIR(_ZN7ee55260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee55260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, ABISELECT(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 _ZTI7ee55260[];
+extern void _ZN7ee552603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552603barEv,_ZTv0_n16_N7ee552603barEv)();
+extern void ABISELECT(_ZThn16_N7ee552603barEv,_ZThn8_N7ee552603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee552603barEv,_ZTv0_n12_N7ee552603barEv)();
+extern void ABISELECT(_ZThn32_N7ee552603barEv,_ZThn16_N7ee552603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY vtc_ee55260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55260[0]),
+ (VTBL_ENTRY)&_ZN7ee552603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552603barEv,_ZTv0_n16_N7ee552603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee552603barEv,_ZTv0_n12_N7ee552603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee55260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee55260[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee55260[] = {
+ {&(_ZTV7ee55260[4]), 4,16},
+ {&(_ZTV7ee55260[9]), 9,16},
+ {&(_ZTV7ee55260[14]), 14,16},
+ {&(_tg__ZTV6dd5260__7ee55260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee55260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55260[];
+extern VTBL_ENTRY _ZTV7ee55260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55260[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee552603barEv,_ZTv0_n12_N7ee552603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552603barEv,_ZThn16_N7ee552603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552603barEv,_ZTv0_n16_N7ee552603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552603barEv,_ZThn8_N7ee552603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55260 = { "ee55260", // class name
+ bases_ee55260, 4,
+ &(vtc_ee55260[0]), // expected_vtbl_contents
+ &(vtt_ee55260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55260),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55260),5, //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 ee65260 : dd5260 {
+ int e;
+ virtual void foo(); // _ZN7ee652603fooEv
+ virtual void bar(); // _ZN7ee652603barEv
+ ~ee65260(); // tgen
+ ee65260(); // tgen
+};
+//SIG(1 ee65260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65260 ::foo(){vfunc_called(this, "_ZN7ee652603fooEv");}
+void ee65260 ::bar(){vfunc_called(this, "_ZN7ee652603barEv");}
+ee65260 ::~ee65260(){ note_dtor("ee65260", this);} // tgen
+ee65260 ::ee65260(){ note_ctor("ee65260", this);} // tgen
+
+static void Test_ee65260()
+{
+ extern Class_Descriptor cd_ee65260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65260, buf);
+ ee65260 *dp, &lv = *(dp=new (buf) ee65260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee65260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee65260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(16,12), "ee65260");
+ check_base_class_offset(lv, (dd5260*), 0, "ee65260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65260.e");
+ test_class_info(&lv, &cd_ee65260);
+ dp->~ee65260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65260(Test_ee65260, "ee65260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65260C1Ev();
+extern void _ZN7ee65260D1Ev();
+Name_Map name_map_ee65260[] = {
+ NSPAIR(_ZN7ee65260C1Ev),
+ NSPAIR(_ZN7ee65260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee65260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65260[];
+extern void _ZN7ee652603barEv();
+extern void _ZN7ee652603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652603barEv,_ZTv0_n12_N7ee652603barEv)();
+extern void ABISELECT(_ZThn16_N7ee652603barEv,_ZThn12_N7ee652603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652603fooEv,_ZTv0_n16_N7ee652603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652603fooEv,_ZThn12_N7ee652603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65260[0]),
+ (VTBL_ENTRY)&_ZN7ee652603barEv,
+ (VTBL_ENTRY)&_ZN7ee652603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652603barEv,_ZTv0_n12_N7ee652603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652603fooEv,_ZTv0_n16_N7ee652603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee65260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee65260[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee65260[] = {
+ {&(_ZTV7ee65260[3]), 3,11},
+ {&(_tg__ZTV6dd5260__7ee65260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee65260[4]), 4,6},
+ {&(_ZTV7ee65260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65260[];
+extern VTBL_ENTRY _ZTV7ee65260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65260[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn12_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652603fooEv,_ZTv0_n16_N7ee652603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652603fooEv,_ZThn12_N7ee652603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652603barEv,_ZTv0_n12_N7ee652603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652603barEv,_ZThn12_N7ee652603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65260 = { "ee65260", // class name
+ bases_ee65260, 4,
+ &(vtc_ee65260[0]), // expected_vtbl_contents
+ &(vtt_ee65260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65260),4, //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 ee75260 : virtual dd5260 {
+ int e;
+ virtual void foo(); // _ZN7ee752603fooEv
+ virtual void bar(); // _ZN7ee752603barEv
+ ~ee75260(); // tgen
+ ee75260(); // tgen
+};
+//SIG(1 ee75260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75260 ::foo(){vfunc_called(this, "_ZN7ee752603fooEv");}
+void ee75260 ::bar(){vfunc_called(this, "_ZN7ee752603barEv");}
+ee75260 ::~ee75260(){ note_dtor("ee75260", this);} // tgen
+ee75260 ::ee75260(){ note_ctor("ee75260", this);} // tgen
+
+static void Test_ee75260()
+{
+ extern Class_Descriptor cd_ee75260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75260, buf);
+ ee75260 *dp, &lv = *(dp=new (buf) ee75260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee75260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee75260");
+ check_base_class_offset(lv, (cc260*)(dd5260*), ABISELECT(32,16), "ee75260");
+ check_base_class_offset(lv, (dd5260*), ABISELECT(16,8), "ee75260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75260.e");
+ test_class_info(&lv, &cd_ee75260);
+ dp->~ee75260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75260(Test_ee75260, "ee75260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75260C1Ev();
+extern void _ZN7ee75260D1Ev();
+Name_Map name_map_ee75260[] = {
+ NSPAIR(_ZN7ee75260C1Ev),
+ NSPAIR(_ZN7ee75260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd5260;
+extern VTBL_ENTRY _ZTI6dd5260[];
+extern VTBL_ENTRY _ZTV6dd5260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5260[];
+static Base_Class bases_ee75260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd5260, 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 _ZTI7ee75260[];
+extern void _ZN7ee752603fooEv();
+extern void _ZN7ee752603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752603barEv,_ZTv0_n16_N7ee752603barEv)();
+extern void ABISELECT(_ZThn16_N7ee752603barEv,_ZThn8_N7ee752603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752603barEv,_ZTv0_n12_N7ee752603barEv)();
+extern void ABISELECT(_ZThn32_N7ee752603barEv,_ZThn16_N7ee752603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752603fooEv,_ZTv0_n16_N7ee752603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752603fooEv,_ZThn16_N7ee752603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75260[0]),
+ (VTBL_ENTRY)&_ZN7ee752603fooEv,
+ (VTBL_ENTRY)&_ZN7ee752603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752603barEv,_ZTv0_n16_N7ee752603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752603barEv,_ZTv0_n12_N7ee752603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752603fooEv,_ZTv0_n16_N7ee752603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75260[];
+extern void _ZN6dd52603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5260__7ee75260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&_ZN6dd52603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv)();
+extern void ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv)() __attribute__((weak));
+extern void _ZN5cc2603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc260__6dd5260__7ee75260[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv),
+ (VTBL_ENTRY)&_ZN5cc2603fooEv,
+};
+static VTT_ENTRY vtt_ee75260[] = {
+ {&(_ZTV7ee75260[4]), 4,17},
+ {&(_ZTV7ee75260[10]), 10,17},
+ {&(_ZTV7ee75260[15]), 15,17},
+ {&(_tg__ZTV6dd5260__7ee75260[3]), 3,4},
+ {&(_tg__ZTV5cc260__6dd5260__7ee75260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75260[];
+extern VTBL_ENTRY _ZTV7ee75260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75260[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd52603barEv,_ZTv0_n12_N6dd52603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52603barEv,_ZThn8_N6dd52603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752603fooEv,_ZTv0_n16_N7ee752603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752603fooEv,_ZThn16_N7ee752603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752603barEv,_ZTv0_n12_N7ee752603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752603barEv,_ZThn16_N7ee752603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752603barEv,_ZTv0_n16_N7ee752603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752603barEv,_ZThn8_N7ee752603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75260 = { "ee75260", // class name
+ bases_ee75260, 4,
+ &(vtc_ee75260[0]), // expected_vtbl_contents
+ &(vtt_ee75260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75260),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75260),5, //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 dd6260 : cc260 {
+ int d;
+ virtual void bar(); // _ZN6dd62603barEv
+ virtual void foo(); // _ZN6dd62603fooEv
+ ~dd6260(); // tgen
+ dd6260(); // tgen
+};
+//SIG(-1 dd6260) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6260 ::bar(){vfunc_called(this, "_ZN6dd62603barEv");}
+void dd6260 ::foo(){vfunc_called(this, "_ZN6dd62603fooEv");}
+dd6260 ::~dd6260(){ note_dtor("dd6260", this);} // tgen
+dd6260 ::dd6260(){ note_ctor("dd6260", this);} // tgen
+
+static void Test_dd6260()
+{
+ extern Class_Descriptor cd_dd6260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6260, buf);
+ dd6260 *dp, &lv = *(dp=new (buf) dd6260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(8,4), "dd6260");
+ check_base_class_offset(lv, (bb60*)(cc260*), 0, "dd6260");
+ check_base_class_offset(lv, (cc260*), 0, "dd6260");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6260.d");
+ test_class_info(&lv, &cd_dd6260);
+ dp->~dd6260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6260(Test_dd6260, "dd6260", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6260C1Ev();
+extern void _ZN6dd6260D1Ev();
+Name_Map name_map_dd6260[] = {
+ NSPAIR(_ZN6dd6260C1Ev),
+ NSPAIR(_ZN6dd6260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd6260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6260[];
+extern void _ZN6dd62603barEv();
+extern void _ZN6dd62603fooEv();
+static VTBL_ENTRY vtc_dd6260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6260[0]),
+ (VTBL_ENTRY)&_ZN6dd62603barEv,
+ (VTBL_ENTRY)&_ZN6dd62603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+Class_Descriptor cd_dd6260 = { "dd6260", // class name
+ bases_dd6260, 3,
+ &(vtc_dd6260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6260),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 ee06260 : dd6260 {
+ int e;
+ ~ee06260(); // tgen
+ ee06260(); // tgen
+};
+//SIG(1 ee06260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06260 ::~ee06260(){ note_dtor("ee06260", this);} // tgen
+ee06260 ::ee06260(){ note_ctor("ee06260", this);} // tgen
+
+static void Test_ee06260()
+{
+ extern Class_Descriptor cd_ee06260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06260, buf);
+ ee06260 *dp, &lv = *(dp=new (buf) ee06260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(8,4), "ee06260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), 0, "ee06260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), 0, "ee06260");
+ check_base_class_offset(lv, (dd6260*), 0, "ee06260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06260.e");
+ test_class_info(&lv, &cd_ee06260);
+ dp->~ee06260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06260(Test_ee06260, "ee06260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06260C1Ev();
+extern void _ZN7ee06260D1Ev();
+Name_Map name_map_ee06260[] = {
+ NSPAIR(_ZN7ee06260C1Ev),
+ NSPAIR(_ZN7ee06260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee06260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, 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 _ZTI7ee06260[];
+extern void _ZN6dd62603barEv();
+extern void _ZN6dd62603fooEv();
+static VTBL_ENTRY vtc_ee06260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06260[0]),
+ (VTBL_ENTRY)&_ZN6dd62603barEv,
+ (VTBL_ENTRY)&_ZN6dd62603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06260[];
+extern VTBL_ENTRY _ZTV7ee06260[];
+Class_Descriptor cd_ee06260 = { "ee06260", // class name
+ bases_ee06260, 4,
+ &(vtc_ee06260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06260),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 ee16260 : virtual dd6260 {
+ int e;
+ ~ee16260(); // tgen
+ ee16260(); // tgen
+};
+//SIG(1 ee16260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16260 ::~ee16260(){ note_dtor("ee16260", this);} // tgen
+ee16260 ::ee16260(){ note_ctor("ee16260", this);} // tgen
+
+static void Test_ee16260()
+{
+ extern Class_Descriptor cd_ee16260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16260, buf);
+ ee16260 *dp, &lv = *(dp=new (buf) ee16260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(24,12), "ee16260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), ABISELECT(16,8), "ee16260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), ABISELECT(16,8), "ee16260");
+ check_base_class_offset(lv, (dd6260*), ABISELECT(16,8), "ee16260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16260.e");
+ test_class_info(&lv, &cd_ee16260);
+ dp->~ee16260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16260(Test_ee16260, "ee16260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16260C1Ev();
+extern void _ZN7ee16260D1Ev();
+Name_Map name_map_ee16260[] = {
+ NSPAIR(_ZN7ee16260C1Ev),
+ NSPAIR(_ZN7ee16260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee16260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, 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 _ZTI7ee16260[];
+extern void _ZN6dd62603barEv();
+extern void _ZN6dd62603fooEv();
+static VTBL_ENTRY vtc_ee16260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16260[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16260[0]),
+ (VTBL_ENTRY)&_ZN6dd62603barEv,
+ (VTBL_ENTRY)&_ZN6dd62603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16260[];
+static VTT_ENTRY vtt_ee16260[] = {
+ {&(_ZTV7ee16260[3]), 3,9},
+ {&(_ZTV7ee16260[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16260[];
+extern VTBL_ENTRY _ZTV7ee16260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16260[];
+Class_Descriptor cd_ee16260 = { "ee16260", // class name
+ bases_ee16260, 4,
+ &(vtc_ee16260[0]), // expected_vtbl_contents
+ &(vtt_ee16260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16260),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16260),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 ee26260 : dd6260 {
+ int e;
+ virtual void foo(); // _ZN7ee262603fooEv
+ ~ee26260(); // tgen
+ ee26260(); // tgen
+};
+//SIG(1 ee26260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26260 ::foo(){vfunc_called(this, "_ZN7ee262603fooEv");}
+ee26260 ::~ee26260(){ note_dtor("ee26260", this);} // tgen
+ee26260 ::ee26260(){ note_ctor("ee26260", this);} // tgen
+
+static void Test_ee26260()
+{
+ extern Class_Descriptor cd_ee26260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26260, buf);
+ ee26260 *dp, &lv = *(dp=new (buf) ee26260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(8,4), "ee26260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), 0, "ee26260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), 0, "ee26260");
+ check_base_class_offset(lv, (dd6260*), 0, "ee26260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26260.e");
+ test_class_info(&lv, &cd_ee26260);
+ dp->~ee26260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26260(Test_ee26260, "ee26260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26260C1Ev();
+extern void _ZN7ee26260D1Ev();
+Name_Map name_map_ee26260[] = {
+ NSPAIR(_ZN7ee26260C1Ev),
+ NSPAIR(_ZN7ee26260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee26260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26260[];
+extern void _ZN6dd62603barEv();
+extern void _ZN7ee262603fooEv();
+static VTBL_ENTRY vtc_ee26260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26260[0]),
+ (VTBL_ENTRY)&_ZN6dd62603barEv,
+ (VTBL_ENTRY)&_ZN7ee262603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26260[];
+extern VTBL_ENTRY _ZTV7ee26260[];
+Class_Descriptor cd_ee26260 = { "ee26260", // class name
+ bases_ee26260, 4,
+ &(vtc_ee26260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26260),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 ee36260 : virtual dd6260 {
+ int e;
+ virtual void foo(); // _ZN7ee362603fooEv
+ ~ee36260(); // tgen
+ ee36260(); // tgen
+};
+//SIG(1 ee36260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36260 ::foo(){vfunc_called(this, "_ZN7ee362603fooEv");}
+ee36260 ::~ee36260(){ note_dtor("ee36260", this);} // tgen
+ee36260 ::ee36260(){ note_ctor("ee36260", this);} // tgen
+
+static void Test_ee36260()
+{
+ extern Class_Descriptor cd_ee36260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36260, buf);
+ ee36260 *dp, &lv = *(dp=new (buf) ee36260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(24,12), "ee36260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), ABISELECT(16,8), "ee36260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), ABISELECT(16,8), "ee36260");
+ check_base_class_offset(lv, (dd6260*), ABISELECT(16,8), "ee36260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36260.e");
+ test_class_info(&lv, &cd_ee36260);
+ dp->~ee36260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36260(Test_ee36260, "ee36260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36260C1Ev();
+extern void _ZN7ee36260D1Ev();
+Name_Map name_map_ee36260[] = {
+ NSPAIR(_ZN7ee36260C1Ev),
+ NSPAIR(_ZN7ee36260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee36260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, ABISELECT(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 _ZTI7ee36260[];
+extern void _ZN7ee362603fooEv();
+extern void _ZN6dd62603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee362603fooEv,_ZTv0_n16_N7ee362603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362603fooEv,_ZThn8_N7ee362603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36260[0]),
+ (VTBL_ENTRY)&_ZN7ee362603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36260[0]),
+ (VTBL_ENTRY)&_ZN6dd62603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee362603fooEv,_ZTv0_n16_N7ee362603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36260[];
+static VTT_ENTRY vtt_ee36260[] = {
+ {&(_ZTV7ee36260[3]), 3,10},
+ {&(_ZTV7ee36260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36260[];
+extern VTBL_ENTRY _ZTV7ee36260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36260[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee362603fooEv,_ZTv0_n16_N7ee362603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362603fooEv,_ZThn8_N7ee362603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36260 = { "ee36260", // class name
+ bases_ee36260, 4,
+ &(vtc_ee36260[0]), // expected_vtbl_contents
+ &(vtt_ee36260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36260),2, //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 ee46260 : dd6260 {
+ int e;
+ virtual void bar(); // _ZN7ee462603barEv
+ ~ee46260(); // tgen
+ ee46260(); // tgen
+};
+//SIG(1 ee46260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46260 ::bar(){vfunc_called(this, "_ZN7ee462603barEv");}
+ee46260 ::~ee46260(){ note_dtor("ee46260", this);} // tgen
+ee46260 ::ee46260(){ note_ctor("ee46260", this);} // tgen
+
+static void Test_ee46260()
+{
+ extern Class_Descriptor cd_ee46260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46260, buf);
+ ee46260 *dp, &lv = *(dp=new (buf) ee46260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(8,4), "ee46260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), 0, "ee46260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), 0, "ee46260");
+ check_base_class_offset(lv, (dd6260*), 0, "ee46260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46260.e");
+ test_class_info(&lv, &cd_ee46260);
+ dp->~ee46260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46260(Test_ee46260, "ee46260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46260C1Ev();
+extern void _ZN7ee46260D1Ev();
+Name_Map name_map_ee46260[] = {
+ NSPAIR(_ZN7ee46260C1Ev),
+ NSPAIR(_ZN7ee46260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee46260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46260[];
+extern void _ZN7ee462603barEv();
+extern void _ZN6dd62603fooEv();
+static VTBL_ENTRY vtc_ee46260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46260[0]),
+ (VTBL_ENTRY)&_ZN7ee462603barEv,
+ (VTBL_ENTRY)&_ZN6dd62603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46260[];
+extern VTBL_ENTRY _ZTV7ee46260[];
+Class_Descriptor cd_ee46260 = { "ee46260", // class name
+ bases_ee46260, 4,
+ &(vtc_ee46260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46260),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 ee56260 : virtual dd6260 {
+ int e;
+ virtual void bar(); // _ZN7ee562603barEv
+ ~ee56260(); // tgen
+ ee56260(); // tgen
+};
+//SIG(1 ee56260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56260 ::bar(){vfunc_called(this, "_ZN7ee562603barEv");}
+ee56260 ::~ee56260(){ note_dtor("ee56260", this);} // tgen
+ee56260 ::ee56260(){ note_ctor("ee56260", this);} // tgen
+
+static void Test_ee56260()
+{
+ extern Class_Descriptor cd_ee56260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56260, buf);
+ ee56260 *dp, &lv = *(dp=new (buf) ee56260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(24,12), "ee56260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), ABISELECT(16,8), "ee56260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), ABISELECT(16,8), "ee56260");
+ check_base_class_offset(lv, (dd6260*), ABISELECT(16,8), "ee56260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56260.e");
+ test_class_info(&lv, &cd_ee56260);
+ dp->~ee56260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56260(Test_ee56260, "ee56260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56260C1Ev();
+extern void _ZN7ee56260D1Ev();
+Name_Map name_map_ee56260[] = {
+ NSPAIR(_ZN7ee56260C1Ev),
+ NSPAIR(_ZN7ee56260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee56260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, ABISELECT(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 _ZTI7ee56260[];
+extern void _ZN7ee562603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee562603barEv,_ZTv0_n12_N7ee562603barEv)();
+extern void ABISELECT(_ZThn16_N7ee562603barEv,_ZThn8_N7ee562603barEv)() __attribute__((weak));
+extern void _ZN6dd62603fooEv();
+static VTBL_ENTRY vtc_ee56260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56260[0]),
+ (VTBL_ENTRY)&_ZN7ee562603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee562603barEv,_ZTv0_n12_N7ee562603barEv),
+ (VTBL_ENTRY)&_ZN6dd62603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56260[];
+static VTT_ENTRY vtt_ee56260[] = {
+ {&(_ZTV7ee56260[3]), 3,10},
+ {&(_ZTV7ee56260[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56260[];
+extern VTBL_ENTRY _ZTV7ee56260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56260[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee562603barEv,_ZTv0_n12_N7ee562603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562603barEv,_ZThn8_N7ee562603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56260 = { "ee56260", // class name
+ bases_ee56260, 4,
+ &(vtc_ee56260[0]), // expected_vtbl_contents
+ &(vtt_ee56260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56260),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56260),2, //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 ee66260 : dd6260 {
+ int e;
+ virtual void foo(); // _ZN7ee662603fooEv
+ virtual void bar(); // _ZN7ee662603barEv
+ ~ee66260(); // tgen
+ ee66260(); // tgen
+};
+//SIG(1 ee66260) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66260 ::foo(){vfunc_called(this, "_ZN7ee662603fooEv");}
+void ee66260 ::bar(){vfunc_called(this, "_ZN7ee662603barEv");}
+ee66260 ::~ee66260(){ note_dtor("ee66260", this);} // tgen
+ee66260 ::ee66260(){ note_ctor("ee66260", this);} // tgen
+
+static void Test_ee66260()
+{
+ extern Class_Descriptor cd_ee66260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66260, buf);
+ ee66260 *dp, &lv = *(dp=new (buf) ee66260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(8,4), "ee66260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), 0, "ee66260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), 0, "ee66260");
+ check_base_class_offset(lv, (dd6260*), 0, "ee66260");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66260.e");
+ test_class_info(&lv, &cd_ee66260);
+ dp->~ee66260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66260(Test_ee66260, "ee66260", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66260C1Ev();
+extern void _ZN7ee66260D1Ev();
+Name_Map name_map_ee66260[] = {
+ NSPAIR(_ZN7ee66260C1Ev),
+ NSPAIR(_ZN7ee66260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee66260[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66260[];
+extern void _ZN7ee662603barEv();
+extern void _ZN7ee662603fooEv();
+static VTBL_ENTRY vtc_ee66260[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66260[0]),
+ (VTBL_ENTRY)&_ZN7ee662603barEv,
+ (VTBL_ENTRY)&_ZN7ee662603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66260[];
+extern VTBL_ENTRY _ZTV7ee66260[];
+Class_Descriptor cd_ee66260 = { "ee66260", // class name
+ bases_ee66260, 4,
+ &(vtc_ee66260[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66260),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 ee76260 : virtual dd6260 {
+ int e;
+ virtual void foo(); // _ZN7ee762603fooEv
+ virtual void bar(); // _ZN7ee762603barEv
+ ~ee76260(); // tgen
+ ee76260(); // tgen
+};
+//SIG(1 ee76260) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76260 ::foo(){vfunc_called(this, "_ZN7ee762603fooEv");}
+void ee76260 ::bar(){vfunc_called(this, "_ZN7ee762603barEv");}
+ee76260 ::~ee76260(){ note_dtor("ee76260", this);} // tgen
+ee76260 ::ee76260(){ note_ctor("ee76260", this);} // tgen
+
+static void Test_ee76260()
+{
+ extern Class_Descriptor cd_ee76260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76260, buf);
+ ee76260 *dp, &lv = *(dp=new (buf) ee76260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*)(dd6260*), ABISELECT(24,12), "ee76260");
+ check_base_class_offset(lv, (bb60*)(cc260*)(dd6260*), ABISELECT(16,8), "ee76260");
+ check_base_class_offset(lv, (cc260*)(dd6260*), ABISELECT(16,8), "ee76260");
+ check_base_class_offset(lv, (dd6260*), ABISELECT(16,8), "ee76260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76260.e");
+ test_class_info(&lv, &cd_ee76260);
+ dp->~ee76260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76260(Test_ee76260, "ee76260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76260C1Ev();
+extern void _ZN7ee76260D1Ev();
+Name_Map name_map_ee76260[] = {
+ NSPAIR(_ZN7ee76260C1Ev),
+ NSPAIR(_ZN7ee76260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd6260;
+extern VTBL_ENTRY _ZTI6dd6260[];
+extern VTBL_ENTRY _ZTV6dd6260[];
+static Base_Class bases_ee76260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6260, ABISELECT(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 _ZTI7ee76260[];
+extern void _ZN7ee762603fooEv();
+extern void _ZN7ee762603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762603barEv,_ZTv0_n12_N7ee762603barEv)();
+extern void ABISELECT(_ZThn16_N7ee762603barEv,_ZThn8_N7ee762603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762603fooEv,_ZTv0_n16_N7ee762603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762603fooEv,_ZThn8_N7ee762603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76260[0]),
+ (VTBL_ENTRY)&_ZN7ee762603fooEv,
+ (VTBL_ENTRY)&_ZN7ee762603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762603barEv,_ZTv0_n12_N7ee762603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762603fooEv,_ZTv0_n16_N7ee762603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76260[];
+static VTT_ENTRY vtt_ee76260[] = {
+ {&(_ZTV7ee76260[3]), 3,11},
+ {&(_ZTV7ee76260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76260[];
+extern VTBL_ENTRY _ZTV7ee76260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76260[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762603fooEv,_ZTv0_n16_N7ee762603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762603fooEv,_ZThn8_N7ee762603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762603barEv,_ZTv0_n12_N7ee762603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762603barEv,_ZThn8_N7ee762603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76260 = { "ee76260", // class name
+ bases_ee76260, 4,
+ &(vtc_ee76260[0]), // expected_vtbl_contents
+ &(vtt_ee76260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76260),2, //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 dd7260 : virtual cc260 {
+ int d;
+ virtual void bar(); // _ZN6dd72603barEv
+ virtual void foo(); // _ZN6dd72603fooEv
+ ~dd7260(); // tgen
+ dd7260(); // tgen
+};
+//SIG(-1 dd7260) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7260 ::bar(){vfunc_called(this, "_ZN6dd72603barEv");}
+void dd7260 ::foo(){vfunc_called(this, "_ZN6dd72603fooEv");}
+dd7260 ::~dd7260(){ note_dtor("dd7260", this);} // tgen
+dd7260 ::dd7260(){ note_ctor("dd7260", this);} // tgen
+
+static void Test_dd7260()
+{
+ extern Class_Descriptor cd_dd7260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7260, buf);
+ dd7260 *dp, &lv = *(dp=new (buf) dd7260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,12), "dd7260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,8), "dd7260");
+ check_base_class_offset(lv, (cc260*), ABISELECT(16,8), "dd7260");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7260.d");
+ test_class_info(&lv, &cd_dd7260);
+ dp->~dd7260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7260(Test_dd7260, "dd7260", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7260C1Ev();
+extern void _ZN6dd7260D1Ev();
+Name_Map name_map_dd7260[] = {
+ NSPAIR(_ZN6dd7260C1Ev),
+ NSPAIR(_ZN6dd7260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+static Base_Class bases_dd7260[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, ABISELECT(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 _ZTI6dd7260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7260[];
+static VTT_ENTRY vtt_dd7260[] = {
+ {&(_ZTV6dd7260[3]), 3,11},
+ {&(_ZTV6dd7260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7260 = { "dd7260", // class name
+ bases_dd7260, 3,
+ &(vtc_dd7260[0]), // expected_vtbl_contents
+ &(vtt_dd7260[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7260),2, //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 ee07260 : dd7260 {
+ int e;
+ ~ee07260(); // tgen
+ ee07260(); // tgen
+};
+//SIG(1 ee07260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07260 ::~ee07260(){ note_dtor("ee07260", this);} // tgen
+ee07260 ::ee07260(){ note_ctor("ee07260", this);} // tgen
+
+static void Test_ee07260()
+{
+ extern Class_Descriptor cd_ee07260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07260, buf);
+ ee07260 *dp, &lv = *(dp=new (buf) ee07260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee07260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee07260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(16,12), "ee07260");
+ check_base_class_offset(lv, (dd7260*), 0, "ee07260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07260.e");
+ test_class_info(&lv, &cd_ee07260);
+ dp->~ee07260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07260(Test_ee07260, "ee07260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07260C1Ev();
+extern void _ZN7ee07260D1Ev();
+Name_Map name_map_ee07260[] = {
+ NSPAIR(_ZN7ee07260C1Ev),
+ NSPAIR(_ZN7ee07260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee07260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee07260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee07260[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee07260[] = {
+ {&(_ZTV7ee07260[3]), 3,11},
+ {&(_tg__ZTV6dd7260__7ee07260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee07260[4]), 4,6},
+ {&(_ZTV7ee07260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07260[];
+extern VTBL_ENTRY _ZTV7ee07260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07260[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07260 = { "ee07260", // class name
+ bases_ee07260, 4,
+ &(vtc_ee07260[0]), // expected_vtbl_contents
+ &(vtt_ee07260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07260),4, //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 ee17260 : virtual dd7260 {
+ int e;
+ ~ee17260(); // tgen
+ ee17260(); // tgen
+};
+//SIG(1 ee17260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17260 ::~ee17260(){ note_dtor("ee17260", this);} // tgen
+ee17260 ::ee17260(){ note_ctor("ee17260", this);} // tgen
+
+static void Test_ee17260()
+{
+ extern Class_Descriptor cd_ee17260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17260, buf);
+ ee17260 *dp, &lv = *(dp=new (buf) ee17260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee17260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee17260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(32,16), "ee17260");
+ check_base_class_offset(lv, (dd7260*), ABISELECT(16,8), "ee17260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17260.e");
+ test_class_info(&lv, &cd_ee17260);
+ dp->~ee17260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17260(Test_ee17260, "ee17260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17260C1Ev();
+extern void _ZN7ee17260D1Ev();
+Name_Map name_map_ee17260[] = {
+ NSPAIR(_ZN7ee17260C1Ev),
+ NSPAIR(_ZN7ee17260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee17260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, 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 _ZTI7ee17260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17260[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee17260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee17260[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee17260[] = {
+ {&(_ZTV7ee17260[4]), 4,17},
+ {&(_ZTV7ee17260[9]), 9,17},
+ {&(_ZTV7ee17260[15]), 15,17},
+ {&(_tg__ZTV6dd7260__7ee17260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee17260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17260[];
+extern VTBL_ENTRY _ZTV7ee17260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17260[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17260 = { "ee17260", // class name
+ bases_ee17260, 4,
+ &(vtc_ee17260[0]), // expected_vtbl_contents
+ &(vtt_ee17260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17260),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17260),5, //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 ee27260 : dd7260 {
+ int e;
+ virtual void foo(); // _ZN7ee272603fooEv
+ ~ee27260(); // tgen
+ ee27260(); // tgen
+};
+//SIG(1 ee27260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27260 ::foo(){vfunc_called(this, "_ZN7ee272603fooEv");}
+ee27260 ::~ee27260(){ note_dtor("ee27260", this);} // tgen
+ee27260 ::ee27260(){ note_ctor("ee27260", this);} // tgen
+
+static void Test_ee27260()
+{
+ extern Class_Descriptor cd_ee27260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27260, buf);
+ ee27260 *dp, &lv = *(dp=new (buf) ee27260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee27260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee27260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(16,12), "ee27260");
+ check_base_class_offset(lv, (dd7260*), 0, "ee27260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27260.e");
+ test_class_info(&lv, &cd_ee27260);
+ dp->~ee27260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27260(Test_ee27260, "ee27260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27260C1Ev();
+extern void _ZN7ee27260D1Ev();
+Name_Map name_map_ee27260[] = {
+ NSPAIR(_ZN7ee27260C1Ev),
+ NSPAIR(_ZN7ee27260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee27260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN7ee272603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee272603fooEv,_ZTv0_n16_N7ee272603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272603fooEv,_ZThn12_N7ee272603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN7ee272603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee272603fooEv,_ZTv0_n16_N7ee272603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee27260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee27260[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee27260[] = {
+ {&(_ZTV7ee27260[3]), 3,11},
+ {&(_tg__ZTV6dd7260__7ee27260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee27260[4]), 4,6},
+ {&(_ZTV7ee27260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27260[];
+extern VTBL_ENTRY _ZTV7ee27260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27260[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee272603fooEv,_ZTv0_n16_N7ee272603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272603fooEv,_ZThn12_N7ee272603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27260 = { "ee27260", // class name
+ bases_ee27260, 4,
+ &(vtc_ee27260[0]), // expected_vtbl_contents
+ &(vtt_ee27260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27260),4, //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 ee37260 : virtual dd7260 {
+ int e;
+ virtual void foo(); // _ZN7ee372603fooEv
+ ~ee37260(); // tgen
+ ee37260(); // tgen
+};
+//SIG(1 ee37260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37260 ::foo(){vfunc_called(this, "_ZN7ee372603fooEv");}
+ee37260 ::~ee37260(){ note_dtor("ee37260", this);} // tgen
+ee37260 ::ee37260(){ note_ctor("ee37260", this);} // tgen
+
+static void Test_ee37260()
+{
+ extern Class_Descriptor cd_ee37260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37260, buf);
+ ee37260 *dp, &lv = *(dp=new (buf) ee37260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee37260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee37260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(32,16), "ee37260");
+ check_base_class_offset(lv, (dd7260*), ABISELECT(16,8), "ee37260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37260.e");
+ test_class_info(&lv, &cd_ee37260);
+ dp->~ee37260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37260(Test_ee37260, "ee37260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37260C1Ev();
+extern void _ZN7ee37260D1Ev();
+Name_Map name_map_ee37260[] = {
+ NSPAIR(_ZN7ee37260C1Ev),
+ NSPAIR(_ZN7ee37260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee37260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, ABISELECT(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 _ZTI7ee37260[];
+extern void _ZN7ee372603fooEv();
+extern void _ZN6dd72603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372603fooEv,_ZTv0_n20_N7ee372603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372603fooEv,_ZThn8_N7ee372603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee372603fooEv,_ZTv0_n16_N7ee372603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372603fooEv,_ZThn16_N7ee372603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37260[0]),
+ (VTBL_ENTRY)&_ZN7ee372603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372603fooEv,_ZTv0_n20_N7ee372603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee372603fooEv,_ZTv0_n16_N7ee372603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee37260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee37260[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee37260[] = {
+ {&(_ZTV7ee37260[4]), 4,18},
+ {&(_ZTV7ee37260[10]), 10,18},
+ {&(_ZTV7ee37260[16]), 16,18},
+ {&(_tg__ZTV6dd7260__7ee37260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee37260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37260[];
+extern VTBL_ENTRY _ZTV7ee37260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37260[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee372603fooEv,_ZTv0_n16_N7ee372603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372603fooEv,_ZThn16_N7ee372603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372603fooEv,_ZTv0_n20_N7ee372603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372603fooEv,_ZThn8_N7ee372603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37260 = { "ee37260", // class name
+ bases_ee37260, 4,
+ &(vtc_ee37260[0]), // expected_vtbl_contents
+ &(vtt_ee37260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37260),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37260),5, //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 ee47260 : dd7260 {
+ int e;
+ virtual void bar(); // _ZN7ee472603barEv
+ ~ee47260(); // tgen
+ ee47260(); // tgen
+};
+//SIG(1 ee47260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47260 ::bar(){vfunc_called(this, "_ZN7ee472603barEv");}
+ee47260 ::~ee47260(){ note_dtor("ee47260", this);} // tgen
+ee47260 ::ee47260(){ note_ctor("ee47260", this);} // tgen
+
+static void Test_ee47260()
+{
+ extern Class_Descriptor cd_ee47260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47260, buf);
+ ee47260 *dp, &lv = *(dp=new (buf) ee47260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee47260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee47260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(16,12), "ee47260");
+ check_base_class_offset(lv, (dd7260*), 0, "ee47260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47260.e");
+ test_class_info(&lv, &cd_ee47260);
+ dp->~ee47260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47260(Test_ee47260, "ee47260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47260C1Ev();
+extern void _ZN7ee47260D1Ev();
+Name_Map name_map_ee47260[] = {
+ NSPAIR(_ZN7ee47260C1Ev),
+ NSPAIR(_ZN7ee47260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee47260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47260[];
+extern void _ZN7ee472603barEv();
+extern void _ZN6dd72603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee472603barEv,_ZTv0_n12_N7ee472603barEv)();
+extern void ABISELECT(_ZThn16_N7ee472603barEv,_ZThn12_N7ee472603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47260[0]),
+ (VTBL_ENTRY)&_ZN7ee472603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee472603barEv,_ZTv0_n12_N7ee472603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee47260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee47260[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee47260[] = {
+ {&(_ZTV7ee47260[3]), 3,11},
+ {&(_tg__ZTV6dd7260__7ee47260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee47260[4]), 4,6},
+ {&(_ZTV7ee47260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47260[];
+extern VTBL_ENTRY _ZTV7ee47260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47260[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee472603barEv,_ZTv0_n12_N7ee472603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472603barEv,_ZThn12_N7ee472603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47260 = { "ee47260", // class name
+ bases_ee47260, 4,
+ &(vtc_ee47260[0]), // expected_vtbl_contents
+ &(vtt_ee47260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47260),4, //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 ee57260 : virtual dd7260 {
+ int e;
+ virtual void bar(); // _ZN7ee572603barEv
+ ~ee57260(); // tgen
+ ee57260(); // tgen
+};
+//SIG(1 ee57260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57260 ::bar(){vfunc_called(this, "_ZN7ee572603barEv");}
+ee57260 ::~ee57260(){ note_dtor("ee57260", this);} // tgen
+ee57260 ::ee57260(){ note_ctor("ee57260", this);} // tgen
+
+static void Test_ee57260()
+{
+ extern Class_Descriptor cd_ee57260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57260, buf);
+ ee57260 *dp, &lv = *(dp=new (buf) ee57260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee57260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee57260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(32,16), "ee57260");
+ check_base_class_offset(lv, (dd7260*), ABISELECT(16,8), "ee57260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57260.e");
+ test_class_info(&lv, &cd_ee57260);
+ dp->~ee57260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57260(Test_ee57260, "ee57260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57260C1Ev();
+extern void _ZN7ee57260D1Ev();
+Name_Map name_map_ee57260[] = {
+ NSPAIR(_ZN7ee57260C1Ev),
+ NSPAIR(_ZN7ee57260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee57260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, ABISELECT(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 _ZTI7ee57260[];
+extern void _ZN7ee572603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572603barEv,_ZTv0_n16_N7ee572603barEv)();
+extern void ABISELECT(_ZThn16_N7ee572603barEv,_ZThn8_N7ee572603barEv)() __attribute__((weak));
+extern void _ZN6dd72603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee572603barEv,_ZTv0_n12_N7ee572603barEv)();
+extern void ABISELECT(_ZThn32_N7ee572603barEv,_ZThn16_N7ee572603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57260[0]),
+ (VTBL_ENTRY)&_ZN7ee572603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572603barEv,_ZTv0_n16_N7ee572603barEv),
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee572603barEv,_ZTv0_n12_N7ee572603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee57260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee57260[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee57260[] = {
+ {&(_ZTV7ee57260[4]), 4,18},
+ {&(_ZTV7ee57260[10]), 10,18},
+ {&(_ZTV7ee57260[16]), 16,18},
+ {&(_tg__ZTV6dd7260__7ee57260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee57260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57260[];
+extern VTBL_ENTRY _ZTV7ee57260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57260[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee572603barEv,_ZTv0_n12_N7ee572603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572603barEv,_ZThn16_N7ee572603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572603barEv,_ZTv0_n16_N7ee572603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572603barEv,_ZThn8_N7ee572603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57260 = { "ee57260", // class name
+ bases_ee57260, 4,
+ &(vtc_ee57260[0]), // expected_vtbl_contents
+ &(vtt_ee57260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57260),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57260),5, //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 ee67260 : dd7260 {
+ int e;
+ virtual void foo(); // _ZN7ee672603fooEv
+ virtual void bar(); // _ZN7ee672603barEv
+ ~ee67260(); // tgen
+ ee67260(); // tgen
+};
+//SIG(1 ee67260) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67260 ::foo(){vfunc_called(this, "_ZN7ee672603fooEv");}
+void ee67260 ::bar(){vfunc_called(this, "_ZN7ee672603barEv");}
+ee67260 ::~ee67260(){ note_dtor("ee67260", this);} // tgen
+ee67260 ::ee67260(){ note_ctor("ee67260", this);} // tgen
+
+static void Test_ee67260()
+{
+ extern Class_Descriptor cd_ee67260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67260, buf);
+ ee67260 *dp, &lv = *(dp=new (buf) ee67260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(24,16), "ee67260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(16,12), "ee67260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(16,12), "ee67260");
+ check_base_class_offset(lv, (dd7260*), 0, "ee67260");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67260.e");
+ test_class_info(&lv, &cd_ee67260);
+ dp->~ee67260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67260(Test_ee67260, "ee67260", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67260C1Ev();
+extern void _ZN7ee67260D1Ev();
+Name_Map name_map_ee67260[] = {
+ NSPAIR(_ZN7ee67260C1Ev),
+ NSPAIR(_ZN7ee67260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee67260[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67260[];
+extern void _ZN7ee672603barEv();
+extern void _ZN7ee672603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672603barEv,_ZTv0_n12_N7ee672603barEv)();
+extern void ABISELECT(_ZThn16_N7ee672603barEv,_ZThn12_N7ee672603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672603fooEv,_ZTv0_n16_N7ee672603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672603fooEv,_ZThn12_N7ee672603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67260[0]),
+ (VTBL_ENTRY)&_ZN7ee672603barEv,
+ (VTBL_ENTRY)&_ZN7ee672603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672603barEv,_ZTv0_n12_N7ee672603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672603fooEv,_ZTv0_n16_N7ee672603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee67260[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee67260[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee67260[] = {
+ {&(_ZTV7ee67260[3]), 3,11},
+ {&(_tg__ZTV6dd7260__7ee67260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee67260[4]), 4,6},
+ {&(_ZTV7ee67260[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67260[];
+extern VTBL_ENTRY _ZTV7ee67260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67260[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn12_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn12_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672603fooEv,_ZTv0_n16_N7ee672603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672603fooEv,_ZThn12_N7ee672603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672603barEv,_ZTv0_n12_N7ee672603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672603barEv,_ZThn12_N7ee672603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67260 = { "ee67260", // class name
+ bases_ee67260, 4,
+ &(vtc_ee67260[0]), // expected_vtbl_contents
+ &(vtt_ee67260[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67260),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67260),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67260),4, //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 ee77260 : virtual dd7260 {
+ int e;
+ virtual void foo(); // _ZN7ee772603fooEv
+ virtual void bar(); // _ZN7ee772603barEv
+ ~ee77260(); // tgen
+ ee77260(); // tgen
+};
+//SIG(1 ee77260) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77260 ::foo(){vfunc_called(this, "_ZN7ee772603fooEv");}
+void ee77260 ::bar(){vfunc_called(this, "_ZN7ee772603barEv");}
+ee77260 ::~ee77260(){ note_dtor("ee77260", this);} // tgen
+ee77260 ::ee77260(){ note_ctor("ee77260", this);} // tgen
+
+static void Test_ee77260()
+{
+ extern Class_Descriptor cd_ee77260;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77260, buf);
+ ee77260 *dp, &lv = *(dp=new (buf) ee77260());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77260)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77260)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc260*), ABISELECT(40,20), "ee77260");
+ check_base_class_offset(lv, (bb60*)(cc260*), ABISELECT(32,16), "ee77260");
+ check_base_class_offset(lv, (cc260*)(dd7260*), ABISELECT(32,16), "ee77260");
+ check_base_class_offset(lv, (dd7260*), ABISELECT(16,8), "ee77260");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77260.e");
+ test_class_info(&lv, &cd_ee77260);
+ dp->~ee77260();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77260(Test_ee77260, "ee77260", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77260C1Ev();
+extern void _ZN7ee77260D1Ev();
+Name_Map name_map_ee77260[] = {
+ NSPAIR(_ZN7ee77260C1Ev),
+ NSPAIR(_ZN7ee77260D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc260;
+extern VTBL_ENTRY _ZTI5cc260[];
+extern VTBL_ENTRY _ZTV5cc260[];
+extern Class_Descriptor cd_dd7260;
+extern VTBL_ENTRY _ZTI6dd7260[];
+extern VTBL_ENTRY _ZTV6dd7260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7260[];
+static Base_Class bases_ee77260[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc260, 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_dd7260, ABISELECT(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 _ZTI7ee77260[];
+extern void _ZN7ee772603fooEv();
+extern void _ZN7ee772603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772603barEv,_ZTv0_n16_N7ee772603barEv)();
+extern void ABISELECT(_ZThn16_N7ee772603barEv,_ZThn8_N7ee772603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772603fooEv,_ZTv0_n20_N7ee772603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772603fooEv,_ZThn8_N7ee772603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772603barEv,_ZTv0_n12_N7ee772603barEv)();
+extern void ABISELECT(_ZThn32_N7ee772603barEv,_ZThn16_N7ee772603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772603fooEv,_ZTv0_n16_N7ee772603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772603fooEv,_ZThn16_N7ee772603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77260[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77260[0]),
+ (VTBL_ENTRY)&_ZN7ee772603fooEv,
+ (VTBL_ENTRY)&_ZN7ee772603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772603barEv,_ZTv0_n16_N7ee772603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772603fooEv,_ZTv0_n20_N7ee772603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772603barEv,_ZTv0_n12_N7ee772603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772603fooEv,_ZTv0_n16_N7ee772603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77260[];
+extern void _ZN6dd72603barEv();
+extern void _ZN6dd72603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7260__7ee77260[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&_ZN6dd72603barEv,
+ (VTBL_ENTRY)&_ZN6dd72603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv)();
+extern void ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc260__6dd7260__7ee77260[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7260[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv),
+};
+static VTT_ENTRY vtt_ee77260[] = {
+ {&(_ZTV7ee77260[4]), 4,19},
+ {&(_ZTV7ee77260[11]), 11,19},
+ {&(_ZTV7ee77260[17]), 17,19},
+ {&(_tg__ZTV6dd7260__7ee77260[3]), 3,5},
+ {&(_tg__ZTV5cc260__6dd7260__7ee77260[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77260[];
+extern VTBL_ENTRY _ZTV7ee77260[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77260[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72603fooEv,_ZTv0_n16_N6dd72603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603fooEv,_ZThn8_N6dd72603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72603barEv,_ZTv0_n12_N6dd72603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72603barEv,_ZThn8_N6dd72603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772603fooEv,_ZTv0_n16_N7ee772603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772603fooEv,_ZThn16_N7ee772603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772603barEv,_ZTv0_n12_N7ee772603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772603barEv,_ZThn16_N7ee772603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772603fooEv,_ZTv0_n20_N7ee772603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772603fooEv,_ZThn8_N7ee772603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772603barEv,_ZTv0_n16_N7ee772603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772603barEv,_ZThn8_N7ee772603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77260 = { "ee77260", // class name
+ bases_ee77260, 4,
+ &(vtc_ee77260[0]), // expected_vtbl_contents
+ &(vtt_ee77260[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77260),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77260),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77260),5, //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 cc360 : virtual bb60 {
+ int c;
+ virtual void foo(); // _ZN5cc3603fooEv
+ ~cc360(); // tgen
+ cc360(); // tgen
+};
+//SIG(-1 cc360) C1{ VBC2{ BC3{ Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc360 ::foo(){vfunc_called(this, "_ZN5cc3603fooEv");}
+cc360 ::~cc360(){ note_dtor("cc360", this);} // tgen
+cc360 ::cc360(){ note_ctor("cc360", this);} // tgen
+
+static void Test_cc360()
+{
+ extern Class_Descriptor cd_cc360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc360, buf);
+ cc360 *dp, &lv = *(dp=new (buf) cc360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,12), "cc360");
+ check_base_class_offset(lv, (bb60*), ABISELECT(16,8), "cc360");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc360.c");
+ test_class_info(&lv, &cd_cc360);
+ dp->~cc360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc360(Test_cc360, "cc360", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc360C1Ev();
+extern void _ZN5cc360D1Ev();
+Name_Map name_map_cc360[] = {
+ NSPAIR(_ZN5cc360C1Ev),
+ NSPAIR(_ZN5cc360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc360[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc360[];
+static VTT_ENTRY vtt_cc360[] = {
+ {&(_ZTV5cc360[3]), 3,10},
+ {&(_ZTV5cc360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc360 = { "cc360", // class name
+ bases_cc360, 2,
+ &(vtc_cc360[0]), // expected_vtbl_contents
+ &(vtt_cc360[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc360),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0360 : cc360 {
+ int d;
+ ~dd0360(); // tgen
+ dd0360(); // tgen
+};
+//SIG(-1 dd0360) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0360 ::~dd0360(){ note_dtor("dd0360", this);} // tgen
+dd0360 ::dd0360(){ note_ctor("dd0360", this);} // tgen
+
+static void Test_dd0360()
+{
+ extern Class_Descriptor cd_dd0360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0360, buf);
+ dd0360 *dp, &lv = *(dp=new (buf) dd0360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd0360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(16,12), "dd0360");
+ check_base_class_offset(lv, (cc360*), 0, "dd0360");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0360.d");
+ test_class_info(&lv, &cd_dd0360);
+ dp->~dd0360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0360(Test_dd0360, "dd0360", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0360C1Ev();
+extern void _ZN6dd0360D1Ev();
+Name_Map name_map_dd0360[] = {
+ NSPAIR(_ZN6dd0360C1Ev),
+ NSPAIR(_ZN6dd0360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd0360[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd0360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd0360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd0360[] = {
+ {&(_ZTV6dd0360[3]), 3,10},
+ {&(_tg__ZTV5cc360__6dd0360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd0360[4]), 4,6},
+ {&(_ZTV6dd0360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0360 = { "dd0360", // class name
+ bases_dd0360, 3,
+ &(vtc_dd0360[0]), // expected_vtbl_contents
+ &(vtt_dd0360[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0360),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00360 : dd0360 {
+ int e;
+ ~ee00360(); // tgen
+ ee00360(); // tgen
+};
+//SIG(1 ee00360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00360 ::~ee00360(){ note_dtor("ee00360", this);} // tgen
+ee00360 ::ee00360(){ note_ctor("ee00360", this);} // tgen
+
+static void Test_ee00360()
+{
+ extern Class_Descriptor cd_ee00360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00360, buf);
+ ee00360 *dp, &lv = *(dp=new (buf) ee00360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee00360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(24,16), "ee00360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), 0, "ee00360");
+ check_base_class_offset(lv, (dd0360*), 0, "ee00360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00360.e");
+ test_class_info(&lv, &cd_ee00360);
+ dp->~ee00360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00360(Test_ee00360, "ee00360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00360C1Ev();
+extern void _ZN7ee00360D1Ev();
+Name_Map name_map_ee00360[] = {
+ NSPAIR(_ZN7ee00360C1Ev),
+ NSPAIR(_ZN7ee00360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee00360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee00360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee00360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee00360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee00360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee00360[] = {
+ {&(_ZTV7ee00360[3]), 3,10},
+ {&(_tg__ZTV6dd0360__7ee00360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee00360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee00360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee00360[4]), 4,6},
+ {&(_ZTV7ee00360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00360[];
+extern VTBL_ENTRY _ZTV7ee00360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00360[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00360 = { "ee00360", // class name
+ bases_ee00360, 4,
+ &(vtc_ee00360[0]), // expected_vtbl_contents
+ &(vtt_ee00360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00360),6, //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 ee10360 : virtual dd0360 {
+ int e;
+ ~ee10360(); // tgen
+ ee10360(); // tgen
+};
+//SIG(1 ee10360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10360 ::~ee10360(){ note_dtor("ee10360", this);} // tgen
+ee10360 ::ee10360(){ note_ctor("ee10360", this);} // tgen
+
+static void Test_ee10360()
+{
+ extern Class_Descriptor cd_ee10360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10360, buf);
+ ee10360 *dp, &lv = *(dp=new (buf) ee10360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee10360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(32,20), "ee10360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), ABISELECT(16,8), "ee10360");
+ check_base_class_offset(lv, (dd0360*), ABISELECT(16,8), "ee10360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10360.e");
+ test_class_info(&lv, &cd_ee10360);
+ dp->~ee10360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10360(Test_ee10360, "ee10360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10360C1Ev();
+extern void _ZN7ee10360D1Ev();
+Name_Map name_map_ee10360[] = {
+ NSPAIR(_ZN7ee10360C1Ev),
+ NSPAIR(_ZN7ee10360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee10360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, ABISELECT(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 _ZTI7ee10360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10360[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee10360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee10360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee10360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee10360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee10360[] = {
+ {&(_ZTV7ee10360[4]), 4,15},
+ {&(_ZTV7ee10360[8]), 8,15},
+ {&(_ZTV7ee10360[13]), 13,15},
+ {&(_tg__ZTV6dd0360__7ee10360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee10360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee10360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee10360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10360[];
+extern VTBL_ENTRY _ZTV7ee10360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10360[];
+static VTBL_ENTRY alt_thunk_names160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10360 = { "ee10360", // class name
+ bases_ee10360, 4,
+ &(vtc_ee10360[0]), // expected_vtbl_contents
+ &(vtt_ee10360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10360),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10360),7, //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 ee20360 : dd0360 {
+ int e;
+ virtual void foo(); // _ZN7ee203603fooEv
+ ~ee20360(); // tgen
+ ee20360(); // tgen
+};
+//SIG(1 ee20360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20360 ::foo(){vfunc_called(this, "_ZN7ee203603fooEv");}
+ee20360 ::~ee20360(){ note_dtor("ee20360", this);} // tgen
+ee20360 ::ee20360(){ note_ctor("ee20360", this);} // tgen
+
+static void Test_ee20360()
+{
+ extern Class_Descriptor cd_ee20360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20360, buf);
+ ee20360 *dp, &lv = *(dp=new (buf) ee20360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee20360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(24,16), "ee20360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), 0, "ee20360");
+ check_base_class_offset(lv, (dd0360*), 0, "ee20360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20360.e");
+ test_class_info(&lv, &cd_ee20360);
+ dp->~ee20360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20360(Test_ee20360, "ee20360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20360C1Ev();
+extern void _ZN7ee20360D1Ev();
+Name_Map name_map_ee20360[] = {
+ NSPAIR(_ZN7ee20360C1Ev),
+ NSPAIR(_ZN7ee20360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee20360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20360[];
+extern void _ZN7ee203603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee203603fooEv,_ZTv0_n16_N7ee203603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203603fooEv,_ZThn16_N7ee203603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20360[0]),
+ (VTBL_ENTRY)&_ZN7ee203603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee203603fooEv,_ZTv0_n16_N7ee203603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee20360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee20360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee20360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee20360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee20360[] = {
+ {&(_ZTV7ee20360[3]), 3,10},
+ {&(_tg__ZTV6dd0360__7ee20360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee20360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee20360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee20360[4]), 4,6},
+ {&(_ZTV7ee20360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20360[];
+extern VTBL_ENTRY _ZTV7ee20360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20360[];
+static VTBL_ENTRY alt_thunk_names161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee203603fooEv,_ZTv0_n16_N7ee203603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203603fooEv,_ZThn16_N7ee203603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20360 = { "ee20360", // class name
+ bases_ee20360, 4,
+ &(vtc_ee20360[0]), // expected_vtbl_contents
+ &(vtt_ee20360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20360),6, //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 ee30360 : virtual dd0360 {
+ int e;
+ virtual void foo(); // _ZN7ee303603fooEv
+ ~ee30360(); // tgen
+ ee30360(); // tgen
+};
+//SIG(1 ee30360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30360 ::foo(){vfunc_called(this, "_ZN7ee303603fooEv");}
+ee30360 ::~ee30360(){ note_dtor("ee30360", this);} // tgen
+ee30360 ::ee30360(){ note_ctor("ee30360", this);} // tgen
+
+static void Test_ee30360()
+{
+ extern Class_Descriptor cd_ee30360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30360, buf);
+ ee30360 *dp, &lv = *(dp=new (buf) ee30360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee30360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(32,20), "ee30360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), ABISELECT(16,8), "ee30360");
+ check_base_class_offset(lv, (dd0360*), ABISELECT(16,8), "ee30360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30360.e");
+ test_class_info(&lv, &cd_ee30360);
+ dp->~ee30360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30360(Test_ee30360, "ee30360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30360C1Ev();
+extern void _ZN7ee30360D1Ev();
+Name_Map name_map_ee30360[] = {
+ NSPAIR(_ZN7ee30360C1Ev),
+ NSPAIR(_ZN7ee30360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee30360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, ABISELECT(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 _ZTI7ee30360[];
+extern void _ZN7ee303603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303603fooEv,_ZTv0_n16_N7ee303603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303603fooEv,_ZThn8_N7ee303603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303603fooEv,_ZTv0_n16_N7ee303603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303603fooEv,_ZThn20_N7ee303603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30360[0]),
+ (VTBL_ENTRY)&_ZN7ee303603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303603fooEv,_ZTv0_n16_N7ee303603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303603fooEv,_ZTv0_n16_N7ee303603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee30360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee30360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee30360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee30360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee30360[] = {
+ {&(_ZTV7ee30360[4]), 4,16},
+ {&(_ZTV7ee30360[9]), 9,16},
+ {&(_ZTV7ee30360[14]), 14,16},
+ {&(_tg__ZTV6dd0360__7ee30360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee30360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee30360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee30360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30360[];
+extern VTBL_ENTRY _ZTV7ee30360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30360[];
+static VTBL_ENTRY alt_thunk_names162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303603fooEv,_ZTv0_n16_N7ee303603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303603fooEv,_ZThn20_N7ee303603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303603fooEv,_ZThn8_N7ee303603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30360 = { "ee30360", // class name
+ bases_ee30360, 4,
+ &(vtc_ee30360[0]), // expected_vtbl_contents
+ &(vtt_ee30360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30360),7, //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 ee40360 : dd0360 {
+ int e;
+ virtual void bar(); // _ZN7ee403603barEv
+ ~ee40360(); // tgen
+ ee40360(); // tgen
+};
+//SIG(1 ee40360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40360 ::bar(){vfunc_called(this, "_ZN7ee403603barEv");}
+ee40360 ::~ee40360(){ note_dtor("ee40360", this);} // tgen
+ee40360 ::ee40360(){ note_ctor("ee40360", this);} // tgen
+
+static void Test_ee40360()
+{
+ extern Class_Descriptor cd_ee40360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40360, buf);
+ ee40360 *dp, &lv = *(dp=new (buf) ee40360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee40360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(24,16), "ee40360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), 0, "ee40360");
+ check_base_class_offset(lv, (dd0360*), 0, "ee40360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40360.e");
+ test_class_info(&lv, &cd_ee40360);
+ dp->~ee40360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40360(Test_ee40360, "ee40360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40360C1Ev();
+extern void _ZN7ee40360D1Ev();
+Name_Map name_map_ee40360[] = {
+ NSPAIR(_ZN7ee40360C1Ev),
+ NSPAIR(_ZN7ee40360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee40360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN7ee403603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee403603barEv,_ZTv0_n12_N7ee403603barEv)();
+extern void ABISELECT(_ZThn24_N7ee403603barEv,_ZThn16_N7ee403603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN7ee403603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee403603barEv,_ZTv0_n12_N7ee403603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee40360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee40360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee40360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee40360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee40360[] = {
+ {&(_ZTV7ee40360[3]), 3,11},
+ {&(_tg__ZTV6dd0360__7ee40360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee40360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee40360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee40360[4]), 4,6},
+ {&(_ZTV7ee40360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40360[];
+extern VTBL_ENTRY _ZTV7ee40360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40360[];
+static VTBL_ENTRY alt_thunk_names163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee403603barEv,_ZTv0_n12_N7ee403603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403603barEv,_ZThn16_N7ee403603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40360 = { "ee40360", // class name
+ bases_ee40360, 4,
+ &(vtc_ee40360[0]), // expected_vtbl_contents
+ &(vtt_ee40360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40360),6, //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 ee50360 : virtual dd0360 {
+ int e;
+ virtual void bar(); // _ZN7ee503603barEv
+ ~ee50360(); // tgen
+ ee50360(); // tgen
+};
+//SIG(1 ee50360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50360 ::bar(){vfunc_called(this, "_ZN7ee503603barEv");}
+ee50360 ::~ee50360(){ note_dtor("ee50360", this);} // tgen
+ee50360 ::ee50360(){ note_ctor("ee50360", this);} // tgen
+
+static void Test_ee50360()
+{
+ extern Class_Descriptor cd_ee50360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50360, buf);
+ ee50360 *dp, &lv = *(dp=new (buf) ee50360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee50360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(32,20), "ee50360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), ABISELECT(16,8), "ee50360");
+ check_base_class_offset(lv, (dd0360*), ABISELECT(16,8), "ee50360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50360.e");
+ test_class_info(&lv, &cd_ee50360);
+ dp->~ee50360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50360(Test_ee50360, "ee50360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50360C1Ev();
+extern void _ZN7ee50360D1Ev();
+Name_Map name_map_ee50360[] = {
+ NSPAIR(_ZN7ee50360C1Ev),
+ NSPAIR(_ZN7ee50360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee50360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, ABISELECT(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 _ZTI7ee50360[];
+extern void _ZN7ee503603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee503603barEv,_ZTv0_n12_N7ee503603barEv)();
+extern void ABISELECT(_ZThn32_N7ee503603barEv,_ZThn20_N7ee503603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50360[0]),
+ (VTBL_ENTRY)&_ZN7ee503603barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee503603barEv,_ZTv0_n12_N7ee503603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee50360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee50360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee50360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee50360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee50360[] = {
+ {&(_ZTV7ee50360[4]), 4,16},
+ {&(_ZTV7ee50360[9]), 9,16},
+ {&(_ZTV7ee50360[14]), 14,16},
+ {&(_tg__ZTV6dd0360__7ee50360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee50360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee50360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee50360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50360[];
+extern VTBL_ENTRY _ZTV7ee50360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50360[];
+static VTBL_ENTRY alt_thunk_names164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee503603barEv,_ZTv0_n12_N7ee503603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503603barEv,_ZThn20_N7ee503603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50360 = { "ee50360", // class name
+ bases_ee50360, 4,
+ &(vtc_ee50360[0]), // expected_vtbl_contents
+ &(vtt_ee50360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50360),7, //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 ee60360 : dd0360 {
+ int e;
+ virtual void foo(); // _ZN7ee603603fooEv
+ virtual void bar(); // _ZN7ee603603barEv
+ ~ee60360(); // tgen
+ ee60360(); // tgen
+};
+//SIG(1 ee60360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60360 ::foo(){vfunc_called(this, "_ZN7ee603603fooEv");}
+void ee60360 ::bar(){vfunc_called(this, "_ZN7ee603603barEv");}
+ee60360 ::~ee60360(){ note_dtor("ee60360", this);} // tgen
+ee60360 ::ee60360(){ note_ctor("ee60360", this);} // tgen
+
+static void Test_ee60360()
+{
+ extern Class_Descriptor cd_ee60360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60360, buf);
+ ee60360 *dp, &lv = *(dp=new (buf) ee60360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee60360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(24,16), "ee60360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), 0, "ee60360");
+ check_base_class_offset(lv, (dd0360*), 0, "ee60360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60360.e");
+ test_class_info(&lv, &cd_ee60360);
+ dp->~ee60360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60360(Test_ee60360, "ee60360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60360C1Ev();
+extern void _ZN7ee60360D1Ev();
+Name_Map name_map_ee60360[] = {
+ NSPAIR(_ZN7ee60360C1Ev),
+ NSPAIR(_ZN7ee60360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee60360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60360[];
+extern void _ZN7ee603603fooEv();
+extern void _ZN7ee603603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603603barEv,_ZTv0_n12_N7ee603603barEv)();
+extern void ABISELECT(_ZThn24_N7ee603603barEv,_ZThn16_N7ee603603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603603fooEv,_ZTv0_n16_N7ee603603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603603fooEv,_ZThn16_N7ee603603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60360[0]),
+ (VTBL_ENTRY)&_ZN7ee603603fooEv,
+ (VTBL_ENTRY)&_ZN7ee603603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603603barEv,_ZTv0_n12_N7ee603603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603603fooEv,_ZTv0_n16_N7ee603603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee60360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee60360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee60360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee60360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee60360[] = {
+ {&(_ZTV7ee60360[3]), 3,11},
+ {&(_tg__ZTV6dd0360__7ee60360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee60360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee60360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee60360[4]), 4,6},
+ {&(_ZTV7ee60360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60360[];
+extern VTBL_ENTRY _ZTV7ee60360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60360[];
+static VTBL_ENTRY alt_thunk_names165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603603fooEv,_ZTv0_n16_N7ee603603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603603fooEv,_ZThn16_N7ee603603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603603barEv,_ZTv0_n12_N7ee603603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603603barEv,_ZThn16_N7ee603603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60360 = { "ee60360", // class name
+ bases_ee60360, 4,
+ &(vtc_ee60360[0]), // expected_vtbl_contents
+ &(vtt_ee60360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60360),6, //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 ee70360 : virtual dd0360 {
+ int e;
+ virtual void foo(); // _ZN7ee703603fooEv
+ virtual void bar(); // _ZN7ee703603barEv
+ ~ee70360(); // tgen
+ ee70360(); // tgen
+};
+//SIG(1 ee70360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70360 ::foo(){vfunc_called(this, "_ZN7ee703603fooEv");}
+void ee70360 ::bar(){vfunc_called(this, "_ZN7ee703603barEv");}
+ee70360 ::~ee70360(){ note_dtor("ee70360", this);} // tgen
+ee70360 ::ee70360(){ note_ctor("ee70360", this);} // tgen
+
+static void Test_ee70360()
+{
+ extern Class_Descriptor cd_ee70360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70360, buf);
+ ee70360 *dp, &lv = *(dp=new (buf) ee70360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee70360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd0360*), ABISELECT(32,20), "ee70360");
+ check_base_class_offset(lv, (cc360*)(dd0360*), ABISELECT(16,8), "ee70360");
+ check_base_class_offset(lv, (dd0360*), ABISELECT(16,8), "ee70360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70360.e");
+ test_class_info(&lv, &cd_ee70360);
+ dp->~ee70360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70360(Test_ee70360, "ee70360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70360C1Ev();
+extern void _ZN7ee70360D1Ev();
+Name_Map name_map_ee70360[] = {
+ NSPAIR(_ZN7ee70360C1Ev),
+ NSPAIR(_ZN7ee70360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd0360;
+extern VTBL_ENTRY _ZTI6dd0360[];
+extern VTBL_ENTRY _ZTV6dd0360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0360[];
+static Base_Class bases_ee70360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0360, 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 _ZTI7ee70360[];
+extern void _ZN7ee703603fooEv();
+extern void _ZN7ee703603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703603fooEv,_ZTv0_n16_N7ee703603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703603fooEv,_ZThn8_N7ee703603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703603barEv,_ZTv0_n12_N7ee703603barEv)();
+extern void ABISELECT(_ZThn32_N7ee703603barEv,_ZThn20_N7ee703603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703603fooEv,_ZTv0_n16_N7ee703603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703603fooEv,_ZThn20_N7ee703603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70360[0]),
+ (VTBL_ENTRY)&_ZN7ee703603fooEv,
+ (VTBL_ENTRY)&_ZN7ee703603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703603fooEv,_ZTv0_n16_N7ee703603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703603barEv,_ZTv0_n12_N7ee703603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703603fooEv,_ZTv0_n16_N7ee703603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0360__7ee70360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd0360__7ee70360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd0360__7ee70360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0360__7ee70360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee70360[] = {
+ {&(_ZTV7ee70360[4]), 4,17},
+ {&(_ZTV7ee70360[10]), 10,17},
+ {&(_ZTV7ee70360[15]), 15,17},
+ {&(_tg__ZTV6dd0360__7ee70360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd0360__7ee70360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd0360__7ee70360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0360__7ee70360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70360[];
+extern VTBL_ENTRY _ZTV7ee70360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70360[];
+static VTBL_ENTRY alt_thunk_names166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703603barEv,_ZTv0_n12_N7ee703603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703603barEv,_ZThn20_N7ee703603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703603fooEv,_ZTv0_n16_N7ee703603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703603fooEv,_ZThn20_N7ee703603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703603fooEv,_ZThn8_N7ee703603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70360 = { "ee70360", // class name
+ bases_ee70360, 4,
+ &(vtc_ee70360[0]), // expected_vtbl_contents
+ &(vtt_ee70360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names166,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1360 : virtual cc360 {
+ int d;
+ ~dd1360(); // tgen
+ dd1360(); // tgen
+};
+//SIG(-1 dd1360) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1360 ::~dd1360(){ note_dtor("dd1360", this);} // tgen
+dd1360 ::dd1360(){ note_ctor("dd1360", this);} // tgen
+
+static void Test_dd1360()
+{
+ extern Class_Descriptor cd_dd1360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1360, buf);
+ dd1360 *dp, &lv = *(dp=new (buf) dd1360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd1360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,16), "dd1360");
+ check_base_class_offset(lv, (cc360*), ABISELECT(16,8), "dd1360");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1360.d");
+ test_class_info(&lv, &cd_dd1360);
+ dp->~dd1360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1360(Test_dd1360, "dd1360", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1360C1Ev();
+extern void _ZN6dd1360D1Ev();
+Name_Map name_map_dd1360[] = {
+ NSPAIR(_ZN6dd1360C1Ev),
+ NSPAIR(_ZN6dd1360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd1360[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(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 _ZTI6dd1360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd1360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd1360[] = {
+ {&(_ZTV6dd1360[4]), 4,15},
+ {&(_ZTV6dd1360[8]), 8,15},
+ {&(_ZTV6dd1360[13]), 13,15},
+ {&(_tg__ZTV5cc360__6dd1360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd1360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static VTBL_ENTRY alt_thunk_names167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1360 = { "dd1360", // class name
+ bases_dd1360, 3,
+ &(vtc_dd1360[0]), // expected_vtbl_contents
+ &(vtt_dd1360[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1360),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1360),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01360 : dd1360 {
+ int e;
+ ~ee01360(); // tgen
+ ee01360(); // tgen
+};
+//SIG(1 ee01360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01360 ::~ee01360(){ note_dtor("ee01360", this);} // tgen
+ee01360 ::ee01360(){ note_ctor("ee01360", this);} // tgen
+
+static void Test_ee01360()
+{
+ extern Class_Descriptor cd_ee01360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01360, buf);
+ ee01360 *dp, &lv = *(dp=new (buf) ee01360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee01360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee01360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(16,12), "ee01360");
+ check_base_class_offset(lv, (dd1360*), 0, "ee01360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01360.e");
+ test_class_info(&lv, &cd_ee01360);
+ dp->~ee01360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01360(Test_ee01360, "ee01360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01360C1Ev();
+extern void _ZN7ee01360D1Ev();
+Name_Map name_map_ee01360[] = {
+ NSPAIR(_ZN7ee01360C1Ev),
+ NSPAIR(_ZN7ee01360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee01360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01360[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee01360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee01360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee01360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee01360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee01360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee01360[] = {
+ {&(_ZTV7ee01360[4]), 4,15},
+ {&(_tg__ZTV6dd1360__7ee01360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee01360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee01360[4]), 4,6},
+ {&(_ZTV7ee01360[8]), 8,15},
+ {&(_ZTV7ee01360[13]), 13,15},
+ {&(_tg__ZTV5cc360__7ee01360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee01360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01360[];
+extern VTBL_ENTRY _ZTV7ee01360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01360[];
+static VTBL_ENTRY alt_thunk_names168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01360 = { "ee01360", // class name
+ bases_ee01360, 4,
+ &(vtc_ee01360[0]), // expected_vtbl_contents
+ &(vtt_ee01360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01360),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01360),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11360 : virtual dd1360 {
+ int e;
+ ~ee11360(); // tgen
+ ee11360(); // tgen
+};
+//SIG(1 ee11360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11360 ::~ee11360(){ note_dtor("ee11360", this);} // tgen
+ee11360 ::ee11360(){ note_ctor("ee11360", this);} // tgen
+
+static void Test_ee11360()
+{
+ extern Class_Descriptor cd_ee11360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11360, buf);
+ ee11360 *dp, &lv = *(dp=new (buf) ee11360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee11360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee11360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(32,16), "ee11360");
+ check_base_class_offset(lv, (dd1360*), ABISELECT(16,8), "ee11360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11360.e");
+ test_class_info(&lv, &cd_ee11360);
+ dp->~ee11360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11360(Test_ee11360, "ee11360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11360C1Ev();
+extern void _ZN7ee11360D1Ev();
+Name_Map name_map_ee11360[] = {
+ NSPAIR(_ZN7ee11360C1Ev),
+ NSPAIR(_ZN7ee11360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee11360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, ABISELECT(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 _ZTI7ee11360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11360[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11360[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee11360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee11360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee11360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee11360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee11360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee11360[] = {
+ {&(_ZTV7ee11360[5]), 5,20},
+ {&(_ZTV7ee11360[9]), 9,20},
+ {&(_ZTV7ee11360[13]), 13,20},
+ {&(_ZTV7ee11360[18]), 18,20},
+ {&(_tg__ZTV6dd1360__7ee11360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee11360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee11360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee11360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee11360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11360[];
+extern VTBL_ENTRY _ZTV7ee11360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11360[];
+static VTBL_ENTRY alt_thunk_names169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11360 = { "ee11360", // class name
+ bases_ee11360, 4,
+ &(vtc_ee11360[0]), // expected_vtbl_contents
+ &(vtt_ee11360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11360),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11360),9, //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 ee21360 : dd1360 {
+ int e;
+ virtual void foo(); // _ZN7ee213603fooEv
+ ~ee21360(); // tgen
+ ee21360(); // tgen
+};
+//SIG(1 ee21360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21360 ::foo(){vfunc_called(this, "_ZN7ee213603fooEv");}
+ee21360 ::~ee21360(){ note_dtor("ee21360", this);} // tgen
+ee21360 ::ee21360(){ note_ctor("ee21360", this);} // tgen
+
+static void Test_ee21360()
+{
+ extern Class_Descriptor cd_ee21360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21360, buf);
+ ee21360 *dp, &lv = *(dp=new (buf) ee21360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee21360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee21360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(16,12), "ee21360");
+ check_base_class_offset(lv, (dd1360*), 0, "ee21360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21360.e");
+ test_class_info(&lv, &cd_ee21360);
+ dp->~ee21360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21360(Test_ee21360, "ee21360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21360C1Ev();
+extern void _ZN7ee21360D1Ev();
+Name_Map name_map_ee21360[] = {
+ NSPAIR(_ZN7ee21360C1Ev),
+ NSPAIR(_ZN7ee21360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee21360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21360[];
+extern void _ZN7ee213603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213603fooEv,_ZTv0_n16_N7ee213603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213603fooEv,_ZThn12_N7ee213603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213603fooEv,_ZTv0_n16_N7ee213603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213603fooEv,_ZThn20_N7ee213603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21360[0]),
+ (VTBL_ENTRY)&_ZN7ee213603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213603fooEv,_ZTv0_n16_N7ee213603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213603fooEv,_ZTv0_n16_N7ee213603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee21360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee21360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee21360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee21360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee21360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee21360[] = {
+ {&(_ZTV7ee21360[4]), 4,16},
+ {&(_tg__ZTV6dd1360__7ee21360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee21360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee21360[4]), 4,6},
+ {&(_ZTV7ee21360[9]), 9,16},
+ {&(_ZTV7ee21360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee21360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee21360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21360[];
+extern VTBL_ENTRY _ZTV7ee21360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21360[];
+static VTBL_ENTRY alt_thunk_names170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213603fooEv,_ZTv0_n16_N7ee213603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213603fooEv,_ZThn20_N7ee213603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213603fooEv,_ZThn12_N7ee213603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21360 = { "ee21360", // class name
+ bases_ee21360, 4,
+ &(vtc_ee21360[0]), // expected_vtbl_contents
+ &(vtt_ee21360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21360),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31360 : virtual dd1360 {
+ int e;
+ virtual void foo(); // _ZN7ee313603fooEv
+ ~ee31360(); // tgen
+ ee31360(); // tgen
+};
+//SIG(1 ee31360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31360 ::foo(){vfunc_called(this, "_ZN7ee313603fooEv");}
+ee31360 ::~ee31360(){ note_dtor("ee31360", this);} // tgen
+ee31360 ::ee31360(){ note_ctor("ee31360", this);} // tgen
+
+static void Test_ee31360()
+{
+ extern Class_Descriptor cd_ee31360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31360, buf);
+ ee31360 *dp, &lv = *(dp=new (buf) ee31360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee31360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee31360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(32,16), "ee31360");
+ check_base_class_offset(lv, (dd1360*), ABISELECT(16,8), "ee31360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31360.e");
+ test_class_info(&lv, &cd_ee31360);
+ dp->~ee31360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31360(Test_ee31360, "ee31360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31360C1Ev();
+extern void _ZN7ee31360D1Ev();
+Name_Map name_map_ee31360[] = {
+ NSPAIR(_ZN7ee31360C1Ev),
+ NSPAIR(_ZN7ee31360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee31360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 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 _ZTI7ee31360[];
+extern void _ZN7ee313603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313603fooEv,_ZTv0_n16_N7ee313603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313603fooEv,_ZThn16_N7ee313603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313603fooEv,_ZTv0_n16_N7ee313603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313603fooEv,_ZThn24_N7ee313603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31360[0]),
+ (VTBL_ENTRY)&_ZN7ee313603fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31360[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313603fooEv,_ZTv0_n16_N7ee313603fooEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313603fooEv,_ZTv0_n16_N7ee313603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee31360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee31360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee31360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee31360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee31360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee31360[] = {
+ {&(_ZTV7ee31360[5]), 5,21},
+ {&(_ZTV7ee31360[10]), 10,21},
+ {&(_ZTV7ee31360[14]), 14,21},
+ {&(_ZTV7ee31360[19]), 19,21},
+ {&(_tg__ZTV6dd1360__7ee31360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee31360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee31360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee31360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee31360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31360[];
+extern VTBL_ENTRY _ZTV7ee31360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31360[];
+static VTBL_ENTRY alt_thunk_names171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313603fooEv,_ZTv0_n16_N7ee313603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313603fooEv,_ZThn24_N7ee313603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313603fooEv,_ZThn16_N7ee313603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31360 = { "ee31360", // class name
+ bases_ee31360, 4,
+ &(vtc_ee31360[0]), // expected_vtbl_contents
+ &(vtt_ee31360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31360),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31360),9, //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 ee41360 : dd1360 {
+ int e;
+ virtual void bar(); // _ZN7ee413603barEv
+ ~ee41360(); // tgen
+ ee41360(); // tgen
+};
+//SIG(1 ee41360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41360 ::bar(){vfunc_called(this, "_ZN7ee413603barEv");}
+ee41360 ::~ee41360(){ note_dtor("ee41360", this);} // tgen
+ee41360 ::ee41360(){ note_ctor("ee41360", this);} // tgen
+
+static void Test_ee41360()
+{
+ extern Class_Descriptor cd_ee41360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41360, buf);
+ ee41360 *dp, &lv = *(dp=new (buf) ee41360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee41360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee41360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(16,12), "ee41360");
+ check_base_class_offset(lv, (dd1360*), 0, "ee41360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41360.e");
+ test_class_info(&lv, &cd_ee41360);
+ dp->~ee41360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41360(Test_ee41360, "ee41360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41360C1Ev();
+extern void _ZN7ee41360D1Ev();
+Name_Map name_map_ee41360[] = {
+ NSPAIR(_ZN7ee41360C1Ev),
+ NSPAIR(_ZN7ee41360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee41360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41360[];
+extern void _ZN7ee413603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee413603barEv,_ZTv0_n12_N7ee413603barEv)();
+extern void ABISELECT(_ZThn32_N7ee413603barEv,_ZThn20_N7ee413603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41360[0]),
+ (VTBL_ENTRY)&_ZN7ee413603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee413603barEv,_ZTv0_n12_N7ee413603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee41360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee41360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee41360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee41360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee41360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee41360[] = {
+ {&(_ZTV7ee41360[4]), 4,16},
+ {&(_tg__ZTV6dd1360__7ee41360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee41360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee41360[4]), 4,6},
+ {&(_ZTV7ee41360[9]), 9,16},
+ {&(_ZTV7ee41360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee41360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee41360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41360[];
+extern VTBL_ENTRY _ZTV7ee41360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41360[];
+static VTBL_ENTRY alt_thunk_names172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee413603barEv,_ZTv0_n12_N7ee413603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413603barEv,_ZThn20_N7ee413603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41360 = { "ee41360", // class name
+ bases_ee41360, 4,
+ &(vtc_ee41360[0]), // expected_vtbl_contents
+ &(vtt_ee41360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41360),8, //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 ee51360 : virtual dd1360 {
+ int e;
+ virtual void bar(); // _ZN7ee513603barEv
+ ~ee51360(); // tgen
+ ee51360(); // tgen
+};
+//SIG(1 ee51360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51360 ::bar(){vfunc_called(this, "_ZN7ee513603barEv");}
+ee51360 ::~ee51360(){ note_dtor("ee51360", this);} // tgen
+ee51360 ::ee51360(){ note_ctor("ee51360", this);} // tgen
+
+static void Test_ee51360()
+{
+ extern Class_Descriptor cd_ee51360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51360, buf);
+ ee51360 *dp, &lv = *(dp=new (buf) ee51360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee51360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee51360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(32,16), "ee51360");
+ check_base_class_offset(lv, (dd1360*), ABISELECT(16,8), "ee51360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51360.e");
+ test_class_info(&lv, &cd_ee51360);
+ dp->~ee51360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51360(Test_ee51360, "ee51360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51360C1Ev();
+extern void _ZN7ee51360D1Ev();
+Name_Map name_map_ee51360[] = {
+ NSPAIR(_ZN7ee51360C1Ev),
+ NSPAIR(_ZN7ee51360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee51360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 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 _ZTI7ee51360[];
+extern void _ZN7ee513603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee513603barEv,_ZTv0_n12_N7ee513603barEv)();
+extern void ABISELECT(_ZThn48_N7ee513603barEv,_ZThn24_N7ee513603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51360[0]),
+ (VTBL_ENTRY)&_ZN7ee513603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51360[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee513603barEv,_ZTv0_n12_N7ee513603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee51360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee51360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee51360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee51360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee51360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee51360[] = {
+ {&(_ZTV7ee51360[5]), 5,21},
+ {&(_ZTV7ee51360[10]), 10,21},
+ {&(_ZTV7ee51360[14]), 14,21},
+ {&(_ZTV7ee51360[19]), 19,21},
+ {&(_tg__ZTV6dd1360__7ee51360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee51360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee51360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee51360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee51360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51360[];
+extern VTBL_ENTRY _ZTV7ee51360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51360[];
+static VTBL_ENTRY alt_thunk_names173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee513603barEv,_ZTv0_n12_N7ee513603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513603barEv,_ZThn24_N7ee513603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51360 = { "ee51360", // class name
+ bases_ee51360, 4,
+ &(vtc_ee51360[0]), // expected_vtbl_contents
+ &(vtt_ee51360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51360),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51360),9, //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 ee61360 : dd1360 {
+ int e;
+ virtual void foo(); // _ZN7ee613603fooEv
+ virtual void bar(); // _ZN7ee613603barEv
+ ~ee61360(); // tgen
+ ee61360(); // tgen
+};
+//SIG(1 ee61360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61360 ::foo(){vfunc_called(this, "_ZN7ee613603fooEv");}
+void ee61360 ::bar(){vfunc_called(this, "_ZN7ee613603barEv");}
+ee61360 ::~ee61360(){ note_dtor("ee61360", this);} // tgen
+ee61360 ::ee61360(){ note_ctor("ee61360", this);} // tgen
+
+static void Test_ee61360()
+{
+ extern Class_Descriptor cd_ee61360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61360, buf);
+ ee61360 *dp, &lv = *(dp=new (buf) ee61360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee61360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee61360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(16,12), "ee61360");
+ check_base_class_offset(lv, (dd1360*), 0, "ee61360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61360.e");
+ test_class_info(&lv, &cd_ee61360);
+ dp->~ee61360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61360(Test_ee61360, "ee61360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61360C1Ev();
+extern void _ZN7ee61360D1Ev();
+Name_Map name_map_ee61360[] = {
+ NSPAIR(_ZN7ee61360C1Ev),
+ NSPAIR(_ZN7ee61360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee61360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61360[];
+extern void _ZN7ee613603fooEv();
+extern void _ZN7ee613603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613603fooEv,_ZTv0_n16_N7ee613603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613603fooEv,_ZThn12_N7ee613603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613603barEv,_ZTv0_n12_N7ee613603barEv)();
+extern void ABISELECT(_ZThn32_N7ee613603barEv,_ZThn20_N7ee613603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613603fooEv,_ZTv0_n16_N7ee613603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613603fooEv,_ZThn20_N7ee613603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61360[0]),
+ (VTBL_ENTRY)&_ZN7ee613603fooEv,
+ (VTBL_ENTRY)&_ZN7ee613603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613603fooEv,_ZTv0_n16_N7ee613603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613603barEv,_ZTv0_n12_N7ee613603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613603fooEv,_ZTv0_n16_N7ee613603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee61360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee61360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee61360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee61360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee61360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee61360[] = {
+ {&(_ZTV7ee61360[4]), 4,17},
+ {&(_tg__ZTV6dd1360__7ee61360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee61360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee61360[4]), 4,6},
+ {&(_ZTV7ee61360[10]), 10,17},
+ {&(_ZTV7ee61360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee61360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee61360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61360[];
+extern VTBL_ENTRY _ZTV7ee61360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61360[];
+static VTBL_ENTRY alt_thunk_names174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613603barEv,_ZTv0_n12_N7ee613603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613603barEv,_ZThn20_N7ee613603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613603fooEv,_ZTv0_n16_N7ee613603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613603fooEv,_ZThn20_N7ee613603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613603fooEv,_ZThn12_N7ee613603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61360 = { "ee61360", // class name
+ bases_ee61360, 4,
+ &(vtc_ee61360[0]), // expected_vtbl_contents
+ &(vtt_ee61360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61360),8, //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 ee71360 : virtual dd1360 {
+ int e;
+ virtual void foo(); // _ZN7ee713603fooEv
+ virtual void bar(); // _ZN7ee713603barEv
+ ~ee71360(); // tgen
+ ee71360(); // tgen
+};
+//SIG(1 ee71360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71360 ::foo(){vfunc_called(this, "_ZN7ee713603fooEv");}
+void ee71360 ::bar(){vfunc_called(this, "_ZN7ee713603barEv");}
+ee71360 ::~ee71360(){ note_dtor("ee71360", this);} // tgen
+ee71360 ::ee71360(){ note_ctor("ee71360", this);} // tgen
+
+static void Test_ee71360()
+{
+ extern Class_Descriptor cd_ee71360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71360, buf);
+ ee71360 *dp, &lv = *(dp=new (buf) ee71360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee71360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee71360");
+ check_base_class_offset(lv, (cc360*)(dd1360*), ABISELECT(32,16), "ee71360");
+ check_base_class_offset(lv, (dd1360*), ABISELECT(16,8), "ee71360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71360.e");
+ test_class_info(&lv, &cd_ee71360);
+ dp->~ee71360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71360(Test_ee71360, "ee71360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71360C1Ev();
+extern void _ZN7ee71360D1Ev();
+Name_Map name_map_ee71360[] = {
+ NSPAIR(_ZN7ee71360C1Ev),
+ NSPAIR(_ZN7ee71360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd1360;
+extern VTBL_ENTRY _ZTI6dd1360[];
+extern VTBL_ENTRY _ZTV6dd1360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1360[];
+static Base_Class bases_ee71360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd1360, 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 _ZTI7ee71360[];
+extern void _ZN7ee713603fooEv();
+extern void _ZN7ee713603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713603fooEv,_ZTv0_n16_N7ee713603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713603fooEv,_ZThn16_N7ee713603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713603barEv,_ZTv0_n12_N7ee713603barEv)();
+extern void ABISELECT(_ZThn48_N7ee713603barEv,_ZThn24_N7ee713603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713603fooEv,_ZTv0_n16_N7ee713603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713603fooEv,_ZThn24_N7ee713603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71360[0]),
+ (VTBL_ENTRY)&_ZN7ee713603fooEv,
+ (VTBL_ENTRY)&_ZN7ee713603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71360[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713603fooEv,_ZTv0_n16_N7ee713603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713603barEv,_ZTv0_n12_N7ee713603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713603fooEv,_ZTv0_n16_N7ee713603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71360[];
+static VTBL_ENTRY _tg__ZTV6dd1360__7ee71360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd1360__7ee71360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1360__7ee71360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee71360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee71360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee71360[] = {
+ {&(_ZTV7ee71360[5]), 5,22},
+ {&(_ZTV7ee71360[11]), 11,22},
+ {&(_ZTV7ee71360[15]), 15,22},
+ {&(_ZTV7ee71360[20]), 20,22},
+ {&(_tg__ZTV6dd1360__7ee71360[4]), 4,4},
+ {&(_tg__ZTV5cc360__6dd1360__7ee71360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1360__7ee71360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee71360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee71360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71360[];
+extern VTBL_ENTRY _ZTV7ee71360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71360[];
+static VTBL_ENTRY alt_thunk_names175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713603barEv,_ZTv0_n12_N7ee713603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713603barEv,_ZThn24_N7ee713603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713603fooEv,_ZTv0_n16_N7ee713603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713603fooEv,_ZThn24_N7ee713603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713603fooEv,_ZThn16_N7ee713603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71360 = { "ee71360", // class name
+ bases_ee71360, 4,
+ &(vtc_ee71360[0]), // expected_vtbl_contents
+ &(vtt_ee71360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71360),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71360),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2360 : cc360 {
+ int d;
+ virtual void foo(); // _ZN6dd23603fooEv
+ ~dd2360(); // tgen
+ dd2360(); // tgen
+};
+//SIG(-1 dd2360) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2360 ::foo(){vfunc_called(this, "_ZN6dd23603fooEv");}
+dd2360 ::~dd2360(){ note_dtor("dd2360", this);} // tgen
+dd2360 ::dd2360(){ note_ctor("dd2360", this);} // tgen
+
+static void Test_dd2360()
+{
+ extern Class_Descriptor cd_dd2360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2360, buf);
+ dd2360 *dp, &lv = *(dp=new (buf) dd2360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd2360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(16,12), "dd2360");
+ check_base_class_offset(lv, (cc360*), 0, "dd2360");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2360.d");
+ test_class_info(&lv, &cd_dd2360);
+ dp->~dd2360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2360(Test_dd2360, "dd2360", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2360C1Ev();
+extern void _ZN6dd2360D1Ev();
+Name_Map name_map_dd2360[] = {
+ NSPAIR(_ZN6dd2360C1Ev),
+ NSPAIR(_ZN6dd2360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd2360[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2360[];
+extern void _ZN6dd23603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd2360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd2360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd2360[] = {
+ {&(_ZTV6dd2360[3]), 3,10},
+ {&(_tg__ZTV5cc360__6dd2360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd2360[4]), 4,6},
+ {&(_ZTV6dd2360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static VTBL_ENTRY alt_thunk_names176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2360 = { "dd2360", // class name
+ bases_dd2360, 3,
+ &(vtc_dd2360[0]), // expected_vtbl_contents
+ &(vtt_dd2360[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2360),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02360 : dd2360 {
+ int e;
+ ~ee02360(); // tgen
+ ee02360(); // tgen
+};
+//SIG(1 ee02360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02360 ::~ee02360(){ note_dtor("ee02360", this);} // tgen
+ee02360 ::ee02360(){ note_ctor("ee02360", this);} // tgen
+
+static void Test_ee02360()
+{
+ extern Class_Descriptor cd_ee02360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02360, buf);
+ ee02360 *dp, &lv = *(dp=new (buf) ee02360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee02360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(24,16), "ee02360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), 0, "ee02360");
+ check_base_class_offset(lv, (dd2360*), 0, "ee02360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02360.e");
+ test_class_info(&lv, &cd_ee02360);
+ dp->~ee02360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02360(Test_ee02360, "ee02360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02360C1Ev();
+extern void _ZN7ee02360D1Ev();
+Name_Map name_map_ee02360[] = {
+ NSPAIR(_ZN7ee02360C1Ev),
+ NSPAIR(_ZN7ee02360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee02360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02360[];
+extern void _ZN6dd23603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee02360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee02360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee02360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee02360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee02360[] = {
+ {&(_ZTV7ee02360[3]), 3,10},
+ {&(_tg__ZTV6dd2360__7ee02360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee02360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee02360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee02360[4]), 4,6},
+ {&(_ZTV7ee02360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02360[];
+extern VTBL_ENTRY _ZTV7ee02360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02360[];
+static VTBL_ENTRY alt_thunk_names177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02360 = { "ee02360", // class name
+ bases_ee02360, 4,
+ &(vtc_ee02360[0]), // expected_vtbl_contents
+ &(vtt_ee02360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02360),6, //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 ee12360 : virtual dd2360 {
+ int e;
+ ~ee12360(); // tgen
+ ee12360(); // tgen
+};
+//SIG(1 ee12360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12360 ::~ee12360(){ note_dtor("ee12360", this);} // tgen
+ee12360 ::ee12360(){ note_ctor("ee12360", this);} // tgen
+
+static void Test_ee12360()
+{
+ extern Class_Descriptor cd_ee12360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12360, buf);
+ ee12360 *dp, &lv = *(dp=new (buf) ee12360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee12360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(32,20), "ee12360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), ABISELECT(16,8), "ee12360");
+ check_base_class_offset(lv, (dd2360*), ABISELECT(16,8), "ee12360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12360.e");
+ test_class_info(&lv, &cd_ee12360);
+ dp->~ee12360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12360(Test_ee12360, "ee12360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12360C1Ev();
+extern void _ZN7ee12360D1Ev();
+Name_Map name_map_ee12360[] = {
+ NSPAIR(_ZN7ee12360C1Ev),
+ NSPAIR(_ZN7ee12360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee12360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, ABISELECT(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 _ZTI7ee12360[];
+extern void _ZN6dd23603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12360[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee12360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee12360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee12360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee12360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee12360[] = {
+ {&(_ZTV7ee12360[4]), 4,15},
+ {&(_ZTV7ee12360[8]), 8,15},
+ {&(_ZTV7ee12360[13]), 13,15},
+ {&(_tg__ZTV6dd2360__7ee12360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee12360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee12360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee12360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12360[];
+extern VTBL_ENTRY _ZTV7ee12360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12360[];
+static VTBL_ENTRY alt_thunk_names178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12360 = { "ee12360", // class name
+ bases_ee12360, 4,
+ &(vtc_ee12360[0]), // expected_vtbl_contents
+ &(vtt_ee12360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12360),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12360),7, //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 ee22360 : dd2360 {
+ int e;
+ virtual void foo(); // _ZN7ee223603fooEv
+ ~ee22360(); // tgen
+ ee22360(); // tgen
+};
+//SIG(1 ee22360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22360 ::foo(){vfunc_called(this, "_ZN7ee223603fooEv");}
+ee22360 ::~ee22360(){ note_dtor("ee22360", this);} // tgen
+ee22360 ::ee22360(){ note_ctor("ee22360", this);} // tgen
+
+static void Test_ee22360()
+{
+ extern Class_Descriptor cd_ee22360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22360, buf);
+ ee22360 *dp, &lv = *(dp=new (buf) ee22360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee22360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(24,16), "ee22360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), 0, "ee22360");
+ check_base_class_offset(lv, (dd2360*), 0, "ee22360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22360.e");
+ test_class_info(&lv, &cd_ee22360);
+ dp->~ee22360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22360(Test_ee22360, "ee22360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22360C1Ev();
+extern void _ZN7ee22360D1Ev();
+Name_Map name_map_ee22360[] = {
+ NSPAIR(_ZN7ee22360C1Ev),
+ NSPAIR(_ZN7ee22360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee22360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22360[];
+extern void _ZN7ee223603fooEv();
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee223603fooEv,_ZTv0_n16_N7ee223603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223603fooEv,_ZThn16_N7ee223603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22360[0]),
+ (VTBL_ENTRY)&_ZN7ee223603fooEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee223603fooEv,_ZTv0_n16_N7ee223603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee22360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee22360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee22360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee22360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee22360[] = {
+ {&(_ZTV7ee22360[3]), 3,10},
+ {&(_tg__ZTV6dd2360__7ee22360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee22360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee22360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee22360[4]), 4,6},
+ {&(_ZTV7ee22360[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22360[];
+extern VTBL_ENTRY _ZTV7ee22360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22360[];
+static VTBL_ENTRY alt_thunk_names179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee223603fooEv,_ZTv0_n16_N7ee223603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223603fooEv,_ZThn16_N7ee223603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22360 = { "ee22360", // class name
+ bases_ee22360, 4,
+ &(vtc_ee22360[0]), // expected_vtbl_contents
+ &(vtt_ee22360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22360),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22360),6, //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 ee32360 : virtual dd2360 {
+ int e;
+ virtual void foo(); // _ZN7ee323603fooEv
+ ~ee32360(); // tgen
+ ee32360(); // tgen
+};
+//SIG(1 ee32360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32360 ::foo(){vfunc_called(this, "_ZN7ee323603fooEv");}
+ee32360 ::~ee32360(){ note_dtor("ee32360", this);} // tgen
+ee32360 ::ee32360(){ note_ctor("ee32360", this);} // tgen
+
+static void Test_ee32360()
+{
+ extern Class_Descriptor cd_ee32360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32360, buf);
+ ee32360 *dp, &lv = *(dp=new (buf) ee32360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee32360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(32,20), "ee32360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), ABISELECT(16,8), "ee32360");
+ check_base_class_offset(lv, (dd2360*), ABISELECT(16,8), "ee32360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32360.e");
+ test_class_info(&lv, &cd_ee32360);
+ dp->~ee32360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32360(Test_ee32360, "ee32360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32360C1Ev();
+extern void _ZN7ee32360D1Ev();
+Name_Map name_map_ee32360[] = {
+ NSPAIR(_ZN7ee32360C1Ev),
+ NSPAIR(_ZN7ee32360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee32360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, ABISELECT(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 _ZTI7ee32360[];
+extern void _ZN7ee323603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323603fooEv,_ZTv0_n16_N7ee323603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323603fooEv,_ZThn8_N7ee323603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323603fooEv,_ZTv0_n16_N7ee323603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323603fooEv,_ZThn20_N7ee323603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32360[0]),
+ (VTBL_ENTRY)&_ZN7ee323603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323603fooEv,_ZTv0_n16_N7ee323603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323603fooEv,_ZTv0_n16_N7ee323603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee32360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee32360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee32360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee32360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee32360[] = {
+ {&(_ZTV7ee32360[4]), 4,16},
+ {&(_ZTV7ee32360[9]), 9,16},
+ {&(_ZTV7ee32360[14]), 14,16},
+ {&(_tg__ZTV6dd2360__7ee32360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee32360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee32360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee32360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32360[];
+extern VTBL_ENTRY _ZTV7ee32360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32360[];
+static VTBL_ENTRY alt_thunk_names180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323603fooEv,_ZTv0_n16_N7ee323603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323603fooEv,_ZThn20_N7ee323603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323603fooEv,_ZThn8_N7ee323603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32360 = { "ee32360", // class name
+ bases_ee32360, 4,
+ &(vtc_ee32360[0]), // expected_vtbl_contents
+ &(vtt_ee32360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32360),7, //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 ee42360 : dd2360 {
+ int e;
+ virtual void bar(); // _ZN7ee423603barEv
+ ~ee42360(); // tgen
+ ee42360(); // tgen
+};
+//SIG(1 ee42360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42360 ::bar(){vfunc_called(this, "_ZN7ee423603barEv");}
+ee42360 ::~ee42360(){ note_dtor("ee42360", this);} // tgen
+ee42360 ::ee42360(){ note_ctor("ee42360", this);} // tgen
+
+static void Test_ee42360()
+{
+ extern Class_Descriptor cd_ee42360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42360, buf);
+ ee42360 *dp, &lv = *(dp=new (buf) ee42360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee42360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(24,16), "ee42360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), 0, "ee42360");
+ check_base_class_offset(lv, (dd2360*), 0, "ee42360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42360.e");
+ test_class_info(&lv, &cd_ee42360);
+ dp->~ee42360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42360(Test_ee42360, "ee42360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42360C1Ev();
+extern void _ZN7ee42360D1Ev();
+Name_Map name_map_ee42360[] = {
+ NSPAIR(_ZN7ee42360C1Ev),
+ NSPAIR(_ZN7ee42360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee42360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42360[];
+extern void _ZN6dd23603fooEv();
+extern void _ZN7ee423603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee423603barEv,_ZTv0_n12_N7ee423603barEv)();
+extern void ABISELECT(_ZThn24_N7ee423603barEv,_ZThn16_N7ee423603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+ (VTBL_ENTRY)&_ZN7ee423603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee423603barEv,_ZTv0_n12_N7ee423603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee42360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee42360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee42360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee42360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee42360[] = {
+ {&(_ZTV7ee42360[3]), 3,11},
+ {&(_tg__ZTV6dd2360__7ee42360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee42360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee42360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee42360[4]), 4,6},
+ {&(_ZTV7ee42360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42360[];
+extern VTBL_ENTRY _ZTV7ee42360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42360[];
+static VTBL_ENTRY alt_thunk_names181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee423603barEv,_ZTv0_n12_N7ee423603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423603barEv,_ZThn16_N7ee423603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42360 = { "ee42360", // class name
+ bases_ee42360, 4,
+ &(vtc_ee42360[0]), // expected_vtbl_contents
+ &(vtt_ee42360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42360),6, //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 ee52360 : virtual dd2360 {
+ int e;
+ virtual void bar(); // _ZN7ee523603barEv
+ ~ee52360(); // tgen
+ ee52360(); // tgen
+};
+//SIG(1 ee52360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52360 ::bar(){vfunc_called(this, "_ZN7ee523603barEv");}
+ee52360 ::~ee52360(){ note_dtor("ee52360", this);} // tgen
+ee52360 ::ee52360(){ note_ctor("ee52360", this);} // tgen
+
+static void Test_ee52360()
+{
+ extern Class_Descriptor cd_ee52360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52360, buf);
+ ee52360 *dp, &lv = *(dp=new (buf) ee52360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee52360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(32,20), "ee52360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), ABISELECT(16,8), "ee52360");
+ check_base_class_offset(lv, (dd2360*), ABISELECT(16,8), "ee52360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52360.e");
+ test_class_info(&lv, &cd_ee52360);
+ dp->~ee52360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52360(Test_ee52360, "ee52360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52360C1Ev();
+extern void _ZN7ee52360D1Ev();
+Name_Map name_map_ee52360[] = {
+ NSPAIR(_ZN7ee52360C1Ev),
+ NSPAIR(_ZN7ee52360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee52360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, ABISELECT(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 _ZTI7ee52360[];
+extern void _ZN7ee523603barEv();
+extern void _ZN6dd23603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee523603barEv,_ZTv0_n12_N7ee523603barEv)();
+extern void ABISELECT(_ZThn32_N7ee523603barEv,_ZThn20_N7ee523603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52360[0]),
+ (VTBL_ENTRY)&_ZN7ee523603barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee523603barEv,_ZTv0_n12_N7ee523603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee52360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee52360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee52360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee52360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee52360[] = {
+ {&(_ZTV7ee52360[4]), 4,16},
+ {&(_ZTV7ee52360[9]), 9,16},
+ {&(_ZTV7ee52360[14]), 14,16},
+ {&(_tg__ZTV6dd2360__7ee52360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee52360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee52360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee52360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52360[];
+extern VTBL_ENTRY _ZTV7ee52360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52360[];
+static VTBL_ENTRY alt_thunk_names182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee523603barEv,_ZTv0_n12_N7ee523603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523603barEv,_ZThn20_N7ee523603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52360 = { "ee52360", // class name
+ bases_ee52360, 4,
+ &(vtc_ee52360[0]), // expected_vtbl_contents
+ &(vtt_ee52360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52360),7, //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 ee62360 : dd2360 {
+ int e;
+ virtual void foo(); // _ZN7ee623603fooEv
+ virtual void bar(); // _ZN7ee623603barEv
+ ~ee62360(); // tgen
+ ee62360(); // tgen
+};
+//SIG(1 ee62360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62360 ::foo(){vfunc_called(this, "_ZN7ee623603fooEv");}
+void ee62360 ::bar(){vfunc_called(this, "_ZN7ee623603barEv");}
+ee62360 ::~ee62360(){ note_dtor("ee62360", this);} // tgen
+ee62360 ::ee62360(){ note_ctor("ee62360", this);} // tgen
+
+static void Test_ee62360()
+{
+ extern Class_Descriptor cd_ee62360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62360, buf);
+ ee62360 *dp, &lv = *(dp=new (buf) ee62360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee62360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(24,16), "ee62360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), 0, "ee62360");
+ check_base_class_offset(lv, (dd2360*), 0, "ee62360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62360.e");
+ test_class_info(&lv, &cd_ee62360);
+ dp->~ee62360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62360(Test_ee62360, "ee62360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62360C1Ev();
+extern void _ZN7ee62360D1Ev();
+Name_Map name_map_ee62360[] = {
+ NSPAIR(_ZN7ee62360C1Ev),
+ NSPAIR(_ZN7ee62360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee62360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62360[];
+extern void _ZN7ee623603fooEv();
+extern void _ZN7ee623603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623603barEv,_ZTv0_n12_N7ee623603barEv)();
+extern void ABISELECT(_ZThn24_N7ee623603barEv,_ZThn16_N7ee623603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623603fooEv,_ZTv0_n16_N7ee623603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623603fooEv,_ZThn16_N7ee623603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62360[0]),
+ (VTBL_ENTRY)&_ZN7ee623603fooEv,
+ (VTBL_ENTRY)&_ZN7ee623603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623603barEv,_ZTv0_n12_N7ee623603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623603fooEv,_ZTv0_n16_N7ee623603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee62360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee62360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee62360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee62360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee62360[] = {
+ {&(_ZTV7ee62360[3]), 3,11},
+ {&(_tg__ZTV6dd2360__7ee62360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee62360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee62360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee62360[4]), 4,6},
+ {&(_ZTV7ee62360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62360[];
+extern VTBL_ENTRY _ZTV7ee62360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62360[];
+static VTBL_ENTRY alt_thunk_names183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23603fooEv,_ZThn16_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623603fooEv,_ZTv0_n16_N7ee623603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623603fooEv,_ZThn16_N7ee623603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623603barEv,_ZTv0_n12_N7ee623603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623603barEv,_ZThn16_N7ee623603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62360 = { "ee62360", // class name
+ bases_ee62360, 4,
+ &(vtc_ee62360[0]), // expected_vtbl_contents
+ &(vtt_ee62360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62360),6, //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 ee72360 : virtual dd2360 {
+ int e;
+ virtual void foo(); // _ZN7ee723603fooEv
+ virtual void bar(); // _ZN7ee723603barEv
+ ~ee72360(); // tgen
+ ee72360(); // tgen
+};
+//SIG(1 ee72360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72360 ::foo(){vfunc_called(this, "_ZN7ee723603fooEv");}
+void ee72360 ::bar(){vfunc_called(this, "_ZN7ee723603barEv");}
+ee72360 ::~ee72360(){ note_dtor("ee72360", this);} // tgen
+ee72360 ::ee72360(){ note_ctor("ee72360", this);} // tgen
+
+static void Test_ee72360()
+{
+ extern Class_Descriptor cd_ee72360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72360, buf);
+ ee72360 *dp, &lv = *(dp=new (buf) ee72360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee72360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd2360*), ABISELECT(32,20), "ee72360");
+ check_base_class_offset(lv, (cc360*)(dd2360*), ABISELECT(16,8), "ee72360");
+ check_base_class_offset(lv, (dd2360*), ABISELECT(16,8), "ee72360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72360.e");
+ test_class_info(&lv, &cd_ee72360);
+ dp->~ee72360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72360(Test_ee72360, "ee72360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72360C1Ev();
+extern void _ZN7ee72360D1Ev();
+Name_Map name_map_ee72360[] = {
+ NSPAIR(_ZN7ee72360C1Ev),
+ NSPAIR(_ZN7ee72360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd2360;
+extern VTBL_ENTRY _ZTI6dd2360[];
+extern VTBL_ENTRY _ZTV6dd2360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2360[];
+static Base_Class bases_ee72360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2360, 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 _ZTI7ee72360[];
+extern void _ZN7ee723603fooEv();
+extern void _ZN7ee723603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723603fooEv,_ZTv0_n16_N7ee723603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723603fooEv,_ZThn8_N7ee723603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723603barEv,_ZTv0_n12_N7ee723603barEv)();
+extern void ABISELECT(_ZThn32_N7ee723603barEv,_ZThn20_N7ee723603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723603fooEv,_ZTv0_n16_N7ee723603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723603fooEv,_ZThn20_N7ee723603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72360[0]),
+ (VTBL_ENTRY)&_ZN7ee723603fooEv,
+ (VTBL_ENTRY)&_ZN7ee723603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723603fooEv,_ZTv0_n16_N7ee723603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723603barEv,_ZTv0_n12_N7ee723603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723603fooEv,_ZTv0_n16_N7ee723603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72360[];
+extern void _ZN6dd23603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2360__7ee72360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN6dd23603fooEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd2360__7ee72360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd2360__7ee72360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2360__7ee72360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv),
+};
+static VTT_ENTRY vtt_ee72360[] = {
+ {&(_ZTV7ee72360[4]), 4,17},
+ {&(_ZTV7ee72360[10]), 10,17},
+ {&(_ZTV7ee72360[15]), 15,17},
+ {&(_tg__ZTV6dd2360__7ee72360[3]), 3,4},
+ {&(_tg__ZTV5cc3606dd2360__7ee72360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd2360__7ee72360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2360__7ee72360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72360[];
+extern VTBL_ENTRY _ZTV7ee72360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72360[];
+static VTBL_ENTRY alt_thunk_names184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd23603fooEv,_ZTv0_n16_N6dd23603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23603fooEv,_ZThn12_N6dd23603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723603barEv,_ZTv0_n12_N7ee723603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723603barEv,_ZThn20_N7ee723603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723603fooEv,_ZTv0_n16_N7ee723603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723603fooEv,_ZThn20_N7ee723603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723603fooEv,_ZThn8_N7ee723603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72360 = { "ee72360", // class name
+ bases_ee72360, 4,
+ &(vtc_ee72360[0]), // expected_vtbl_contents
+ &(vtt_ee72360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3360 : virtual cc360 {
+ int d;
+ virtual void foo(); // _ZN6dd33603fooEv
+ ~dd3360(); // tgen
+ dd3360(); // tgen
+};
+//SIG(-1 dd3360) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3360 ::foo(){vfunc_called(this, "_ZN6dd33603fooEv");}
+dd3360 ::~dd3360(){ note_dtor("dd3360", this);} // tgen
+dd3360 ::dd3360(){ note_ctor("dd3360", this);} // tgen
+
+static void Test_dd3360()
+{
+ extern Class_Descriptor cd_dd3360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3360, buf);
+ dd3360 *dp, &lv = *(dp=new (buf) dd3360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd3360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,16), "dd3360");
+ check_base_class_offset(lv, (cc360*), ABISELECT(16,8), "dd3360");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3360.d");
+ test_class_info(&lv, &cd_dd3360);
+ dp->~dd3360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3360(Test_dd3360, "dd3360", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3360C1Ev();
+extern void _ZN6dd3360D1Ev();
+Name_Map name_map_dd3360[] = {
+ NSPAIR(_ZN6dd3360C1Ev),
+ NSPAIR(_ZN6dd3360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd3360[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(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 _ZTI6dd3360[];
+extern void _ZN6dd33603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd3360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd3360[] = {
+ {&(_ZTV6dd3360[4]), 4,16},
+ {&(_ZTV6dd3360[9]), 9,16},
+ {&(_ZTV6dd3360[14]), 14,16},
+ {&(_tg__ZTV5cc360__6dd3360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd3360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static VTBL_ENTRY alt_thunk_names185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3360 = { "dd3360", // class name
+ bases_dd3360, 3,
+ &(vtc_dd3360[0]), // expected_vtbl_contents
+ &(vtt_dd3360[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3360),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03360 : dd3360 {
+ int e;
+ ~ee03360(); // tgen
+ ee03360(); // tgen
+};
+//SIG(1 ee03360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03360 ::~ee03360(){ note_dtor("ee03360", this);} // tgen
+ee03360 ::ee03360(){ note_ctor("ee03360", this);} // tgen
+
+static void Test_ee03360()
+{
+ extern Class_Descriptor cd_ee03360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03360, buf);
+ ee03360 *dp, &lv = *(dp=new (buf) ee03360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee03360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee03360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(16,12), "ee03360");
+ check_base_class_offset(lv, (dd3360*), 0, "ee03360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03360.e");
+ test_class_info(&lv, &cd_ee03360);
+ dp->~ee03360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03360(Test_ee03360, "ee03360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03360C1Ev();
+extern void _ZN7ee03360D1Ev();
+Name_Map name_map_ee03360[] = {
+ NSPAIR(_ZN7ee03360C1Ev),
+ NSPAIR(_ZN7ee03360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee03360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03360[];
+extern void _ZN6dd33603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee03360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee03360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee03360[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee03360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee03360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee03360[] = {
+ {&(_ZTV7ee03360[4]), 4,16},
+ {&(_tg__ZTV6dd3360__7ee03360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee03360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee03360[4]), 4,6},
+ {&(_ZTV7ee03360[9]), 9,16},
+ {&(_ZTV7ee03360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee03360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee03360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03360[];
+extern VTBL_ENTRY _ZTV7ee03360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03360[];
+static VTBL_ENTRY alt_thunk_names186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03360 = { "ee03360", // class name
+ bases_ee03360, 4,
+ &(vtc_ee03360[0]), // expected_vtbl_contents
+ &(vtt_ee03360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03360),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13360 : virtual dd3360 {
+ int e;
+ ~ee13360(); // tgen
+ ee13360(); // tgen
+};
+//SIG(1 ee13360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13360 ::~ee13360(){ note_dtor("ee13360", this);} // tgen
+ee13360 ::ee13360(){ note_ctor("ee13360", this);} // tgen
+
+static void Test_ee13360()
+{
+ extern Class_Descriptor cd_ee13360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13360, buf);
+ ee13360 *dp, &lv = *(dp=new (buf) ee13360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee13360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee13360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(32,16), "ee13360");
+ check_base_class_offset(lv, (dd3360*), ABISELECT(16,8), "ee13360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13360.e");
+ test_class_info(&lv, &cd_ee13360);
+ dp->~ee13360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13360(Test_ee13360, "ee13360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13360C1Ev();
+extern void _ZN7ee13360D1Ev();
+Name_Map name_map_ee13360[] = {
+ NSPAIR(_ZN7ee13360C1Ev),
+ NSPAIR(_ZN7ee13360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee13360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, ABISELECT(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 _ZTI7ee13360[];
+extern void _ZN6dd33603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13360[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee13360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee13360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee13360[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee13360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee13360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee13360[] = {
+ {&(_ZTV7ee13360[5]), 5,22},
+ {&(_ZTV7ee13360[10]), 10,22},
+ {&(_ZTV7ee13360[15]), 15,22},
+ {&(_ZTV7ee13360[20]), 20,22},
+ {&(_tg__ZTV6dd3360__7ee13360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee13360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee13360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee13360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee13360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13360[];
+extern VTBL_ENTRY _ZTV7ee13360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13360[];
+static VTBL_ENTRY alt_thunk_names187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13360 = { "ee13360", // class name
+ bases_ee13360, 4,
+ &(vtc_ee13360[0]), // expected_vtbl_contents
+ &(vtt_ee13360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13360),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13360),9, //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 ee23360 : dd3360 {
+ int e;
+ virtual void foo(); // _ZN7ee233603fooEv
+ ~ee23360(); // tgen
+ ee23360(); // tgen
+};
+//SIG(1 ee23360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23360 ::foo(){vfunc_called(this, "_ZN7ee233603fooEv");}
+ee23360 ::~ee23360(){ note_dtor("ee23360", this);} // tgen
+ee23360 ::ee23360(){ note_ctor("ee23360", this);} // tgen
+
+static void Test_ee23360()
+{
+ extern Class_Descriptor cd_ee23360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23360, buf);
+ ee23360 *dp, &lv = *(dp=new (buf) ee23360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee23360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee23360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(16,12), "ee23360");
+ check_base_class_offset(lv, (dd3360*), 0, "ee23360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23360.e");
+ test_class_info(&lv, &cd_ee23360);
+ dp->~ee23360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23360(Test_ee23360, "ee23360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23360C1Ev();
+extern void _ZN7ee23360D1Ev();
+Name_Map name_map_ee23360[] = {
+ NSPAIR(_ZN7ee23360C1Ev),
+ NSPAIR(_ZN7ee23360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee23360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23360[];
+extern void _ZN7ee233603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233603fooEv,_ZTv0_n16_N7ee233603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233603fooEv,_ZThn12_N7ee233603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233603fooEv,_ZTv0_n16_N7ee233603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233603fooEv,_ZThn20_N7ee233603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23360[0]),
+ (VTBL_ENTRY)&_ZN7ee233603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233603fooEv,_ZTv0_n16_N7ee233603fooEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233603fooEv,_ZTv0_n16_N7ee233603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee23360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee23360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee23360[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee23360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee23360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee23360[] = {
+ {&(_ZTV7ee23360[4]), 4,16},
+ {&(_tg__ZTV6dd3360__7ee23360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee23360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee23360[4]), 4,6},
+ {&(_ZTV7ee23360[9]), 9,16},
+ {&(_ZTV7ee23360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee23360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee23360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23360[];
+extern VTBL_ENTRY _ZTV7ee23360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23360[];
+static VTBL_ENTRY alt_thunk_names188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233603fooEv,_ZTv0_n16_N7ee233603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233603fooEv,_ZThn20_N7ee233603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233603fooEv,_ZThn12_N7ee233603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23360 = { "ee23360", // class name
+ bases_ee23360, 4,
+ &(vtc_ee23360[0]), // expected_vtbl_contents
+ &(vtt_ee23360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23360),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33360 : virtual dd3360 {
+ int e;
+ virtual void foo(); // _ZN7ee333603fooEv
+ ~ee33360(); // tgen
+ ee33360(); // tgen
+};
+//SIG(1 ee33360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33360 ::foo(){vfunc_called(this, "_ZN7ee333603fooEv");}
+ee33360 ::~ee33360(){ note_dtor("ee33360", this);} // tgen
+ee33360 ::ee33360(){ note_ctor("ee33360", this);} // tgen
+
+static void Test_ee33360()
+{
+ extern Class_Descriptor cd_ee33360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33360, buf);
+ ee33360 *dp, &lv = *(dp=new (buf) ee33360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee33360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee33360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(32,16), "ee33360");
+ check_base_class_offset(lv, (dd3360*), ABISELECT(16,8), "ee33360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33360.e");
+ test_class_info(&lv, &cd_ee33360);
+ dp->~ee33360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33360(Test_ee33360, "ee33360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33360C1Ev();
+extern void _ZN7ee33360D1Ev();
+Name_Map name_map_ee33360[] = {
+ NSPAIR(_ZN7ee33360C1Ev),
+ NSPAIR(_ZN7ee33360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee33360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, ABISELECT(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 _ZTI7ee33360[];
+extern void _ZN7ee333603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333603fooEv,_ZTv0_n20_N7ee333603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333603fooEv,_ZThn8_N7ee333603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333603fooEv,_ZTv0_n16_N7ee333603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333603fooEv,_ZThn16_N7ee333603fooEv)() __attribute__((weak));
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee333603fooEv,_ZTv0_n16_N7ee333603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333603fooEv,_ZThn24_N7ee333603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33360[0]),
+ (VTBL_ENTRY)&_ZN7ee333603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333603fooEv,_ZTv0_n20_N7ee333603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333603fooEv,_ZTv0_n16_N7ee333603fooEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333603fooEv,_ZTv0_n16_N7ee333603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee33360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee33360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee33360[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee33360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee33360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee33360[] = {
+ {&(_ZTV7ee33360[5]), 5,23},
+ {&(_ZTV7ee33360[11]), 11,23},
+ {&(_ZTV7ee33360[16]), 16,23},
+ {&(_ZTV7ee33360[21]), 21,23},
+ {&(_tg__ZTV6dd3360__7ee33360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee33360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee33360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee33360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee33360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33360[];
+extern VTBL_ENTRY _ZTV7ee33360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33360[];
+static VTBL_ENTRY alt_thunk_names189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333603fooEv,_ZTv0_n16_N7ee333603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333603fooEv,_ZThn24_N7ee333603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333603fooEv,_ZThn16_N7ee333603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333603fooEv,_ZTv0_n20_N7ee333603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333603fooEv,_ZThn8_N7ee333603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33360 = { "ee33360", // class name
+ bases_ee33360, 4,
+ &(vtc_ee33360[0]), // expected_vtbl_contents
+ &(vtt_ee33360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33360),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33360),9, //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 ee43360 : dd3360 {
+ int e;
+ virtual void bar(); // _ZN7ee433603barEv
+ ~ee43360(); // tgen
+ ee43360(); // tgen
+};
+//SIG(1 ee43360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43360 ::bar(){vfunc_called(this, "_ZN7ee433603barEv");}
+ee43360 ::~ee43360(){ note_dtor("ee43360", this);} // tgen
+ee43360 ::ee43360(){ note_ctor("ee43360", this);} // tgen
+
+static void Test_ee43360()
+{
+ extern Class_Descriptor cd_ee43360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43360, buf);
+ ee43360 *dp, &lv = *(dp=new (buf) ee43360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee43360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee43360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(16,12), "ee43360");
+ check_base_class_offset(lv, (dd3360*), 0, "ee43360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43360.e");
+ test_class_info(&lv, &cd_ee43360);
+ dp->~ee43360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43360(Test_ee43360, "ee43360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43360C1Ev();
+extern void _ZN7ee43360D1Ev();
+Name_Map name_map_ee43360[] = {
+ NSPAIR(_ZN7ee43360C1Ev),
+ NSPAIR(_ZN7ee43360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee43360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43360[];
+extern void _ZN6dd33603fooEv();
+extern void _ZN7ee433603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee433603barEv,_ZTv0_n12_N7ee433603barEv)();
+extern void ABISELECT(_ZThn32_N7ee433603barEv,_ZThn20_N7ee433603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+ (VTBL_ENTRY)&_ZN7ee433603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee433603barEv,_ZTv0_n12_N7ee433603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee43360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee43360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee43360[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee43360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee43360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee43360[] = {
+ {&(_ZTV7ee43360[4]), 4,17},
+ {&(_tg__ZTV6dd3360__7ee43360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee43360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee43360[4]), 4,6},
+ {&(_ZTV7ee43360[10]), 10,17},
+ {&(_ZTV7ee43360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee43360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee43360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43360[];
+extern VTBL_ENTRY _ZTV7ee43360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43360[];
+static VTBL_ENTRY alt_thunk_names190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee433603barEv,_ZTv0_n12_N7ee433603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433603barEv,_ZThn20_N7ee433603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43360 = { "ee43360", // class name
+ bases_ee43360, 4,
+ &(vtc_ee43360[0]), // expected_vtbl_contents
+ &(vtt_ee43360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43360),8, //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 ee53360 : virtual dd3360 {
+ int e;
+ virtual void bar(); // _ZN7ee533603barEv
+ ~ee53360(); // tgen
+ ee53360(); // tgen
+};
+//SIG(1 ee53360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53360 ::bar(){vfunc_called(this, "_ZN7ee533603barEv");}
+ee53360 ::~ee53360(){ note_dtor("ee53360", this);} // tgen
+ee53360 ::ee53360(){ note_ctor("ee53360", this);} // tgen
+
+static void Test_ee53360()
+{
+ extern Class_Descriptor cd_ee53360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53360, buf);
+ ee53360 *dp, &lv = *(dp=new (buf) ee53360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee53360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee53360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(32,16), "ee53360");
+ check_base_class_offset(lv, (dd3360*), ABISELECT(16,8), "ee53360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53360.e");
+ test_class_info(&lv, &cd_ee53360);
+ dp->~ee53360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53360(Test_ee53360, "ee53360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53360C1Ev();
+extern void _ZN7ee53360D1Ev();
+Name_Map name_map_ee53360[] = {
+ NSPAIR(_ZN7ee53360C1Ev),
+ NSPAIR(_ZN7ee53360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee53360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, ABISELECT(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 _ZTI7ee53360[];
+extern void _ZN7ee533603barEv();
+extern void _ZN6dd33603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee533603barEv,_ZTv0_n12_N7ee533603barEv)();
+extern void ABISELECT(_ZThn48_N7ee533603barEv,_ZThn24_N7ee533603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53360[0]),
+ (VTBL_ENTRY)&_ZN7ee533603barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee533603barEv,_ZTv0_n12_N7ee533603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee53360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee53360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee53360[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee53360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee53360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee53360[] = {
+ {&(_ZTV7ee53360[5]), 5,23},
+ {&(_ZTV7ee53360[11]), 11,23},
+ {&(_ZTV7ee53360[16]), 16,23},
+ {&(_ZTV7ee53360[21]), 21,23},
+ {&(_tg__ZTV6dd3360__7ee53360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee53360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee53360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee53360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee53360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53360[];
+extern VTBL_ENTRY _ZTV7ee53360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53360[];
+static VTBL_ENTRY alt_thunk_names191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee533603barEv,_ZTv0_n12_N7ee533603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533603barEv,_ZThn24_N7ee533603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53360 = { "ee53360", // class name
+ bases_ee53360, 4,
+ &(vtc_ee53360[0]), // expected_vtbl_contents
+ &(vtt_ee53360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53360),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53360),9, //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 ee63360 : dd3360 {
+ int e;
+ virtual void foo(); // _ZN7ee633603fooEv
+ virtual void bar(); // _ZN7ee633603barEv
+ ~ee63360(); // tgen
+ ee63360(); // tgen
+};
+//SIG(1 ee63360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63360 ::foo(){vfunc_called(this, "_ZN7ee633603fooEv");}
+void ee63360 ::bar(){vfunc_called(this, "_ZN7ee633603barEv");}
+ee63360 ::~ee63360(){ note_dtor("ee63360", this);} // tgen
+ee63360 ::ee63360(){ note_ctor("ee63360", this);} // tgen
+
+static void Test_ee63360()
+{
+ extern Class_Descriptor cd_ee63360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63360, buf);
+ ee63360 *dp, &lv = *(dp=new (buf) ee63360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee63360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee63360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(16,12), "ee63360");
+ check_base_class_offset(lv, (dd3360*), 0, "ee63360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63360.e");
+ test_class_info(&lv, &cd_ee63360);
+ dp->~ee63360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63360(Test_ee63360, "ee63360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63360C1Ev();
+extern void _ZN7ee63360D1Ev();
+Name_Map name_map_ee63360[] = {
+ NSPAIR(_ZN7ee63360C1Ev),
+ NSPAIR(_ZN7ee63360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee63360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63360[];
+extern void _ZN7ee633603fooEv();
+extern void _ZN7ee633603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633603fooEv,_ZTv0_n16_N7ee633603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633603fooEv,_ZThn12_N7ee633603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633603barEv,_ZTv0_n12_N7ee633603barEv)();
+extern void ABISELECT(_ZThn32_N7ee633603barEv,_ZThn20_N7ee633603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633603fooEv,_ZTv0_n16_N7ee633603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633603fooEv,_ZThn20_N7ee633603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63360[0]),
+ (VTBL_ENTRY)&_ZN7ee633603fooEv,
+ (VTBL_ENTRY)&_ZN7ee633603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633603fooEv,_ZTv0_n16_N7ee633603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633603barEv,_ZTv0_n12_N7ee633603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633603fooEv,_ZTv0_n16_N7ee633603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee63360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee63360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee63360[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee63360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee63360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee63360[] = {
+ {&(_ZTV7ee63360[4]), 4,17},
+ {&(_tg__ZTV6dd3360__7ee63360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee63360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee63360[4]), 4,6},
+ {&(_ZTV7ee63360[10]), 10,17},
+ {&(_ZTV7ee63360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee63360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee63360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63360[];
+extern VTBL_ENTRY _ZTV7ee63360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63360[];
+static VTBL_ENTRY alt_thunk_names192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn20_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn12_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633603barEv,_ZTv0_n12_N7ee633603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633603barEv,_ZThn20_N7ee633603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633603fooEv,_ZTv0_n16_N7ee633603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633603fooEv,_ZThn20_N7ee633603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633603fooEv,_ZThn12_N7ee633603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63360 = { "ee63360", // class name
+ bases_ee63360, 4,
+ &(vtc_ee63360[0]), // expected_vtbl_contents
+ &(vtt_ee63360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63360),8, //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 ee73360 : virtual dd3360 {
+ int e;
+ virtual void foo(); // _ZN7ee733603fooEv
+ virtual void bar(); // _ZN7ee733603barEv
+ ~ee73360(); // tgen
+ ee73360(); // tgen
+};
+//SIG(1 ee73360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73360 ::foo(){vfunc_called(this, "_ZN7ee733603fooEv");}
+void ee73360 ::bar(){vfunc_called(this, "_ZN7ee733603barEv");}
+ee73360 ::~ee73360(){ note_dtor("ee73360", this);} // tgen
+ee73360 ::ee73360(){ note_ctor("ee73360", this);} // tgen
+
+static void Test_ee73360()
+{
+ extern Class_Descriptor cd_ee73360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73360, buf);
+ ee73360 *dp, &lv = *(dp=new (buf) ee73360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee73360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee73360");
+ check_base_class_offset(lv, (cc360*)(dd3360*), ABISELECT(32,16), "ee73360");
+ check_base_class_offset(lv, (dd3360*), ABISELECT(16,8), "ee73360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73360.e");
+ test_class_info(&lv, &cd_ee73360);
+ dp->~ee73360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73360(Test_ee73360, "ee73360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73360C1Ev();
+extern void _ZN7ee73360D1Ev();
+Name_Map name_map_ee73360[] = {
+ NSPAIR(_ZN7ee73360C1Ev),
+ NSPAIR(_ZN7ee73360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd3360;
+extern VTBL_ENTRY _ZTI6dd3360[];
+extern VTBL_ENTRY _ZTV6dd3360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3360[];
+static Base_Class bases_ee73360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd3360, 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 _ZTI7ee73360[];
+extern void _ZN7ee733603fooEv();
+extern void _ZN7ee733603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733603fooEv,_ZTv0_n20_N7ee733603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733603fooEv,_ZThn8_N7ee733603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733603fooEv,_ZTv0_n16_N7ee733603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733603fooEv,_ZThn16_N7ee733603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733603barEv,_ZTv0_n12_N7ee733603barEv)();
+extern void ABISELECT(_ZThn48_N7ee733603barEv,_ZThn24_N7ee733603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733603fooEv,_ZTv0_n16_N7ee733603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733603fooEv,_ZThn24_N7ee733603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73360[0]),
+ (VTBL_ENTRY)&_ZN7ee733603fooEv,
+ (VTBL_ENTRY)&_ZN7ee733603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733603fooEv,_ZTv0_n20_N7ee733603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733603fooEv,_ZTv0_n16_N7ee733603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733603barEv,_ZTv0_n12_N7ee733603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733603fooEv,_ZTv0_n16_N7ee733603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73360[];
+extern void _ZN6dd33603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3360__7ee73360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN6dd33603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd3360__7ee73360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3360__7ee73360[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee73360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee73360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee73360[] = {
+ {&(_ZTV7ee73360[5]), 5,24},
+ {&(_ZTV7ee73360[12]), 12,24},
+ {&(_ZTV7ee73360[17]), 17,24},
+ {&(_ZTV7ee73360[22]), 22,24},
+ {&(_tg__ZTV6dd3360__7ee73360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd3360__7ee73360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3360__7ee73360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee73360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee73360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73360[];
+extern VTBL_ENTRY _ZTV7ee73360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73360[];
+static VTBL_ENTRY alt_thunk_names193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33603fooEv,_ZTv0_n16_N6dd33603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33603fooEv,_ZThn16_N6dd33603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33603fooEv,_ZThn8_N6dd33603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733603barEv,_ZTv0_n12_N7ee733603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733603barEv,_ZThn24_N7ee733603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733603fooEv,_ZTv0_n16_N7ee733603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733603fooEv,_ZThn24_N7ee733603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733603fooEv,_ZThn16_N7ee733603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733603fooEv,_ZTv0_n20_N7ee733603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733603fooEv,_ZThn8_N7ee733603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73360 = { "ee73360", // class name
+ bases_ee73360, 4,
+ &(vtc_ee73360[0]), // expected_vtbl_contents
+ &(vtt_ee73360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73360),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73360),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4360 : cc360 {
+ int d;
+ virtual void bar(); // _ZN6dd43603barEv
+ ~dd4360(); // tgen
+ dd4360(); // tgen
+};
+//SIG(-1 dd4360) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4360 ::bar(){vfunc_called(this, "_ZN6dd43603barEv");}
+dd4360 ::~dd4360(){ note_dtor("dd4360", this);} // tgen
+dd4360 ::dd4360(){ note_ctor("dd4360", this);} // tgen
+
+static void Test_dd4360()
+{
+ extern Class_Descriptor cd_dd4360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4360, buf);
+ dd4360 *dp, &lv = *(dp=new (buf) dd4360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd4360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(16,12), "dd4360");
+ check_base_class_offset(lv, (cc360*), 0, "dd4360");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4360.d");
+ test_class_info(&lv, &cd_dd4360);
+ dp->~dd4360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4360(Test_dd4360, "dd4360", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4360C1Ev();
+extern void _ZN6dd4360D1Ev();
+Name_Map name_map_dd4360[] = {
+ NSPAIR(_ZN6dd4360C1Ev),
+ NSPAIR(_ZN6dd4360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd4360[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd4360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd4360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd4360[] = {
+ {&(_ZTV6dd4360[3]), 3,11},
+ {&(_tg__ZTV5cc360__6dd4360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd4360[4]), 4,6},
+ {&(_ZTV6dd4360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static VTBL_ENTRY alt_thunk_names194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4360 = { "dd4360", // class name
+ bases_dd4360, 3,
+ &(vtc_dd4360[0]), // expected_vtbl_contents
+ &(vtt_dd4360[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4360),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04360 : dd4360 {
+ int e;
+ ~ee04360(); // tgen
+ ee04360(); // tgen
+};
+//SIG(1 ee04360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04360 ::~ee04360(){ note_dtor("ee04360", this);} // tgen
+ee04360 ::ee04360(){ note_ctor("ee04360", this);} // tgen
+
+static void Test_ee04360()
+{
+ extern Class_Descriptor cd_ee04360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04360, buf);
+ ee04360 *dp, &lv = *(dp=new (buf) ee04360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee04360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(24,16), "ee04360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), 0, "ee04360");
+ check_base_class_offset(lv, (dd4360*), 0, "ee04360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04360.e");
+ test_class_info(&lv, &cd_ee04360);
+ dp->~ee04360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04360(Test_ee04360, "ee04360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04360C1Ev();
+extern void _ZN7ee04360D1Ev();
+Name_Map name_map_ee04360[] = {
+ NSPAIR(_ZN7ee04360C1Ev),
+ NSPAIR(_ZN7ee04360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee04360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee04360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee04360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee04360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee04360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee04360[] = {
+ {&(_ZTV7ee04360[3]), 3,11},
+ {&(_tg__ZTV6dd4360__7ee04360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee04360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee04360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee04360[4]), 4,6},
+ {&(_ZTV7ee04360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04360[];
+extern VTBL_ENTRY _ZTV7ee04360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04360[];
+static VTBL_ENTRY alt_thunk_names195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04360 = { "ee04360", // class name
+ bases_ee04360, 4,
+ &(vtc_ee04360[0]), // expected_vtbl_contents
+ &(vtt_ee04360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04360),6, //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 ee14360 : virtual dd4360 {
+ int e;
+ ~ee14360(); // tgen
+ ee14360(); // tgen
+};
+//SIG(1 ee14360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14360 ::~ee14360(){ note_dtor("ee14360", this);} // tgen
+ee14360 ::ee14360(){ note_ctor("ee14360", this);} // tgen
+
+static void Test_ee14360()
+{
+ extern Class_Descriptor cd_ee14360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14360, buf);
+ ee14360 *dp, &lv = *(dp=new (buf) ee14360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee14360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(32,20), "ee14360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), ABISELECT(16,8), "ee14360");
+ check_base_class_offset(lv, (dd4360*), ABISELECT(16,8), "ee14360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14360.e");
+ test_class_info(&lv, &cd_ee14360);
+ dp->~ee14360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14360(Test_ee14360, "ee14360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14360C1Ev();
+extern void _ZN7ee14360D1Ev();
+Name_Map name_map_ee14360[] = {
+ NSPAIR(_ZN7ee14360C1Ev),
+ NSPAIR(_ZN7ee14360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee14360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, 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 _ZTI7ee14360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14360[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee14360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee14360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee14360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee14360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee14360[] = {
+ {&(_ZTV7ee14360[4]), 4,17},
+ {&(_ZTV7ee14360[9]), 9,17},
+ {&(_ZTV7ee14360[15]), 15,17},
+ {&(_tg__ZTV6dd4360__7ee14360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee14360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee14360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee14360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14360[];
+extern VTBL_ENTRY _ZTV7ee14360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14360[];
+static VTBL_ENTRY alt_thunk_names196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14360 = { "ee14360", // class name
+ bases_ee14360, 4,
+ &(vtc_ee14360[0]), // expected_vtbl_contents
+ &(vtt_ee14360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14360),7, //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 ee24360 : dd4360 {
+ int e;
+ virtual void foo(); // _ZN7ee243603fooEv
+ ~ee24360(); // tgen
+ ee24360(); // tgen
+};
+//SIG(1 ee24360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24360 ::foo(){vfunc_called(this, "_ZN7ee243603fooEv");}
+ee24360 ::~ee24360(){ note_dtor("ee24360", this);} // tgen
+ee24360 ::ee24360(){ note_ctor("ee24360", this);} // tgen
+
+static void Test_ee24360()
+{
+ extern Class_Descriptor cd_ee24360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24360, buf);
+ ee24360 *dp, &lv = *(dp=new (buf) ee24360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee24360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(24,16), "ee24360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), 0, "ee24360");
+ check_base_class_offset(lv, (dd4360*), 0, "ee24360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24360.e");
+ test_class_info(&lv, &cd_ee24360);
+ dp->~ee24360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24360(Test_ee24360, "ee24360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24360C1Ev();
+extern void _ZN7ee24360D1Ev();
+Name_Map name_map_ee24360[] = {
+ NSPAIR(_ZN7ee24360C1Ev),
+ NSPAIR(_ZN7ee24360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee24360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24360[];
+extern void _ZN7ee243603fooEv();
+extern void _ZN6dd43603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee243603fooEv,_ZTv0_n16_N7ee243603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243603fooEv,_ZThn16_N7ee243603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24360[0]),
+ (VTBL_ENTRY)&_ZN7ee243603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee243603fooEv,_ZTv0_n16_N7ee243603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee24360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee24360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee24360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee24360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee24360[] = {
+ {&(_ZTV7ee24360[3]), 3,11},
+ {&(_tg__ZTV6dd4360__7ee24360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee24360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee24360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee24360[4]), 4,6},
+ {&(_ZTV7ee24360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24360[];
+extern VTBL_ENTRY _ZTV7ee24360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24360[];
+static VTBL_ENTRY alt_thunk_names197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee243603fooEv,_ZTv0_n16_N7ee243603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243603fooEv,_ZThn16_N7ee243603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24360 = { "ee24360", // class name
+ bases_ee24360, 4,
+ &(vtc_ee24360[0]), // expected_vtbl_contents
+ &(vtt_ee24360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24360),6, //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 ee34360 : virtual dd4360 {
+ int e;
+ virtual void foo(); // _ZN7ee343603fooEv
+ ~ee34360(); // tgen
+ ee34360(); // tgen
+};
+//SIG(1 ee34360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34360 ::foo(){vfunc_called(this, "_ZN7ee343603fooEv");}
+ee34360 ::~ee34360(){ note_dtor("ee34360", this);} // tgen
+ee34360 ::ee34360(){ note_ctor("ee34360", this);} // tgen
+
+static void Test_ee34360()
+{
+ extern Class_Descriptor cd_ee34360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34360, buf);
+ ee34360 *dp, &lv = *(dp=new (buf) ee34360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee34360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(32,20), "ee34360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), ABISELECT(16,8), "ee34360");
+ check_base_class_offset(lv, (dd4360*), ABISELECT(16,8), "ee34360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34360.e");
+ test_class_info(&lv, &cd_ee34360);
+ dp->~ee34360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34360(Test_ee34360, "ee34360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34360C1Ev();
+extern void _ZN7ee34360D1Ev();
+Name_Map name_map_ee34360[] = {
+ NSPAIR(_ZN7ee34360C1Ev),
+ NSPAIR(_ZN7ee34360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee34360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, ABISELECT(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 _ZTI7ee34360[];
+extern void _ZN7ee343603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343603fooEv,_ZTv0_n16_N7ee343603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343603fooEv,_ZThn8_N7ee343603fooEv)() __attribute__((weak));
+extern void _ZN6dd43603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee343603fooEv,_ZTv0_n16_N7ee343603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343603fooEv,_ZThn20_N7ee343603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34360[0]),
+ (VTBL_ENTRY)&_ZN7ee343603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343603fooEv,_ZTv0_n16_N7ee343603fooEv),
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343603fooEv,_ZTv0_n16_N7ee343603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee34360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee34360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee34360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee34360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee34360[] = {
+ {&(_ZTV7ee34360[4]), 4,18},
+ {&(_ZTV7ee34360[10]), 10,18},
+ {&(_ZTV7ee34360[16]), 16,18},
+ {&(_tg__ZTV6dd4360__7ee34360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee34360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee34360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee34360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34360[];
+extern VTBL_ENTRY _ZTV7ee34360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34360[];
+static VTBL_ENTRY alt_thunk_names198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343603fooEv,_ZTv0_n16_N7ee343603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343603fooEv,_ZThn20_N7ee343603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343603fooEv,_ZThn8_N7ee343603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34360 = { "ee34360", // class name
+ bases_ee34360, 4,
+ &(vtc_ee34360[0]), // expected_vtbl_contents
+ &(vtt_ee34360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34360),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34360),7, //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 ee44360 : dd4360 {
+ int e;
+ virtual void bar(); // _ZN7ee443603barEv
+ ~ee44360(); // tgen
+ ee44360(); // tgen
+};
+//SIG(1 ee44360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44360 ::bar(){vfunc_called(this, "_ZN7ee443603barEv");}
+ee44360 ::~ee44360(){ note_dtor("ee44360", this);} // tgen
+ee44360 ::ee44360(){ note_ctor("ee44360", this);} // tgen
+
+static void Test_ee44360()
+{
+ extern Class_Descriptor cd_ee44360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44360, buf);
+ ee44360 *dp, &lv = *(dp=new (buf) ee44360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee44360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(24,16), "ee44360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), 0, "ee44360");
+ check_base_class_offset(lv, (dd4360*), 0, "ee44360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44360.e");
+ test_class_info(&lv, &cd_ee44360);
+ dp->~ee44360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44360(Test_ee44360, "ee44360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44360C1Ev();
+extern void _ZN7ee44360D1Ev();
+Name_Map name_map_ee44360[] = {
+ NSPAIR(_ZN7ee44360C1Ev),
+ NSPAIR(_ZN7ee44360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee44360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN7ee443603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee443603barEv,_ZTv0_n12_N7ee443603barEv)();
+extern void ABISELECT(_ZThn24_N7ee443603barEv,_ZThn16_N7ee443603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN7ee443603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee443603barEv,_ZTv0_n12_N7ee443603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee44360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee44360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee44360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee44360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee44360[] = {
+ {&(_ZTV7ee44360[3]), 3,11},
+ {&(_tg__ZTV6dd4360__7ee44360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee44360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee44360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee44360[4]), 4,6},
+ {&(_ZTV7ee44360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44360[];
+extern VTBL_ENTRY _ZTV7ee44360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44360[];
+static VTBL_ENTRY alt_thunk_names199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee443603barEv,_ZTv0_n12_N7ee443603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443603barEv,_ZThn16_N7ee443603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44360 = { "ee44360", // class name
+ bases_ee44360, 4,
+ &(vtc_ee44360[0]), // expected_vtbl_contents
+ &(vtt_ee44360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44360),6, //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 ee54360 : virtual dd4360 {
+ int e;
+ virtual void bar(); // _ZN7ee543603barEv
+ ~ee54360(); // tgen
+ ee54360(); // tgen
+};
+//SIG(1 ee54360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54360 ::bar(){vfunc_called(this, "_ZN7ee543603barEv");}
+ee54360 ::~ee54360(){ note_dtor("ee54360", this);} // tgen
+ee54360 ::ee54360(){ note_ctor("ee54360", this);} // tgen
+
+static void Test_ee54360()
+{
+ extern Class_Descriptor cd_ee54360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54360, buf);
+ ee54360 *dp, &lv = *(dp=new (buf) ee54360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee54360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(32,20), "ee54360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), ABISELECT(16,8), "ee54360");
+ check_base_class_offset(lv, (dd4360*), ABISELECT(16,8), "ee54360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54360.e");
+ test_class_info(&lv, &cd_ee54360);
+ dp->~ee54360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54360(Test_ee54360, "ee54360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54360C1Ev();
+extern void _ZN7ee54360D1Ev();
+Name_Map name_map_ee54360[] = {
+ NSPAIR(_ZN7ee54360C1Ev),
+ NSPAIR(_ZN7ee54360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee54360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, ABISELECT(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 _ZTI7ee54360[];
+extern void _ZN7ee543603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543603barEv,_ZTv0_n20_N7ee543603barEv)();
+extern void ABISELECT(_ZThn16_N7ee543603barEv,_ZThn8_N7ee543603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee543603barEv,_ZTv0_n12_N7ee543603barEv)();
+extern void ABISELECT(_ZThn32_N7ee543603barEv,_ZThn20_N7ee543603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54360[0]),
+ (VTBL_ENTRY)&_ZN7ee543603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543603barEv,_ZTv0_n20_N7ee543603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee543603barEv,_ZTv0_n12_N7ee543603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee54360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee54360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee54360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee54360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee54360[] = {
+ {&(_ZTV7ee54360[4]), 4,18},
+ {&(_ZTV7ee54360[10]), 10,18},
+ {&(_ZTV7ee54360[16]), 16,18},
+ {&(_tg__ZTV6dd4360__7ee54360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee54360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee54360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee54360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54360[];
+extern VTBL_ENTRY _ZTV7ee54360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54360[];
+static VTBL_ENTRY alt_thunk_names200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee543603barEv,_ZTv0_n12_N7ee543603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543603barEv,_ZThn20_N7ee543603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543603barEv,_ZTv0_n20_N7ee543603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543603barEv,_ZThn8_N7ee543603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54360 = { "ee54360", // class name
+ bases_ee54360, 4,
+ &(vtc_ee54360[0]), // expected_vtbl_contents
+ &(vtt_ee54360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54360),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54360),7, //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 ee64360 : dd4360 {
+ int e;
+ virtual void foo(); // _ZN7ee643603fooEv
+ virtual void bar(); // _ZN7ee643603barEv
+ ~ee64360(); // tgen
+ ee64360(); // tgen
+};
+//SIG(1 ee64360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64360 ::foo(){vfunc_called(this, "_ZN7ee643603fooEv");}
+void ee64360 ::bar(){vfunc_called(this, "_ZN7ee643603barEv");}
+ee64360 ::~ee64360(){ note_dtor("ee64360", this);} // tgen
+ee64360 ::ee64360(){ note_ctor("ee64360", this);} // tgen
+
+static void Test_ee64360()
+{
+ extern Class_Descriptor cd_ee64360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64360, buf);
+ ee64360 *dp, &lv = *(dp=new (buf) ee64360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee64360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(24,16), "ee64360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), 0, "ee64360");
+ check_base_class_offset(lv, (dd4360*), 0, "ee64360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64360.e");
+ test_class_info(&lv, &cd_ee64360);
+ dp->~ee64360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64360(Test_ee64360, "ee64360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64360C1Ev();
+extern void _ZN7ee64360D1Ev();
+Name_Map name_map_ee64360[] = {
+ NSPAIR(_ZN7ee64360C1Ev),
+ NSPAIR(_ZN7ee64360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee64360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64360[];
+extern void _ZN7ee643603fooEv();
+extern void _ZN7ee643603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643603barEv,_ZTv0_n12_N7ee643603barEv)();
+extern void ABISELECT(_ZThn24_N7ee643603barEv,_ZThn16_N7ee643603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643603fooEv,_ZTv0_n16_N7ee643603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643603fooEv,_ZThn16_N7ee643603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64360[0]),
+ (VTBL_ENTRY)&_ZN7ee643603fooEv,
+ (VTBL_ENTRY)&_ZN7ee643603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643603barEv,_ZTv0_n12_N7ee643603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643603fooEv,_ZTv0_n16_N7ee643603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee64360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee64360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee64360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee64360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee64360[] = {
+ {&(_ZTV7ee64360[3]), 3,11},
+ {&(_tg__ZTV6dd4360__7ee64360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee64360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee64360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee64360[4]), 4,6},
+ {&(_ZTV7ee64360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64360[];
+extern VTBL_ENTRY _ZTV7ee64360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64360[];
+static VTBL_ENTRY alt_thunk_names201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43603barEv,_ZThn16_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643603fooEv,_ZTv0_n16_N7ee643603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643603fooEv,_ZThn16_N7ee643603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643603barEv,_ZTv0_n12_N7ee643603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643603barEv,_ZThn16_N7ee643603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64360 = { "ee64360", // class name
+ bases_ee64360, 4,
+ &(vtc_ee64360[0]), // expected_vtbl_contents
+ &(vtt_ee64360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64360),6, //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 ee74360 : virtual dd4360 {
+ int e;
+ virtual void foo(); // _ZN7ee743603fooEv
+ virtual void bar(); // _ZN7ee743603barEv
+ ~ee74360(); // tgen
+ ee74360(); // tgen
+};
+//SIG(1 ee74360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74360 ::foo(){vfunc_called(this, "_ZN7ee743603fooEv");}
+void ee74360 ::bar(){vfunc_called(this, "_ZN7ee743603barEv");}
+ee74360 ::~ee74360(){ note_dtor("ee74360", this);} // tgen
+ee74360 ::ee74360(){ note_ctor("ee74360", this);} // tgen
+
+static void Test_ee74360()
+{
+ extern Class_Descriptor cd_ee74360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74360, buf);
+ ee74360 *dp, &lv = *(dp=new (buf) ee74360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee74360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd4360*), ABISELECT(32,20), "ee74360");
+ check_base_class_offset(lv, (cc360*)(dd4360*), ABISELECT(16,8), "ee74360");
+ check_base_class_offset(lv, (dd4360*), ABISELECT(16,8), "ee74360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74360.e");
+ test_class_info(&lv, &cd_ee74360);
+ dp->~ee74360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74360(Test_ee74360, "ee74360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74360C1Ev();
+extern void _ZN7ee74360D1Ev();
+Name_Map name_map_ee74360[] = {
+ NSPAIR(_ZN7ee74360C1Ev),
+ NSPAIR(_ZN7ee74360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd4360;
+extern VTBL_ENTRY _ZTI6dd4360[];
+extern VTBL_ENTRY _ZTV6dd4360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4360[];
+static Base_Class bases_ee74360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4360, ABISELECT(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 _ZTI7ee74360[];
+extern void _ZN7ee743603fooEv();
+extern void _ZN7ee743603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743603fooEv,_ZTv0_n16_N7ee743603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743603fooEv,_ZThn8_N7ee743603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743603barEv,_ZTv0_n20_N7ee743603barEv)();
+extern void ABISELECT(_ZThn16_N7ee743603barEv,_ZThn8_N7ee743603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743603barEv,_ZTv0_n12_N7ee743603barEv)();
+extern void ABISELECT(_ZThn32_N7ee743603barEv,_ZThn20_N7ee743603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743603fooEv,_ZTv0_n16_N7ee743603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743603fooEv,_ZThn20_N7ee743603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74360[0]),
+ (VTBL_ENTRY)&_ZN7ee743603fooEv,
+ (VTBL_ENTRY)&_ZN7ee743603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743603fooEv,_ZTv0_n16_N7ee743603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743603barEv,_ZTv0_n20_N7ee743603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743603barEv,_ZTv0_n12_N7ee743603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743603fooEv,_ZTv0_n16_N7ee743603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74360[];
+extern void _ZN5cc3603fooEv();
+extern void _ZN6dd43603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4360__7ee74360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ (VTBL_ENTRY)&_ZN6dd43603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd4360__7ee74360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd4360__7ee74360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv)();
+extern void ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4360__7ee74360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee74360[] = {
+ {&(_ZTV7ee74360[4]), 4,19},
+ {&(_ZTV7ee74360[11]), 11,19},
+ {&(_ZTV7ee74360[17]), 17,19},
+ {&(_tg__ZTV6dd4360__7ee74360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd4360__7ee74360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd4360__7ee74360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4360__7ee74360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74360[];
+extern VTBL_ENTRY _ZTV7ee74360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74360[];
+static VTBL_ENTRY alt_thunk_names202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd43603barEv,_ZTv0_n12_N6dd43603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43603barEv,_ZThn12_N6dd43603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743603barEv,_ZTv0_n12_N7ee743603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743603barEv,_ZThn20_N7ee743603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743603barEv,_ZTv0_n20_N7ee743603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743603barEv,_ZThn8_N7ee743603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743603fooEv,_ZTv0_n16_N7ee743603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743603fooEv,_ZThn20_N7ee743603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743603fooEv,_ZThn8_N7ee743603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74360 = { "ee74360", // class name
+ bases_ee74360, 4,
+ &(vtc_ee74360[0]), // expected_vtbl_contents
+ &(vtt_ee74360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74360),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74360),7, //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 dd5360 : virtual cc360 {
+ int d;
+ virtual void bar(); // _ZN6dd53603barEv
+ ~dd5360(); // tgen
+ dd5360(); // tgen
+};
+//SIG(-1 dd5360) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5360 ::bar(){vfunc_called(this, "_ZN6dd53603barEv");}
+dd5360 ::~dd5360(){ note_dtor("dd5360", this);} // tgen
+dd5360 ::dd5360(){ note_ctor("dd5360", this);} // tgen
+
+static void Test_dd5360()
+{
+ extern Class_Descriptor cd_dd5360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5360, buf);
+ dd5360 *dp, &lv = *(dp=new (buf) dd5360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd5360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,16), "dd5360");
+ check_base_class_offset(lv, (cc360*), ABISELECT(16,8), "dd5360");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5360.d");
+ test_class_info(&lv, &cd_dd5360);
+ dp->~dd5360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5360(Test_dd5360, "dd5360", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5360C1Ev();
+extern void _ZN6dd5360D1Ev();
+Name_Map name_map_dd5360[] = {
+ NSPAIR(_ZN6dd5360C1Ev),
+ NSPAIR(_ZN6dd5360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd5360[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(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 _ZTI6dd5360[];
+extern void _ZN6dd53603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd5360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd5360[] = {
+ {&(_ZTV6dd5360[4]), 4,16},
+ {&(_ZTV6dd5360[9]), 9,16},
+ {&(_ZTV6dd5360[14]), 14,16},
+ {&(_tg__ZTV5cc360__6dd5360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd5360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static VTBL_ENTRY alt_thunk_names203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5360 = { "dd5360", // class name
+ bases_dd5360, 3,
+ &(vtc_dd5360[0]), // expected_vtbl_contents
+ &(vtt_dd5360[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5360),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05360 : dd5360 {
+ int e;
+ ~ee05360(); // tgen
+ ee05360(); // tgen
+};
+//SIG(1 ee05360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05360 ::~ee05360(){ note_dtor("ee05360", this);} // tgen
+ee05360 ::ee05360(){ note_ctor("ee05360", this);} // tgen
+
+static void Test_ee05360()
+{
+ extern Class_Descriptor cd_ee05360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05360, buf);
+ ee05360 *dp, &lv = *(dp=new (buf) ee05360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee05360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee05360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(16,12), "ee05360");
+ check_base_class_offset(lv, (dd5360*), 0, "ee05360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05360.e");
+ test_class_info(&lv, &cd_ee05360);
+ dp->~ee05360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05360(Test_ee05360, "ee05360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05360C1Ev();
+extern void _ZN7ee05360D1Ev();
+Name_Map name_map_ee05360[] = {
+ NSPAIR(_ZN7ee05360C1Ev),
+ NSPAIR(_ZN7ee05360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee05360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05360[];
+extern void _ZN6dd53603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee05360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee05360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee05360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee05360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee05360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee05360[] = {
+ {&(_ZTV7ee05360[4]), 4,16},
+ {&(_tg__ZTV6dd5360__7ee05360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee05360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee05360[4]), 4,6},
+ {&(_ZTV7ee05360[9]), 9,16},
+ {&(_ZTV7ee05360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee05360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee05360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05360[];
+extern VTBL_ENTRY _ZTV7ee05360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05360[];
+static VTBL_ENTRY alt_thunk_names204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05360 = { "ee05360", // class name
+ bases_ee05360, 4,
+ &(vtc_ee05360[0]), // expected_vtbl_contents
+ &(vtt_ee05360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05360),8, //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 ee15360 : virtual dd5360 {
+ int e;
+ ~ee15360(); // tgen
+ ee15360(); // tgen
+};
+//SIG(1 ee15360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15360 ::~ee15360(){ note_dtor("ee15360", this);} // tgen
+ee15360 ::ee15360(){ note_ctor("ee15360", this);} // tgen
+
+static void Test_ee15360()
+{
+ extern Class_Descriptor cd_ee15360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15360, buf);
+ ee15360 *dp, &lv = *(dp=new (buf) ee15360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee15360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee15360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(32,16), "ee15360");
+ check_base_class_offset(lv, (dd5360*), ABISELECT(16,8), "ee15360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15360.e");
+ test_class_info(&lv, &cd_ee15360);
+ dp->~ee15360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15360(Test_ee15360, "ee15360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15360C1Ev();
+extern void _ZN7ee15360D1Ev();
+Name_Map name_map_ee15360[] = {
+ NSPAIR(_ZN7ee15360C1Ev),
+ NSPAIR(_ZN7ee15360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee15360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, ABISELECT(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 _ZTI7ee15360[];
+extern void _ZN6dd53603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15360[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee15360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee15360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee15360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee15360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee15360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee15360[] = {
+ {&(_ZTV7ee15360[5]), 5,22},
+ {&(_ZTV7ee15360[10]), 10,22},
+ {&(_ZTV7ee15360[15]), 15,22},
+ {&(_ZTV7ee15360[20]), 20,22},
+ {&(_tg__ZTV6dd5360__7ee15360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee15360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee15360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee15360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee15360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15360[];
+extern VTBL_ENTRY _ZTV7ee15360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15360[];
+static VTBL_ENTRY alt_thunk_names205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15360 = { "ee15360", // class name
+ bases_ee15360, 4,
+ &(vtc_ee15360[0]), // expected_vtbl_contents
+ &(vtt_ee15360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15360),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15360),9, //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 ee25360 : dd5360 {
+ int e;
+ virtual void foo(); // _ZN7ee253603fooEv
+ ~ee25360(); // tgen
+ ee25360(); // tgen
+};
+//SIG(1 ee25360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25360 ::foo(){vfunc_called(this, "_ZN7ee253603fooEv");}
+ee25360 ::~ee25360(){ note_dtor("ee25360", this);} // tgen
+ee25360 ::ee25360(){ note_ctor("ee25360", this);} // tgen
+
+static void Test_ee25360()
+{
+ extern Class_Descriptor cd_ee25360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25360, buf);
+ ee25360 *dp, &lv = *(dp=new (buf) ee25360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee25360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee25360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(16,12), "ee25360");
+ check_base_class_offset(lv, (dd5360*), 0, "ee25360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25360.e");
+ test_class_info(&lv, &cd_ee25360);
+ dp->~ee25360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25360(Test_ee25360, "ee25360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25360C1Ev();
+extern void _ZN7ee25360D1Ev();
+Name_Map name_map_ee25360[] = {
+ NSPAIR(_ZN7ee25360C1Ev),
+ NSPAIR(_ZN7ee25360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee25360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25360[];
+extern void _ZN6dd53603barEv();
+extern void _ZN7ee253603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253603fooEv,_ZTv0_n16_N7ee253603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253603fooEv,_ZThn12_N7ee253603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee253603fooEv,_ZTv0_n16_N7ee253603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253603fooEv,_ZThn20_N7ee253603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+ (VTBL_ENTRY)&_ZN7ee253603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253603fooEv,_ZTv0_n16_N7ee253603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253603fooEv,_ZTv0_n16_N7ee253603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee25360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee25360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee25360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee25360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee25360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee25360[] = {
+ {&(_ZTV7ee25360[4]), 4,17},
+ {&(_tg__ZTV6dd5360__7ee25360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee25360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee25360[4]), 4,6},
+ {&(_ZTV7ee25360[10]), 10,17},
+ {&(_ZTV7ee25360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee25360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee25360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25360[];
+extern VTBL_ENTRY _ZTV7ee25360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25360[];
+static VTBL_ENTRY alt_thunk_names206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253603fooEv,_ZTv0_n16_N7ee253603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253603fooEv,_ZThn20_N7ee253603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253603fooEv,_ZThn12_N7ee253603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25360 = { "ee25360", // class name
+ bases_ee25360, 4,
+ &(vtc_ee25360[0]), // expected_vtbl_contents
+ &(vtt_ee25360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25360),8, //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 ee35360 : virtual dd5360 {
+ int e;
+ virtual void foo(); // _ZN7ee353603fooEv
+ ~ee35360(); // tgen
+ ee35360(); // tgen
+};
+//SIG(1 ee35360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35360 ::foo(){vfunc_called(this, "_ZN7ee353603fooEv");}
+ee35360 ::~ee35360(){ note_dtor("ee35360", this);} // tgen
+ee35360 ::ee35360(){ note_ctor("ee35360", this);} // tgen
+
+static void Test_ee35360()
+{
+ extern Class_Descriptor cd_ee35360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35360, buf);
+ ee35360 *dp, &lv = *(dp=new (buf) ee35360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee35360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee35360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(32,16), "ee35360");
+ check_base_class_offset(lv, (dd5360*), ABISELECT(16,8), "ee35360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35360.e");
+ test_class_info(&lv, &cd_ee35360);
+ dp->~ee35360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35360(Test_ee35360, "ee35360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35360C1Ev();
+extern void _ZN7ee35360D1Ev();
+Name_Map name_map_ee35360[] = {
+ NSPAIR(_ZN7ee35360C1Ev),
+ NSPAIR(_ZN7ee35360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee35360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, ABISELECT(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 _ZTI7ee35360[];
+extern void _ZN7ee353603fooEv();
+extern void _ZN6dd53603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353603fooEv,_ZTv0_n16_N7ee353603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353603fooEv,_ZThn16_N7ee353603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee353603fooEv,_ZTv0_n16_N7ee353603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353603fooEv,_ZThn24_N7ee353603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35360[0]),
+ (VTBL_ENTRY)&_ZN7ee353603fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353603fooEv,_ZTv0_n16_N7ee353603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353603fooEv,_ZTv0_n16_N7ee353603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee35360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee35360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee35360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee35360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee35360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee35360[] = {
+ {&(_ZTV7ee35360[5]), 5,23},
+ {&(_ZTV7ee35360[11]), 11,23},
+ {&(_ZTV7ee35360[16]), 16,23},
+ {&(_ZTV7ee35360[21]), 21,23},
+ {&(_tg__ZTV6dd5360__7ee35360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee35360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee35360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee35360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee35360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35360[];
+extern VTBL_ENTRY _ZTV7ee35360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35360[];
+static VTBL_ENTRY alt_thunk_names207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353603fooEv,_ZTv0_n16_N7ee353603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353603fooEv,_ZThn24_N7ee353603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353603fooEv,_ZThn16_N7ee353603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35360 = { "ee35360", // class name
+ bases_ee35360, 4,
+ &(vtc_ee35360[0]), // expected_vtbl_contents
+ &(vtt_ee35360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35360),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35360),9, //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 ee45360 : dd5360 {
+ int e;
+ virtual void bar(); // _ZN7ee453603barEv
+ ~ee45360(); // tgen
+ ee45360(); // tgen
+};
+//SIG(1 ee45360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45360 ::bar(){vfunc_called(this, "_ZN7ee453603barEv");}
+ee45360 ::~ee45360(){ note_dtor("ee45360", this);} // tgen
+ee45360 ::ee45360(){ note_ctor("ee45360", this);} // tgen
+
+static void Test_ee45360()
+{
+ extern Class_Descriptor cd_ee45360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45360, buf);
+ ee45360 *dp, &lv = *(dp=new (buf) ee45360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee45360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee45360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(16,12), "ee45360");
+ check_base_class_offset(lv, (dd5360*), 0, "ee45360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45360.e");
+ test_class_info(&lv, &cd_ee45360);
+ dp->~ee45360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45360(Test_ee45360, "ee45360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45360C1Ev();
+extern void _ZN7ee45360D1Ev();
+Name_Map name_map_ee45360[] = {
+ NSPAIR(_ZN7ee45360C1Ev),
+ NSPAIR(_ZN7ee45360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee45360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45360[];
+extern void _ZN7ee453603barEv();
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee453603barEv,_ZTv0_n12_N7ee453603barEv)();
+extern void ABISELECT(_ZThn32_N7ee453603barEv,_ZThn20_N7ee453603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45360[0]),
+ (VTBL_ENTRY)&_ZN7ee453603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee453603barEv,_ZTv0_n12_N7ee453603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee45360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee45360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee45360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee45360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee45360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee45360[] = {
+ {&(_ZTV7ee45360[4]), 4,16},
+ {&(_tg__ZTV6dd5360__7ee45360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee45360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee45360[4]), 4,6},
+ {&(_ZTV7ee45360[9]), 9,16},
+ {&(_ZTV7ee45360[14]), 14,16},
+ {&(_tg__ZTV5cc360__7ee45360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee45360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45360[];
+extern VTBL_ENTRY _ZTV7ee45360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45360[];
+static VTBL_ENTRY alt_thunk_names208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee453603barEv,_ZTv0_n12_N7ee453603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453603barEv,_ZThn20_N7ee453603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45360 = { "ee45360", // class name
+ bases_ee45360, 4,
+ &(vtc_ee45360[0]), // expected_vtbl_contents
+ &(vtt_ee45360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45360),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45360),8, //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 ee55360 : virtual dd5360 {
+ int e;
+ virtual void bar(); // _ZN7ee553603barEv
+ ~ee55360(); // tgen
+ ee55360(); // tgen
+};
+//SIG(1 ee55360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55360 ::bar(){vfunc_called(this, "_ZN7ee553603barEv");}
+ee55360 ::~ee55360(){ note_dtor("ee55360", this);} // tgen
+ee55360 ::ee55360(){ note_ctor("ee55360", this);} // tgen
+
+static void Test_ee55360()
+{
+ extern Class_Descriptor cd_ee55360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55360, buf);
+ ee55360 *dp, &lv = *(dp=new (buf) ee55360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee55360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee55360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(32,16), "ee55360");
+ check_base_class_offset(lv, (dd5360*), ABISELECT(16,8), "ee55360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55360.e");
+ test_class_info(&lv, &cd_ee55360);
+ dp->~ee55360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55360(Test_ee55360, "ee55360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55360C1Ev();
+extern void _ZN7ee55360D1Ev();
+Name_Map name_map_ee55360[] = {
+ NSPAIR(_ZN7ee55360C1Ev),
+ NSPAIR(_ZN7ee55360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee55360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, ABISELECT(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 _ZTI7ee55360[];
+extern void _ZN7ee553603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553603barEv,_ZTv0_n20_N7ee553603barEv)();
+extern void ABISELECT(_ZThn16_N7ee553603barEv,_ZThn8_N7ee553603barEv)() __attribute__((weak));
+extern void _ZN5cc3603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee553603barEv,_ZTv0_n12_N7ee553603barEv)();
+extern void ABISELECT(_ZThn48_N7ee553603barEv,_ZThn24_N7ee553603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55360[0]),
+ (VTBL_ENTRY)&_ZN7ee553603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553603barEv,_ZTv0_n20_N7ee553603barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee553603barEv,_ZTv0_n12_N7ee553603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee55360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee55360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee55360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee55360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee55360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee55360[] = {
+ {&(_ZTV7ee55360[5]), 5,23},
+ {&(_ZTV7ee55360[11]), 11,23},
+ {&(_ZTV7ee55360[16]), 16,23},
+ {&(_ZTV7ee55360[21]), 21,23},
+ {&(_tg__ZTV6dd5360__7ee55360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee55360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee55360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee55360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee55360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55360[];
+extern VTBL_ENTRY _ZTV7ee55360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55360[];
+static VTBL_ENTRY alt_thunk_names209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee553603barEv,_ZTv0_n12_N7ee553603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553603barEv,_ZThn24_N7ee553603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553603barEv,_ZTv0_n20_N7ee553603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553603barEv,_ZThn8_N7ee553603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55360 = { "ee55360", // class name
+ bases_ee55360, 4,
+ &(vtc_ee55360[0]), // expected_vtbl_contents
+ &(vtt_ee55360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55360),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55360),9, //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 ee65360 : dd5360 {
+ int e;
+ virtual void foo(); // _ZN7ee653603fooEv
+ virtual void bar(); // _ZN7ee653603barEv
+ ~ee65360(); // tgen
+ ee65360(); // tgen
+};
+//SIG(1 ee65360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65360 ::foo(){vfunc_called(this, "_ZN7ee653603fooEv");}
+void ee65360 ::bar(){vfunc_called(this, "_ZN7ee653603barEv");}
+ee65360 ::~ee65360(){ note_dtor("ee65360", this);} // tgen
+ee65360 ::ee65360(){ note_ctor("ee65360", this);} // tgen
+
+static void Test_ee65360()
+{
+ extern Class_Descriptor cd_ee65360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65360, buf);
+ ee65360 *dp, &lv = *(dp=new (buf) ee65360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee65360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee65360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(16,12), "ee65360");
+ check_base_class_offset(lv, (dd5360*), 0, "ee65360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65360.e");
+ test_class_info(&lv, &cd_ee65360);
+ dp->~ee65360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65360(Test_ee65360, "ee65360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65360C1Ev();
+extern void _ZN7ee65360D1Ev();
+Name_Map name_map_ee65360[] = {
+ NSPAIR(_ZN7ee65360C1Ev),
+ NSPAIR(_ZN7ee65360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee65360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65360[];
+extern void _ZN7ee653603barEv();
+extern void _ZN7ee653603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653603fooEv,_ZTv0_n16_N7ee653603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653603fooEv,_ZThn12_N7ee653603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653603barEv,_ZTv0_n12_N7ee653603barEv)();
+extern void ABISELECT(_ZThn32_N7ee653603barEv,_ZThn20_N7ee653603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653603fooEv,_ZTv0_n16_N7ee653603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653603fooEv,_ZThn20_N7ee653603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65360[0]),
+ (VTBL_ENTRY)&_ZN7ee653603barEv,
+ (VTBL_ENTRY)&_ZN7ee653603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653603fooEv,_ZTv0_n16_N7ee653603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653603barEv,_ZTv0_n12_N7ee653603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653603fooEv,_ZTv0_n16_N7ee653603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee65360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee65360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee65360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee65360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee65360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee65360[] = {
+ {&(_ZTV7ee65360[4]), 4,17},
+ {&(_tg__ZTV6dd5360__7ee65360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee65360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee65360[4]), 4,6},
+ {&(_ZTV7ee65360[10]), 10,17},
+ {&(_ZTV7ee65360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee65360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee65360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65360[];
+extern VTBL_ENTRY _ZTV7ee65360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65360[];
+static VTBL_ENTRY alt_thunk_names210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn20_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653603barEv,_ZTv0_n12_N7ee653603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653603barEv,_ZThn20_N7ee653603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653603fooEv,_ZTv0_n16_N7ee653603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653603fooEv,_ZThn20_N7ee653603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653603fooEv,_ZThn12_N7ee653603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65360 = { "ee65360", // class name
+ bases_ee65360, 4,
+ &(vtc_ee65360[0]), // expected_vtbl_contents
+ &(vtt_ee65360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65360),8, //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 ee75360 : virtual dd5360 {
+ int e;
+ virtual void foo(); // _ZN7ee753603fooEv
+ virtual void bar(); // _ZN7ee753603barEv
+ ~ee75360(); // tgen
+ ee75360(); // tgen
+};
+//SIG(1 ee75360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75360 ::foo(){vfunc_called(this, "_ZN7ee753603fooEv");}
+void ee75360 ::bar(){vfunc_called(this, "_ZN7ee753603barEv");}
+ee75360 ::~ee75360(){ note_dtor("ee75360", this);} // tgen
+ee75360 ::ee75360(){ note_ctor("ee75360", this);} // tgen
+
+static void Test_ee75360()
+{
+ extern Class_Descriptor cd_ee75360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75360, buf);
+ ee75360 *dp, &lv = *(dp=new (buf) ee75360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee75360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee75360");
+ check_base_class_offset(lv, (cc360*)(dd5360*), ABISELECT(32,16), "ee75360");
+ check_base_class_offset(lv, (dd5360*), ABISELECT(16,8), "ee75360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75360.e");
+ test_class_info(&lv, &cd_ee75360);
+ dp->~ee75360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75360(Test_ee75360, "ee75360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75360C1Ev();
+extern void _ZN7ee75360D1Ev();
+Name_Map name_map_ee75360[] = {
+ NSPAIR(_ZN7ee75360C1Ev),
+ NSPAIR(_ZN7ee75360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd5360;
+extern VTBL_ENTRY _ZTI6dd5360[];
+extern VTBL_ENTRY _ZTV6dd5360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5360[];
+static Base_Class bases_ee75360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd5360, 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 _ZTI7ee75360[];
+extern void _ZN7ee753603fooEv();
+extern void _ZN7ee753603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753603barEv,_ZTv0_n20_N7ee753603barEv)();
+extern void ABISELECT(_ZThn16_N7ee753603barEv,_ZThn8_N7ee753603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753603fooEv,_ZTv0_n16_N7ee753603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753603fooEv,_ZThn16_N7ee753603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753603barEv,_ZTv0_n12_N7ee753603barEv)();
+extern void ABISELECT(_ZThn48_N7ee753603barEv,_ZThn24_N7ee753603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753603fooEv,_ZTv0_n16_N7ee753603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753603fooEv,_ZThn24_N7ee753603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75360[0]),
+ (VTBL_ENTRY)&_ZN7ee753603fooEv,
+ (VTBL_ENTRY)&_ZN7ee753603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753603barEv,_ZTv0_n20_N7ee753603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753603fooEv,_ZTv0_n16_N7ee753603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753603barEv,_ZTv0_n12_N7ee753603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753603fooEv,_ZTv0_n16_N7ee753603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75360[];
+extern void _ZN6dd53603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5360__7ee75360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN6dd53603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd5360__7ee75360[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv)();
+extern void ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5360__7ee75360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee75360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee75360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee75360[] = {
+ {&(_ZTV7ee75360[5]), 5,24},
+ {&(_ZTV7ee75360[12]), 12,24},
+ {&(_ZTV7ee75360[17]), 17,24},
+ {&(_ZTV7ee75360[22]), 22,24},
+ {&(_tg__ZTV6dd5360__7ee75360[4]), 4,5},
+ {&(_tg__ZTV5cc360__6dd5360__7ee75360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5360__7ee75360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee75360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee75360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75360[];
+extern VTBL_ENTRY _ZTV7ee75360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75360[];
+static VTBL_ENTRY alt_thunk_names211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd53603barEv,_ZTv0_n12_N6dd53603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53603barEv,_ZThn16_N6dd53603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753603barEv,_ZTv0_n12_N7ee753603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753603barEv,_ZThn24_N7ee753603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753603fooEv,_ZTv0_n16_N7ee753603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753603fooEv,_ZThn24_N7ee753603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753603fooEv,_ZThn16_N7ee753603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753603barEv,_ZTv0_n20_N7ee753603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753603barEv,_ZThn8_N7ee753603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75360 = { "ee75360", // class name
+ bases_ee75360, 4,
+ &(vtc_ee75360[0]), // expected_vtbl_contents
+ &(vtt_ee75360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75360),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75360),9, //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 dd6360 : cc360 {
+ int d;
+ virtual void bar(); // _ZN6dd63603barEv
+ virtual void foo(); // _ZN6dd63603fooEv
+ ~dd6360(); // tgen
+ dd6360(); // tgen
+};
+//SIG(-1 dd6360) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6360 ::bar(){vfunc_called(this, "_ZN6dd63603barEv");}
+void dd6360 ::foo(){vfunc_called(this, "_ZN6dd63603fooEv");}
+dd6360 ::~dd6360(){ note_dtor("dd6360", this);} // tgen
+dd6360 ::dd6360(){ note_ctor("dd6360", this);} // tgen
+
+static void Test_dd6360()
+{
+ extern Class_Descriptor cd_dd6360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6360, buf);
+ dd6360 *dp, &lv = *(dp=new (buf) dd6360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd6360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(16,12), "dd6360");
+ check_base_class_offset(lv, (cc360*), 0, "dd6360");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6360.d");
+ test_class_info(&lv, &cd_dd6360);
+ dp->~dd6360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6360(Test_dd6360, "dd6360", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6360C1Ev();
+extern void _ZN6dd6360D1Ev();
+Name_Map name_map_dd6360[] = {
+ NSPAIR(_ZN6dd6360C1Ev),
+ NSPAIR(_ZN6dd6360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd6360[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd6360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd6360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd6360[] = {
+ {&(_ZTV6dd6360[3]), 3,11},
+ {&(_tg__ZTV5cc360__6dd6360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd6360[4]), 4,6},
+ {&(_ZTV6dd6360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static VTBL_ENTRY alt_thunk_names212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6360 = { "dd6360", // class name
+ bases_dd6360, 3,
+ &(vtc_dd6360[0]), // expected_vtbl_contents
+ &(vtt_dd6360[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6360),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06360 : dd6360 {
+ int e;
+ ~ee06360(); // tgen
+ ee06360(); // tgen
+};
+//SIG(1 ee06360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06360 ::~ee06360(){ note_dtor("ee06360", this);} // tgen
+ee06360 ::ee06360(){ note_ctor("ee06360", this);} // tgen
+
+static void Test_ee06360()
+{
+ extern Class_Descriptor cd_ee06360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06360, buf);
+ ee06360 *dp, &lv = *(dp=new (buf) ee06360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee06360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(24,16), "ee06360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), 0, "ee06360");
+ check_base_class_offset(lv, (dd6360*), 0, "ee06360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06360.e");
+ test_class_info(&lv, &cd_ee06360);
+ dp->~ee06360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06360(Test_ee06360, "ee06360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06360C1Ev();
+extern void _ZN7ee06360D1Ev();
+Name_Map name_map_ee06360[] = {
+ NSPAIR(_ZN7ee06360C1Ev),
+ NSPAIR(_ZN7ee06360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee06360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee06360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee06360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee06360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee06360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee06360[] = {
+ {&(_ZTV7ee06360[3]), 3,11},
+ {&(_tg__ZTV6dd6360__7ee06360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee06360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee06360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee06360[4]), 4,6},
+ {&(_ZTV7ee06360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06360[];
+extern VTBL_ENTRY _ZTV7ee06360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06360[];
+static VTBL_ENTRY alt_thunk_names213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06360 = { "ee06360", // class name
+ bases_ee06360, 4,
+ &(vtc_ee06360[0]), // expected_vtbl_contents
+ &(vtt_ee06360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06360),6, //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 ee16360 : virtual dd6360 {
+ int e;
+ ~ee16360(); // tgen
+ ee16360(); // tgen
+};
+//SIG(1 ee16360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16360 ::~ee16360(){ note_dtor("ee16360", this);} // tgen
+ee16360 ::ee16360(){ note_ctor("ee16360", this);} // tgen
+
+static void Test_ee16360()
+{
+ extern Class_Descriptor cd_ee16360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16360, buf);
+ ee16360 *dp, &lv = *(dp=new (buf) ee16360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee16360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(32,20), "ee16360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), ABISELECT(16,8), "ee16360");
+ check_base_class_offset(lv, (dd6360*), ABISELECT(16,8), "ee16360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16360.e");
+ test_class_info(&lv, &cd_ee16360);
+ dp->~ee16360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16360(Test_ee16360, "ee16360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16360C1Ev();
+extern void _ZN7ee16360D1Ev();
+Name_Map name_map_ee16360[] = {
+ NSPAIR(_ZN7ee16360C1Ev),
+ NSPAIR(_ZN7ee16360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee16360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, 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 _ZTI7ee16360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16360[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee16360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee16360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee16360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee16360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee16360[] = {
+ {&(_ZTV7ee16360[4]), 4,17},
+ {&(_ZTV7ee16360[9]), 9,17},
+ {&(_ZTV7ee16360[15]), 15,17},
+ {&(_tg__ZTV6dd6360__7ee16360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee16360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee16360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee16360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16360[];
+extern VTBL_ENTRY _ZTV7ee16360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16360[];
+static VTBL_ENTRY alt_thunk_names214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16360 = { "ee16360", // class name
+ bases_ee16360, 4,
+ &(vtc_ee16360[0]), // expected_vtbl_contents
+ &(vtt_ee16360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26360 : dd6360 {
+ int e;
+ virtual void foo(); // _ZN7ee263603fooEv
+ ~ee26360(); // tgen
+ ee26360(); // tgen
+};
+//SIG(1 ee26360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26360 ::foo(){vfunc_called(this, "_ZN7ee263603fooEv");}
+ee26360 ::~ee26360(){ note_dtor("ee26360", this);} // tgen
+ee26360 ::ee26360(){ note_ctor("ee26360", this);} // tgen
+
+static void Test_ee26360()
+{
+ extern Class_Descriptor cd_ee26360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26360, buf);
+ ee26360 *dp, &lv = *(dp=new (buf) ee26360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee26360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(24,16), "ee26360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), 0, "ee26360");
+ check_base_class_offset(lv, (dd6360*), 0, "ee26360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26360.e");
+ test_class_info(&lv, &cd_ee26360);
+ dp->~ee26360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26360(Test_ee26360, "ee26360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26360C1Ev();
+extern void _ZN7ee26360D1Ev();
+Name_Map name_map_ee26360[] = {
+ NSPAIR(_ZN7ee26360C1Ev),
+ NSPAIR(_ZN7ee26360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee26360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26360[];
+extern void _ZN7ee263603fooEv();
+extern void _ZN6dd63603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee263603fooEv,_ZTv0_n16_N7ee263603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263603fooEv,_ZThn16_N7ee263603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26360[0]),
+ (VTBL_ENTRY)&_ZN7ee263603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee263603fooEv,_ZTv0_n16_N7ee263603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee26360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee26360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee26360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee26360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee26360[] = {
+ {&(_ZTV7ee26360[3]), 3,11},
+ {&(_tg__ZTV6dd6360__7ee26360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee26360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee26360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee26360[4]), 4,6},
+ {&(_ZTV7ee26360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26360[];
+extern VTBL_ENTRY _ZTV7ee26360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26360[];
+static VTBL_ENTRY alt_thunk_names215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee263603fooEv,_ZTv0_n16_N7ee263603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263603fooEv,_ZThn16_N7ee263603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26360 = { "ee26360", // class name
+ bases_ee26360, 4,
+ &(vtc_ee26360[0]), // expected_vtbl_contents
+ &(vtt_ee26360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26360),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36360 : virtual dd6360 {
+ int e;
+ virtual void foo(); // _ZN7ee363603fooEv
+ ~ee36360(); // tgen
+ ee36360(); // tgen
+};
+//SIG(1 ee36360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36360 ::foo(){vfunc_called(this, "_ZN7ee363603fooEv");}
+ee36360 ::~ee36360(){ note_dtor("ee36360", this);} // tgen
+ee36360 ::ee36360(){ note_ctor("ee36360", this);} // tgen
+
+static void Test_ee36360()
+{
+ extern Class_Descriptor cd_ee36360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36360, buf);
+ ee36360 *dp, &lv = *(dp=new (buf) ee36360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee36360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(32,20), "ee36360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), ABISELECT(16,8), "ee36360");
+ check_base_class_offset(lv, (dd6360*), ABISELECT(16,8), "ee36360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36360.e");
+ test_class_info(&lv, &cd_ee36360);
+ dp->~ee36360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36360(Test_ee36360, "ee36360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36360C1Ev();
+extern void _ZN7ee36360D1Ev();
+Name_Map name_map_ee36360[] = {
+ NSPAIR(_ZN7ee36360C1Ev),
+ NSPAIR(_ZN7ee36360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee36360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, ABISELECT(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 _ZTI7ee36360[];
+extern void _ZN7ee363603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363603fooEv,_ZTv0_n16_N7ee363603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363603fooEv,_ZThn8_N7ee363603fooEv)() __attribute__((weak));
+extern void _ZN6dd63603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee363603fooEv,_ZTv0_n16_N7ee363603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363603fooEv,_ZThn20_N7ee363603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36360[0]),
+ (VTBL_ENTRY)&_ZN7ee363603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363603fooEv,_ZTv0_n16_N7ee363603fooEv),
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363603fooEv,_ZTv0_n16_N7ee363603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee36360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee36360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee36360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee36360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee36360[] = {
+ {&(_ZTV7ee36360[4]), 4,18},
+ {&(_ZTV7ee36360[10]), 10,18},
+ {&(_ZTV7ee36360[16]), 16,18},
+ {&(_tg__ZTV6dd6360__7ee36360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee36360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee36360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee36360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36360[];
+extern VTBL_ENTRY _ZTV7ee36360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36360[];
+static VTBL_ENTRY alt_thunk_names216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363603fooEv,_ZTv0_n16_N7ee363603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363603fooEv,_ZThn20_N7ee363603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363603fooEv,_ZThn8_N7ee363603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36360 = { "ee36360", // class name
+ bases_ee36360, 4,
+ &(vtc_ee36360[0]), // expected_vtbl_contents
+ &(vtt_ee36360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36360),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46360 : dd6360 {
+ int e;
+ virtual void bar(); // _ZN7ee463603barEv
+ ~ee46360(); // tgen
+ ee46360(); // tgen
+};
+//SIG(1 ee46360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46360 ::bar(){vfunc_called(this, "_ZN7ee463603barEv");}
+ee46360 ::~ee46360(){ note_dtor("ee46360", this);} // tgen
+ee46360 ::ee46360(){ note_ctor("ee46360", this);} // tgen
+
+static void Test_ee46360()
+{
+ extern Class_Descriptor cd_ee46360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46360, buf);
+ ee46360 *dp, &lv = *(dp=new (buf) ee46360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee46360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(24,16), "ee46360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), 0, "ee46360");
+ check_base_class_offset(lv, (dd6360*), 0, "ee46360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46360.e");
+ test_class_info(&lv, &cd_ee46360);
+ dp->~ee46360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46360(Test_ee46360, "ee46360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46360C1Ev();
+extern void _ZN7ee46360D1Ev();
+Name_Map name_map_ee46360[] = {
+ NSPAIR(_ZN7ee46360C1Ev),
+ NSPAIR(_ZN7ee46360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee46360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN7ee463603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee463603barEv,_ZTv0_n12_N7ee463603barEv)();
+extern void ABISELECT(_ZThn24_N7ee463603barEv,_ZThn16_N7ee463603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN7ee463603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee463603barEv,_ZTv0_n12_N7ee463603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee46360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee46360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee46360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee46360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee46360[] = {
+ {&(_ZTV7ee46360[3]), 3,11},
+ {&(_tg__ZTV6dd6360__7ee46360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee46360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee46360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee46360[4]), 4,6},
+ {&(_ZTV7ee46360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46360[];
+extern VTBL_ENTRY _ZTV7ee46360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46360[];
+static VTBL_ENTRY alt_thunk_names217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee463603barEv,_ZTv0_n12_N7ee463603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463603barEv,_ZThn16_N7ee463603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46360 = { "ee46360", // class name
+ bases_ee46360, 4,
+ &(vtc_ee46360[0]), // expected_vtbl_contents
+ &(vtt_ee46360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46360),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56360 : virtual dd6360 {
+ int e;
+ virtual void bar(); // _ZN7ee563603barEv
+ ~ee56360(); // tgen
+ ee56360(); // tgen
+};
+//SIG(1 ee56360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56360 ::bar(){vfunc_called(this, "_ZN7ee563603barEv");}
+ee56360 ::~ee56360(){ note_dtor("ee56360", this);} // tgen
+ee56360 ::ee56360(){ note_ctor("ee56360", this);} // tgen
+
+static void Test_ee56360()
+{
+ extern Class_Descriptor cd_ee56360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56360, buf);
+ ee56360 *dp, &lv = *(dp=new (buf) ee56360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee56360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(32,20), "ee56360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), ABISELECT(16,8), "ee56360");
+ check_base_class_offset(lv, (dd6360*), ABISELECT(16,8), "ee56360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56360.e");
+ test_class_info(&lv, &cd_ee56360);
+ dp->~ee56360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56360(Test_ee56360, "ee56360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56360C1Ev();
+extern void _ZN7ee56360D1Ev();
+Name_Map name_map_ee56360[] = {
+ NSPAIR(_ZN7ee56360C1Ev),
+ NSPAIR(_ZN7ee56360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee56360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, ABISELECT(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 _ZTI7ee56360[];
+extern void _ZN7ee563603barEv();
+extern void _ZN6dd63603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563603barEv,_ZTv0_n20_N7ee563603barEv)();
+extern void ABISELECT(_ZThn16_N7ee563603barEv,_ZThn8_N7ee563603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee563603barEv,_ZTv0_n12_N7ee563603barEv)();
+extern void ABISELECT(_ZThn32_N7ee563603barEv,_ZThn20_N7ee563603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56360[0]),
+ (VTBL_ENTRY)&_ZN7ee563603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563603barEv,_ZTv0_n20_N7ee563603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee563603barEv,_ZTv0_n12_N7ee563603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee56360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee56360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee56360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee56360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee56360[] = {
+ {&(_ZTV7ee56360[4]), 4,18},
+ {&(_ZTV7ee56360[10]), 10,18},
+ {&(_ZTV7ee56360[16]), 16,18},
+ {&(_tg__ZTV6dd6360__7ee56360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee56360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee56360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee56360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56360[];
+extern VTBL_ENTRY _ZTV7ee56360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56360[];
+static VTBL_ENTRY alt_thunk_names218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee563603barEv,_ZTv0_n12_N7ee563603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563603barEv,_ZThn20_N7ee563603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563603barEv,_ZTv0_n20_N7ee563603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563603barEv,_ZThn8_N7ee563603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56360 = { "ee56360", // class name
+ bases_ee56360, 4,
+ &(vtc_ee56360[0]), // expected_vtbl_contents
+ &(vtt_ee56360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56360),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66360 : dd6360 {
+ int e;
+ virtual void foo(); // _ZN7ee663603fooEv
+ virtual void bar(); // _ZN7ee663603barEv
+ ~ee66360(); // tgen
+ ee66360(); // tgen
+};
+//SIG(1 ee66360) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66360 ::foo(){vfunc_called(this, "_ZN7ee663603fooEv");}
+void ee66360 ::bar(){vfunc_called(this, "_ZN7ee663603barEv");}
+ee66360 ::~ee66360(){ note_dtor("ee66360", this);} // tgen
+ee66360 ::ee66360(){ note_ctor("ee66360", this);} // tgen
+
+static void Test_ee66360()
+{
+ extern Class_Descriptor cd_ee66360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66360, buf);
+ ee66360 *dp, &lv = *(dp=new (buf) ee66360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee66360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(24,16), "ee66360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), 0, "ee66360");
+ check_base_class_offset(lv, (dd6360*), 0, "ee66360");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66360.e");
+ test_class_info(&lv, &cd_ee66360);
+ dp->~ee66360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66360(Test_ee66360, "ee66360", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66360C1Ev();
+extern void _ZN7ee66360D1Ev();
+Name_Map name_map_ee66360[] = {
+ NSPAIR(_ZN7ee66360C1Ev),
+ NSPAIR(_ZN7ee66360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee66360[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66360[];
+extern void _ZN7ee663603fooEv();
+extern void _ZN7ee663603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663603barEv,_ZTv0_n12_N7ee663603barEv)();
+extern void ABISELECT(_ZThn24_N7ee663603barEv,_ZThn16_N7ee663603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663603fooEv,_ZTv0_n16_N7ee663603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663603fooEv,_ZThn16_N7ee663603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66360[0]),
+ (VTBL_ENTRY)&_ZN7ee663603fooEv,
+ (VTBL_ENTRY)&_ZN7ee663603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663603barEv,_ZTv0_n12_N7ee663603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663603fooEv,_ZTv0_n16_N7ee663603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee66360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee66360[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee66360[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee66360[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee66360[] = {
+ {&(_ZTV7ee66360[3]), 3,11},
+ {&(_tg__ZTV6dd6360__7ee66360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee66360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee66360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee66360[4]), 4,6},
+ {&(_ZTV7ee66360[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66360[];
+extern VTBL_ENTRY _ZTV7ee66360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66360[];
+static VTBL_ENTRY alt_thunk_names219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603fooEv,_ZThn16_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63603barEv,_ZThn16_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3603fooEv,_ZThn16_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663603fooEv,_ZTv0_n16_N7ee663603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663603fooEv,_ZThn16_N7ee663603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663603barEv,_ZTv0_n12_N7ee663603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663603barEv,_ZThn16_N7ee663603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66360 = { "ee66360", // class name
+ bases_ee66360, 4,
+ &(vtc_ee66360[0]), // expected_vtbl_contents
+ &(vtt_ee66360[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66360),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66360),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76360 : virtual dd6360 {
+ int e;
+ virtual void foo(); // _ZN7ee763603fooEv
+ virtual void bar(); // _ZN7ee763603barEv
+ ~ee76360(); // tgen
+ ee76360(); // tgen
+};
+//SIG(1 ee76360) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76360 ::foo(){vfunc_called(this, "_ZN7ee763603fooEv");}
+void ee76360 ::bar(){vfunc_called(this, "_ZN7ee763603barEv");}
+ee76360 ::~ee76360(){ note_dtor("ee76360", this);} // tgen
+ee76360 ::ee76360(){ note_ctor("ee76360", this);} // tgen
+
+static void Test_ee76360()
+{
+ extern Class_Descriptor cd_ee76360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76360, buf);
+ ee76360 *dp, &lv = *(dp=new (buf) ee76360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee76360");
+ check_base_class_offset(lv, (bb60*)(cc360*)(dd6360*), ABISELECT(32,20), "ee76360");
+ check_base_class_offset(lv, (cc360*)(dd6360*), ABISELECT(16,8), "ee76360");
+ check_base_class_offset(lv, (dd6360*), ABISELECT(16,8), "ee76360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76360.e");
+ test_class_info(&lv, &cd_ee76360);
+ dp->~ee76360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76360(Test_ee76360, "ee76360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76360C1Ev();
+extern void _ZN7ee76360D1Ev();
+Name_Map name_map_ee76360[] = {
+ NSPAIR(_ZN7ee76360C1Ev),
+ NSPAIR(_ZN7ee76360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd6360;
+extern VTBL_ENTRY _ZTI6dd6360[];
+extern VTBL_ENTRY _ZTV6dd6360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6360[];
+static Base_Class bases_ee76360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6360, ABISELECT(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 _ZTI7ee76360[];
+extern void _ZN7ee763603fooEv();
+extern void _ZN7ee763603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763603fooEv,_ZTv0_n16_N7ee763603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763603fooEv,_ZThn8_N7ee763603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763603barEv,_ZTv0_n20_N7ee763603barEv)();
+extern void ABISELECT(_ZThn16_N7ee763603barEv,_ZThn8_N7ee763603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763603barEv,_ZTv0_n12_N7ee763603barEv)();
+extern void ABISELECT(_ZThn32_N7ee763603barEv,_ZThn20_N7ee763603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763603fooEv,_ZTv0_n16_N7ee763603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763603fooEv,_ZThn20_N7ee763603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76360[0]),
+ (VTBL_ENTRY)&_ZN7ee763603fooEv,
+ (VTBL_ENTRY)&_ZN7ee763603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763603fooEv,_ZTv0_n16_N7ee763603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763603barEv,_ZTv0_n20_N7ee763603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763603barEv,_ZTv0_n12_N7ee763603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763603fooEv,_ZTv0_n16_N7ee763603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76360[];
+extern void _ZN6dd63603fooEv();
+extern void _ZN6dd63603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6360__7ee76360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&_ZN6dd63603fooEv,
+ (VTBL_ENTRY)&_ZN6dd63603barEv,
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3606dd6360__7ee76360[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc3606dd6360__7ee76360[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv)();
+extern void ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6360__7ee76360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv),
+};
+static VTT_ENTRY vtt_ee76360[] = {
+ {&(_ZTV7ee76360[4]), 4,19},
+ {&(_ZTV7ee76360[11]), 11,19},
+ {&(_ZTV7ee76360[17]), 17,19},
+ {&(_tg__ZTV6dd6360__7ee76360[3]), 3,5},
+ {&(_tg__ZTV5cc3606dd6360__7ee76360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc3606dd6360__7ee76360[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6360__7ee76360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76360[];
+extern VTBL_ENTRY _ZTV7ee76360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76360[];
+static VTBL_ENTRY alt_thunk_names220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63603fooEv,_ZTv0_n16_N6dd63603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603fooEv,_ZThn12_N6dd63603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63603barEv,_ZTv0_n12_N6dd63603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63603barEv,_ZThn12_N6dd63603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn12_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763603barEv,_ZTv0_n12_N7ee763603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763603barEv,_ZThn20_N7ee763603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763603barEv,_ZTv0_n20_N7ee763603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763603barEv,_ZThn8_N7ee763603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763603fooEv,_ZTv0_n16_N7ee763603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763603fooEv,_ZThn20_N7ee763603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763603fooEv,_ZThn8_N7ee763603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76360 = { "ee76360", // class name
+ bases_ee76360, 4,
+ &(vtc_ee76360[0]), // expected_vtbl_contents
+ &(vtt_ee76360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76360),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76360),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7360 : virtual cc360 {
+ int d;
+ virtual void bar(); // _ZN6dd73603barEv
+ virtual void foo(); // _ZN6dd73603fooEv
+ ~dd7360(); // tgen
+ dd7360(); // tgen
+};
+//SIG(-1 dd7360) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7360 ::bar(){vfunc_called(this, "_ZN6dd73603barEv");}
+void dd7360 ::foo(){vfunc_called(this, "_ZN6dd73603fooEv");}
+dd7360 ::~dd7360(){ note_dtor("dd7360", this);} // tgen
+dd7360 ::dd7360(){ note_ctor("dd7360", this);} // tgen
+
+static void Test_dd7360()
+{
+ extern Class_Descriptor cd_dd7360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7360, buf);
+ dd7360 *dp, &lv = *(dp=new (buf) dd7360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd7360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,16), "dd7360");
+ check_base_class_offset(lv, (cc360*), ABISELECT(16,8), "dd7360");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7360.d");
+ test_class_info(&lv, &cd_dd7360);
+ dp->~dd7360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7360(Test_dd7360, "dd7360", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7360C1Ev();
+extern void _ZN6dd7360D1Ev();
+Name_Map name_map_dd7360[] = {
+ NSPAIR(_ZN6dd7360C1Ev),
+ NSPAIR(_ZN6dd7360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+static Base_Class bases_dd7360[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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 _ZTI6dd7360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__6dd7360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_dd7360[] = {
+ {&(_ZTV6dd7360[4]), 4,17},
+ {&(_ZTV6dd7360[10]), 10,17},
+ {&(_ZTV6dd7360[15]), 15,17},
+ {&(_tg__ZTV5cc360__6dd7360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__6dd7360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static VTBL_ENTRY alt_thunk_names221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7360 = { "dd7360", // class name
+ bases_dd7360, 3,
+ &(vtc_dd7360[0]), // expected_vtbl_contents
+ &(vtt_dd7360[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7360),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07360 : dd7360 {
+ int e;
+ ~ee07360(); // tgen
+ ee07360(); // tgen
+};
+//SIG(1 ee07360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07360 ::~ee07360(){ note_dtor("ee07360", this);} // tgen
+ee07360 ::ee07360(){ note_ctor("ee07360", this);} // tgen
+
+static void Test_ee07360()
+{
+ extern Class_Descriptor cd_ee07360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07360, buf);
+ ee07360 *dp, &lv = *(dp=new (buf) ee07360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee07360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee07360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(16,12), "ee07360");
+ check_base_class_offset(lv, (dd7360*), 0, "ee07360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07360.e");
+ test_class_info(&lv, &cd_ee07360);
+ dp->~ee07360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07360(Test_ee07360, "ee07360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07360C1Ev();
+extern void _ZN7ee07360D1Ev();
+Name_Map name_map_ee07360[] = {
+ NSPAIR(_ZN7ee07360C1Ev),
+ NSPAIR(_ZN7ee07360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee07360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee07360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee07360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee07360[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee07360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee07360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee07360[] = {
+ {&(_ZTV7ee07360[4]), 4,17},
+ {&(_tg__ZTV6dd7360__7ee07360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee07360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee07360[4]), 4,6},
+ {&(_ZTV7ee07360[10]), 10,17},
+ {&(_ZTV7ee07360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee07360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee07360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07360[];
+extern VTBL_ENTRY _ZTV7ee07360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07360[];
+static VTBL_ENTRY alt_thunk_names222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07360 = { "ee07360", // class name
+ bases_ee07360, 4,
+ &(vtc_ee07360[0]), // expected_vtbl_contents
+ &(vtt_ee07360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07360),8, //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 ee17360 : virtual dd7360 {
+ int e;
+ ~ee17360(); // tgen
+ ee17360(); // tgen
+};
+//SIG(1 ee17360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17360 ::~ee17360(){ note_dtor("ee17360", this);} // tgen
+ee17360 ::ee17360(){ note_ctor("ee17360", this);} // tgen
+
+static void Test_ee17360()
+{
+ extern Class_Descriptor cd_ee17360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17360, buf);
+ ee17360 *dp, &lv = *(dp=new (buf) ee17360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee17360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee17360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(32,16), "ee17360");
+ check_base_class_offset(lv, (dd7360*), ABISELECT(16,8), "ee17360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17360.e");
+ test_class_info(&lv, &cd_ee17360);
+ dp->~ee17360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17360(Test_ee17360, "ee17360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17360C1Ev();
+extern void _ZN7ee17360D1Ev();
+Name_Map name_map_ee17360[] = {
+ NSPAIR(_ZN7ee17360C1Ev),
+ NSPAIR(_ZN7ee17360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee17360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 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 _ZTI7ee17360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17360[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee17360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee17360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee17360[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee17360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee17360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee17360[] = {
+ {&(_ZTV7ee17360[5]), 5,24},
+ {&(_ZTV7ee17360[11]), 11,24},
+ {&(_ZTV7ee17360[17]), 17,24},
+ {&(_ZTV7ee17360[22]), 22,24},
+ {&(_tg__ZTV6dd7360__7ee17360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee17360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee17360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee17360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee17360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17360[];
+extern VTBL_ENTRY _ZTV7ee17360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17360[];
+static VTBL_ENTRY alt_thunk_names223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17360 = { "ee17360", // class name
+ bases_ee17360, 4,
+ &(vtc_ee17360[0]), // expected_vtbl_contents
+ &(vtt_ee17360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17360),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17360),9, //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 ee27360 : dd7360 {
+ int e;
+ virtual void foo(); // _ZN7ee273603fooEv
+ ~ee27360(); // tgen
+ ee27360(); // tgen
+};
+//SIG(1 ee27360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27360 ::foo(){vfunc_called(this, "_ZN7ee273603fooEv");}
+ee27360 ::~ee27360(){ note_dtor("ee27360", this);} // tgen
+ee27360 ::ee27360(){ note_ctor("ee27360", this);} // tgen
+
+static void Test_ee27360()
+{
+ extern Class_Descriptor cd_ee27360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27360, buf);
+ ee27360 *dp, &lv = *(dp=new (buf) ee27360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee27360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee27360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(16,12), "ee27360");
+ check_base_class_offset(lv, (dd7360*), 0, "ee27360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27360.e");
+ test_class_info(&lv, &cd_ee27360);
+ dp->~ee27360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27360(Test_ee27360, "ee27360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27360C1Ev();
+extern void _ZN7ee27360D1Ev();
+Name_Map name_map_ee27360[] = {
+ NSPAIR(_ZN7ee27360C1Ev),
+ NSPAIR(_ZN7ee27360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee27360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN7ee273603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273603fooEv,_ZTv0_n16_N7ee273603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273603fooEv,_ZThn12_N7ee273603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee273603fooEv,_ZTv0_n16_N7ee273603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273603fooEv,_ZThn20_N7ee273603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN7ee273603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273603fooEv,_ZTv0_n16_N7ee273603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273603fooEv,_ZTv0_n16_N7ee273603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee27360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee27360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee27360[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee27360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee27360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee27360[] = {
+ {&(_ZTV7ee27360[4]), 4,17},
+ {&(_tg__ZTV6dd7360__7ee27360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee27360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee27360[4]), 4,6},
+ {&(_ZTV7ee27360[10]), 10,17},
+ {&(_ZTV7ee27360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee27360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee27360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27360[];
+extern VTBL_ENTRY _ZTV7ee27360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27360[];
+static VTBL_ENTRY alt_thunk_names224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273603fooEv,_ZTv0_n16_N7ee273603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273603fooEv,_ZThn20_N7ee273603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273603fooEv,_ZThn12_N7ee273603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27360 = { "ee27360", // class name
+ bases_ee27360, 4,
+ &(vtc_ee27360[0]), // expected_vtbl_contents
+ &(vtt_ee27360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27360),8, //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 ee37360 : virtual dd7360 {
+ int e;
+ virtual void foo(); // _ZN7ee373603fooEv
+ ~ee37360(); // tgen
+ ee37360(); // tgen
+};
+//SIG(1 ee37360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37360 ::foo(){vfunc_called(this, "_ZN7ee373603fooEv");}
+ee37360 ::~ee37360(){ note_dtor("ee37360", this);} // tgen
+ee37360 ::ee37360(){ note_ctor("ee37360", this);} // tgen
+
+static void Test_ee37360()
+{
+ extern Class_Descriptor cd_ee37360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37360, buf);
+ ee37360 *dp, &lv = *(dp=new (buf) ee37360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee37360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee37360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(32,16), "ee37360");
+ check_base_class_offset(lv, (dd7360*), ABISELECT(16,8), "ee37360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37360.e");
+ test_class_info(&lv, &cd_ee37360);
+ dp->~ee37360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37360(Test_ee37360, "ee37360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37360C1Ev();
+extern void _ZN7ee37360D1Ev();
+Name_Map name_map_ee37360[] = {
+ NSPAIR(_ZN7ee37360C1Ev),
+ NSPAIR(_ZN7ee37360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee37360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 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 _ZTI7ee37360[];
+extern void _ZN7ee373603fooEv();
+extern void _ZN6dd73603barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373603fooEv,_ZTv0_n24_N7ee373603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373603fooEv,_ZThn8_N7ee373603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373603fooEv,_ZTv0_n16_N7ee373603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373603fooEv,_ZThn16_N7ee373603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373603fooEv,_ZTv0_n16_N7ee373603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373603fooEv,_ZThn24_N7ee373603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37360[0]),
+ (VTBL_ENTRY)&_ZN7ee373603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373603fooEv,_ZTv0_n24_N7ee373603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373603fooEv,_ZTv0_n16_N7ee373603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373603fooEv,_ZTv0_n16_N7ee373603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee37360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee37360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee37360[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee37360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee37360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee37360[] = {
+ {&(_ZTV7ee37360[5]), 5,25},
+ {&(_ZTV7ee37360[12]), 12,25},
+ {&(_ZTV7ee37360[18]), 18,25},
+ {&(_ZTV7ee37360[23]), 23,25},
+ {&(_tg__ZTV6dd7360__7ee37360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee37360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee37360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee37360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee37360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37360[];
+extern VTBL_ENTRY _ZTV7ee37360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37360[];
+static VTBL_ENTRY alt_thunk_names225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373603fooEv,_ZTv0_n16_N7ee373603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373603fooEv,_ZThn24_N7ee373603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373603fooEv,_ZThn16_N7ee373603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373603fooEv,_ZTv0_n24_N7ee373603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373603fooEv,_ZThn8_N7ee373603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37360 = { "ee37360", // class name
+ bases_ee37360, 4,
+ &(vtc_ee37360[0]), // expected_vtbl_contents
+ &(vtt_ee37360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37360),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37360),9, //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 ee47360 : dd7360 {
+ int e;
+ virtual void bar(); // _ZN7ee473603barEv
+ ~ee47360(); // tgen
+ ee47360(); // tgen
+};
+//SIG(1 ee47360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47360 ::bar(){vfunc_called(this, "_ZN7ee473603barEv");}
+ee47360 ::~ee47360(){ note_dtor("ee47360", this);} // tgen
+ee47360 ::ee47360(){ note_ctor("ee47360", this);} // tgen
+
+static void Test_ee47360()
+{
+ extern Class_Descriptor cd_ee47360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47360, buf);
+ ee47360 *dp, &lv = *(dp=new (buf) ee47360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee47360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee47360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(16,12), "ee47360");
+ check_base_class_offset(lv, (dd7360*), 0, "ee47360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47360.e");
+ test_class_info(&lv, &cd_ee47360);
+ dp->~ee47360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47360(Test_ee47360, "ee47360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47360C1Ev();
+extern void _ZN7ee47360D1Ev();
+Name_Map name_map_ee47360[] = {
+ NSPAIR(_ZN7ee47360C1Ev),
+ NSPAIR(_ZN7ee47360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee47360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47360[];
+extern void _ZN7ee473603barEv();
+extern void _ZN6dd73603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee473603barEv,_ZTv0_n12_N7ee473603barEv)();
+extern void ABISELECT(_ZThn32_N7ee473603barEv,_ZThn20_N7ee473603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47360[0]),
+ (VTBL_ENTRY)&_ZN7ee473603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee473603barEv,_ZTv0_n12_N7ee473603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee47360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee47360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee47360[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee47360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee47360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee47360[] = {
+ {&(_ZTV7ee47360[4]), 4,17},
+ {&(_tg__ZTV6dd7360__7ee47360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee47360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee47360[4]), 4,6},
+ {&(_ZTV7ee47360[10]), 10,17},
+ {&(_ZTV7ee47360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee47360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee47360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47360[];
+extern VTBL_ENTRY _ZTV7ee47360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47360[];
+static VTBL_ENTRY alt_thunk_names226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee473603barEv,_ZTv0_n12_N7ee473603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473603barEv,_ZThn20_N7ee473603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47360 = { "ee47360", // class name
+ bases_ee47360, 4,
+ &(vtc_ee47360[0]), // expected_vtbl_contents
+ &(vtt_ee47360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47360),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57360 : virtual dd7360 {
+ int e;
+ virtual void bar(); // _ZN7ee573603barEv
+ ~ee57360(); // tgen
+ ee57360(); // tgen
+};
+//SIG(1 ee57360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57360 ::bar(){vfunc_called(this, "_ZN7ee573603barEv");}
+ee57360 ::~ee57360(){ note_dtor("ee57360", this);} // tgen
+ee57360 ::ee57360(){ note_ctor("ee57360", this);} // tgen
+
+static void Test_ee57360()
+{
+ extern Class_Descriptor cd_ee57360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57360, buf);
+ ee57360 *dp, &lv = *(dp=new (buf) ee57360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee57360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee57360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(32,16), "ee57360");
+ check_base_class_offset(lv, (dd7360*), ABISELECT(16,8), "ee57360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57360.e");
+ test_class_info(&lv, &cd_ee57360);
+ dp->~ee57360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57360(Test_ee57360, "ee57360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57360C1Ev();
+extern void _ZN7ee57360D1Ev();
+Name_Map name_map_ee57360[] = {
+ NSPAIR(_ZN7ee57360C1Ev),
+ NSPAIR(_ZN7ee57360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee57360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 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 _ZTI7ee57360[];
+extern void _ZN7ee573603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573603barEv,_ZTv0_n20_N7ee573603barEv)();
+extern void ABISELECT(_ZThn16_N7ee573603barEv,_ZThn8_N7ee573603barEv)() __attribute__((weak));
+extern void _ZN6dd73603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee573603barEv,_ZTv0_n12_N7ee573603barEv)();
+extern void ABISELECT(_ZThn48_N7ee573603barEv,_ZThn24_N7ee573603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57360[0]),
+ (VTBL_ENTRY)&_ZN7ee573603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573603barEv,_ZTv0_n20_N7ee573603barEv),
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee573603barEv,_ZTv0_n12_N7ee573603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee57360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee57360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee57360[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee57360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee57360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee57360[] = {
+ {&(_ZTV7ee57360[5]), 5,25},
+ {&(_ZTV7ee57360[12]), 12,25},
+ {&(_ZTV7ee57360[18]), 18,25},
+ {&(_ZTV7ee57360[23]), 23,25},
+ {&(_tg__ZTV6dd7360__7ee57360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee57360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee57360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee57360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee57360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57360[];
+extern VTBL_ENTRY _ZTV7ee57360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57360[];
+static VTBL_ENTRY alt_thunk_names227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee573603barEv,_ZTv0_n12_N7ee573603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573603barEv,_ZThn24_N7ee573603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573603barEv,_ZTv0_n20_N7ee573603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573603barEv,_ZThn8_N7ee573603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57360 = { "ee57360", // class name
+ bases_ee57360, 4,
+ &(vtc_ee57360[0]), // expected_vtbl_contents
+ &(vtt_ee57360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57360),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57360),9, //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 ee67360 : dd7360 {
+ int e;
+ virtual void foo(); // _ZN7ee673603fooEv
+ virtual void bar(); // _ZN7ee673603barEv
+ ~ee67360(); // tgen
+ ee67360(); // tgen
+};
+//SIG(1 ee67360) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67360 ::foo(){vfunc_called(this, "_ZN7ee673603fooEv");}
+void ee67360 ::bar(){vfunc_called(this, "_ZN7ee673603barEv");}
+ee67360 ::~ee67360(){ note_dtor("ee67360", this);} // tgen
+ee67360 ::ee67360(){ note_ctor("ee67360", this);} // tgen
+
+static void Test_ee67360()
+{
+ extern Class_Descriptor cd_ee67360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67360, buf);
+ ee67360 *dp, &lv = *(dp=new (buf) ee67360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee67360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(32,20), "ee67360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(16,12), "ee67360");
+ check_base_class_offset(lv, (dd7360*), 0, "ee67360");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67360.e");
+ test_class_info(&lv, &cd_ee67360);
+ dp->~ee67360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67360(Test_ee67360, "ee67360", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67360C1Ev();
+extern void _ZN7ee67360D1Ev();
+Name_Map name_map_ee67360[] = {
+ NSPAIR(_ZN7ee67360C1Ev),
+ NSPAIR(_ZN7ee67360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee67360[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67360[];
+extern void _ZN7ee673603barEv();
+extern void _ZN7ee673603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673603fooEv,_ZTv0_n16_N7ee673603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673603fooEv,_ZThn12_N7ee673603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673603barEv,_ZTv0_n12_N7ee673603barEv)();
+extern void ABISELECT(_ZThn32_N7ee673603barEv,_ZThn20_N7ee673603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673603fooEv,_ZTv0_n16_N7ee673603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673603fooEv,_ZThn20_N7ee673603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67360[0]),
+ (VTBL_ENTRY)&_ZN7ee673603barEv,
+ (VTBL_ENTRY)&_ZN7ee673603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673603fooEv,_ZTv0_n16_N7ee673603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673603barEv,_ZTv0_n12_N7ee673603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673603fooEv,_ZTv0_n16_N7ee673603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee67360[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee67360[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee67360[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee67360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee67360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee67360[] = {
+ {&(_ZTV7ee67360[4]), 4,17},
+ {&(_tg__ZTV6dd7360__7ee67360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee67360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee67360[4]), 4,6},
+ {&(_ZTV7ee67360[10]), 10,17},
+ {&(_ZTV7ee67360[15]), 15,17},
+ {&(_tg__ZTV5cc360__7ee67360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee67360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67360[];
+extern VTBL_ENTRY _ZTV7ee67360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67360[];
+static VTBL_ENTRY alt_thunk_names228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn20_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn20_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn12_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673603barEv,_ZTv0_n12_N7ee673603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673603barEv,_ZThn20_N7ee673603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673603fooEv,_ZTv0_n16_N7ee673603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673603fooEv,_ZThn20_N7ee673603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673603fooEv,_ZThn12_N7ee673603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67360 = { "ee67360", // class name
+ bases_ee67360, 4,
+ &(vtc_ee67360[0]), // expected_vtbl_contents
+ &(vtt_ee67360[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67360),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67360),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67360),8, //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 ee77360 : virtual dd7360 {
+ int e;
+ virtual void foo(); // _ZN7ee773603fooEv
+ virtual void bar(); // _ZN7ee773603barEv
+ ~ee77360(); // tgen
+ ee77360(); // tgen
+};
+//SIG(1 ee77360) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77360 ::foo(){vfunc_called(this, "_ZN7ee773603fooEv");}
+void ee77360 ::bar(){vfunc_called(this, "_ZN7ee773603barEv");}
+ee77360 ::~ee77360(){ note_dtor("ee77360", this);} // tgen
+ee77360 ::ee77360(){ note_ctor("ee77360", this);} // tgen
+
+static void Test_ee77360()
+{
+ extern Class_Descriptor cd_ee77360;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77360, buf);
+ ee77360 *dp, &lv = *(dp=new (buf) ee77360());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77360)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77360)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee77360");
+ check_base_class_offset(lv, (bb60*)(cc360*), ABISELECT(48,24), "ee77360");
+ check_base_class_offset(lv, (cc360*)(dd7360*), ABISELECT(32,16), "ee77360");
+ check_base_class_offset(lv, (dd7360*), ABISELECT(16,8), "ee77360");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77360.e");
+ test_class_info(&lv, &cd_ee77360);
+ dp->~ee77360();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77360(Test_ee77360, "ee77360", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77360C1Ev();
+extern void _ZN7ee77360D1Ev();
+Name_Map name_map_ee77360[] = {
+ NSPAIR(_ZN7ee77360C1Ev),
+ NSPAIR(_ZN7ee77360D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc360;
+extern VTBL_ENTRY _ZTI5cc360[];
+extern VTBL_ENTRY _ZTV5cc360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc360[];
+extern Class_Descriptor cd_dd7360;
+extern VTBL_ENTRY _ZTI6dd7360[];
+extern VTBL_ENTRY _ZTV6dd7360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7360[];
+static Base_Class bases_ee77360[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc360, 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_dd7360, 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 _ZTI7ee77360[];
+extern void _ZN7ee773603fooEv();
+extern void _ZN7ee773603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773603barEv,_ZTv0_n20_N7ee773603barEv)();
+extern void ABISELECT(_ZThn16_N7ee773603barEv,_ZThn8_N7ee773603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773603fooEv,_ZTv0_n24_N7ee773603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773603fooEv,_ZThn8_N7ee773603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773603fooEv,_ZTv0_n16_N7ee773603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773603fooEv,_ZThn16_N7ee773603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773603barEv,_ZTv0_n12_N7ee773603barEv)();
+extern void ABISELECT(_ZThn48_N7ee773603barEv,_ZThn24_N7ee773603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773603fooEv,_ZTv0_n16_N7ee773603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773603fooEv,_ZThn24_N7ee773603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77360[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77360[0]),
+ (VTBL_ENTRY)&_ZN7ee773603fooEv,
+ (VTBL_ENTRY)&_ZN7ee773603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773603barEv,_ZTv0_n20_N7ee773603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773603fooEv,_ZTv0_n24_N7ee773603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773603fooEv,_ZTv0_n16_N7ee773603fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773603barEv,_ZTv0_n12_N7ee773603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773603fooEv,_ZTv0_n16_N7ee773603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77360[];
+extern void _ZN6dd73603barEv();
+extern void _ZN6dd73603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7360__7ee77360[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&_ZN6dd73603barEv,
+ (VTBL_ENTRY)&_ZN6dd73603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc360__6dd7360__7ee77360[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv)();
+extern void ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7360__7ee77360[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7360[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv),
+};
+extern void _ZN5cc3603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc360__7ee77360[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN5cc3603fooEv,
+};
+extern void _ZN4bb603barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc360__7ee77360[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc360[0]),
+ (VTBL_ENTRY)&_ZN4bb603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv),
+};
+static VTT_ENTRY vtt_ee77360[] = {
+ {&(_ZTV7ee77360[5]), 5,26},
+ {&(_ZTV7ee77360[13]), 13,26},
+ {&(_ZTV7ee77360[19]), 19,26},
+ {&(_ZTV7ee77360[24]), 24,26},
+ {&(_tg__ZTV6dd7360__7ee77360[4]), 4,6},
+ {&(_tg__ZTV5cc360__6dd7360__7ee77360[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7360__7ee77360[4]), 4,6},
+ {&(_tg__ZTV5cc360__7ee77360[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc360__7ee77360[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77360[];
+extern VTBL_ENTRY _ZTV7ee77360[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77360[];
+static VTBL_ENTRY alt_thunk_names229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc3603fooEv,_ZTv0_n16_N5cc3603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3603fooEv,_ZThn8_N5cc3603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73603barEv,_ZTv0_n12_N6dd73603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603barEv,_ZThn16_N6dd73603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73603fooEv,_ZTv0_n16_N6dd73603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73603fooEv,_ZThn16_N6dd73603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73603fooEv,_ZThn8_N6dd73603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773603barEv,_ZTv0_n12_N7ee773603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773603barEv,_ZThn24_N7ee773603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773603fooEv,_ZTv0_n16_N7ee773603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773603fooEv,_ZThn24_N7ee773603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773603fooEv,_ZThn16_N7ee773603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773603fooEv,_ZTv0_n24_N7ee773603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773603fooEv,_ZThn8_N7ee773603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773603barEv,_ZTv0_n20_N7ee773603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773603barEv,_ZThn8_N7ee773603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77360 = { "ee77360", // class name
+ bases_ee77360, 4,
+ &(vtc_ee77360[0]), // expected_vtbl_contents
+ &(vtt_ee77360[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77360),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77360),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77360),9, //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 cc460 : bb60 {
+ int c;
+ virtual void bar(); // _ZN5cc4603barEv
+ ~cc460(); // tgen
+ cc460(); // tgen
+};
+//SIG(-1 cc460) C1{ BC2{ BC3{ Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc460 ::bar(){vfunc_called(this, "_ZN5cc4603barEv");}
+cc460 ::~cc460(){ note_dtor("cc460", this);} // tgen
+cc460 ::cc460(){ note_ctor("cc460", this);} // tgen
+
+static void Test_cc460()
+{
+ extern Class_Descriptor cd_cc460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc460, buf);
+ cc460 *dp, &lv = *(dp=new (buf) cc460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc460)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(8,4), "cc460");
+ check_base_class_offset(lv, (bb60*), 0, "cc460");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc460.c");
+ test_class_info(&lv, &cd_cc460);
+ dp->~cc460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc460(Test_cc460, "cc460", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc460C1Ev();
+extern void _ZN5cc460D1Ev();
+Name_Map name_map_cc460[] = {
+ NSPAIR(_ZN5cc460C1Ev),
+ NSPAIR(_ZN5cc460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_cc460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+Class_Descriptor cd_cc460 = { "cc460", // class name
+ bases_cc460, 2,
+ &(vtc_cc460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc460),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 dd0460 : cc460 {
+ int d;
+ ~dd0460(); // tgen
+ dd0460(); // tgen
+};
+//SIG(-1 dd0460) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0460 ::~dd0460(){ note_dtor("dd0460", this);} // tgen
+dd0460 ::dd0460(){ note_ctor("dd0460", this);} // tgen
+
+static void Test_dd0460()
+{
+ extern Class_Descriptor cd_dd0460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0460, buf);
+ dd0460 *dp, &lv = *(dp=new (buf) dd0460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(8,4), "dd0460");
+ check_base_class_offset(lv, (bb60*)(cc460*), 0, "dd0460");
+ check_base_class_offset(lv, (cc460*), 0, "dd0460");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0460.d");
+ test_class_info(&lv, &cd_dd0460);
+ dp->~dd0460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0460(Test_dd0460, "dd0460", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0460C1Ev();
+extern void _ZN6dd0460D1Ev();
+Name_Map name_map_dd0460[] = {
+ NSPAIR(_ZN6dd0460C1Ev),
+ NSPAIR(_ZN6dd0460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd0460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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 _ZTI6dd0460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd0460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+Class_Descriptor cd_dd0460 = { "dd0460", // class name
+ bases_dd0460, 3,
+ &(vtc_dd0460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0460),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 ee00460 : dd0460 {
+ int e;
+ ~ee00460(); // tgen
+ ee00460(); // tgen
+};
+//SIG(1 ee00460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00460 ::~ee00460(){ note_dtor("ee00460", this);} // tgen
+ee00460 ::ee00460(){ note_ctor("ee00460", this);} // tgen
+
+static void Test_ee00460()
+{
+ extern Class_Descriptor cd_ee00460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00460, buf);
+ ee00460 *dp, &lv = *(dp=new (buf) ee00460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(8,4), "ee00460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), 0, "ee00460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), 0, "ee00460");
+ check_base_class_offset(lv, (dd0460*), 0, "ee00460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00460.e");
+ test_class_info(&lv, &cd_ee00460);
+ dp->~ee00460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00460(Test_ee00460, "ee00460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00460C1Ev();
+extern void _ZN7ee00460D1Ev();
+Name_Map name_map_ee00460[] = {
+ NSPAIR(_ZN7ee00460C1Ev),
+ NSPAIR(_ZN7ee00460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee00460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd0460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee00460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00460[];
+extern VTBL_ENTRY _ZTV7ee00460[];
+Class_Descriptor cd_ee00460 = { "ee00460", // class name
+ bases_ee00460, 4,
+ &(vtc_ee00460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00460),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 ee10460 : virtual dd0460 {
+ int e;
+ ~ee10460(); // tgen
+ ee10460(); // tgen
+};
+//SIG(1 ee10460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10460 ::~ee10460(){ note_dtor("ee10460", this);} // tgen
+ee10460 ::ee10460(){ note_ctor("ee10460", this);} // tgen
+
+static void Test_ee10460()
+{
+ extern Class_Descriptor cd_ee10460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10460, buf);
+ ee10460 *dp, &lv = *(dp=new (buf) ee10460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(24,12), "ee10460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), ABISELECT(16,8), "ee10460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), ABISELECT(16,8), "ee10460");
+ check_base_class_offset(lv, (dd0460*), ABISELECT(16,8), "ee10460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10460.e");
+ test_class_info(&lv, &cd_ee10460);
+ dp->~ee10460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10460(Test_ee10460, "ee10460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10460C1Ev();
+extern void _ZN7ee10460D1Ev();
+Name_Map name_map_ee10460[] = {
+ NSPAIR(_ZN7ee10460C1Ev),
+ NSPAIR(_ZN7ee10460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee10460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd0460, 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 _ZTI7ee10460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee10460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10460[];
+static VTT_ENTRY vtt_ee10460[] = {
+ {&(_ZTV7ee10460[3]), 3,9},
+ {&(_ZTV7ee10460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10460[];
+extern VTBL_ENTRY _ZTV7ee10460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10460[];
+Class_Descriptor cd_ee10460 = { "ee10460", // class name
+ bases_ee10460, 4,
+ &(vtc_ee10460[0]), // expected_vtbl_contents
+ &(vtt_ee10460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10460),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 ee20460 : dd0460 {
+ int e;
+ virtual void foo(); // _ZN7ee204603fooEv
+ ~ee20460(); // tgen
+ ee20460(); // tgen
+};
+//SIG(1 ee20460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20460 ::foo(){vfunc_called(this, "_ZN7ee204603fooEv");}
+ee20460 ::~ee20460(){ note_dtor("ee20460", this);} // tgen
+ee20460 ::ee20460(){ note_ctor("ee20460", this);} // tgen
+
+static void Test_ee20460()
+{
+ extern Class_Descriptor cd_ee20460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20460, buf);
+ ee20460 *dp, &lv = *(dp=new (buf) ee20460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(8,4), "ee20460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), 0, "ee20460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), 0, "ee20460");
+ check_base_class_offset(lv, (dd0460*), 0, "ee20460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20460.e");
+ test_class_info(&lv, &cd_ee20460);
+ dp->~ee20460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20460(Test_ee20460, "ee20460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20460C1Ev();
+extern void _ZN7ee20460D1Ev();
+Name_Map name_map_ee20460[] = {
+ NSPAIR(_ZN7ee20460C1Ev),
+ NSPAIR(_ZN7ee20460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee20460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN7ee204603fooEv();
+static VTBL_ENTRY vtc_ee20460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN7ee204603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20460[];
+extern VTBL_ENTRY _ZTV7ee20460[];
+Class_Descriptor cd_ee20460 = { "ee20460", // class name
+ bases_ee20460, 4,
+ &(vtc_ee20460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20460),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 ee30460 : virtual dd0460 {
+ int e;
+ virtual void foo(); // _ZN7ee304603fooEv
+ ~ee30460(); // tgen
+ ee30460(); // tgen
+};
+//SIG(1 ee30460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30460 ::foo(){vfunc_called(this, "_ZN7ee304603fooEv");}
+ee30460 ::~ee30460(){ note_dtor("ee30460", this);} // tgen
+ee30460 ::ee30460(){ note_ctor("ee30460", this);} // tgen
+
+static void Test_ee30460()
+{
+ extern Class_Descriptor cd_ee30460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30460, buf);
+ ee30460 *dp, &lv = *(dp=new (buf) ee30460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(24,12), "ee30460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), ABISELECT(16,8), "ee30460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), ABISELECT(16,8), "ee30460");
+ check_base_class_offset(lv, (dd0460*), ABISELECT(16,8), "ee30460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30460.e");
+ test_class_info(&lv, &cd_ee30460);
+ dp->~ee30460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30460(Test_ee30460, "ee30460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30460C1Ev();
+extern void _ZN7ee30460D1Ev();
+Name_Map name_map_ee30460[] = {
+ NSPAIR(_ZN7ee30460C1Ev),
+ NSPAIR(_ZN7ee30460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee30460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd0460, 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 _ZTI7ee30460[];
+extern void _ZN7ee304603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee304603fooEv,_ZTv0_n16_N7ee304603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304603fooEv,_ZThn8_N7ee304603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30460[0]),
+ (VTBL_ENTRY)&_ZN7ee304603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee304603fooEv,_ZTv0_n16_N7ee304603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30460[];
+static VTT_ENTRY vtt_ee30460[] = {
+ {&(_ZTV7ee30460[3]), 3,10},
+ {&(_ZTV7ee30460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30460[];
+extern VTBL_ENTRY _ZTV7ee30460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30460[];
+static VTBL_ENTRY alt_thunk_names230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee304603fooEv,_ZTv0_n16_N7ee304603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304603fooEv,_ZThn8_N7ee304603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30460 = { "ee30460", // class name
+ bases_ee30460, 4,
+ &(vtc_ee30460[0]), // expected_vtbl_contents
+ &(vtt_ee30460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30460),2, //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 ee40460 : dd0460 {
+ int e;
+ virtual void bar(); // _ZN7ee404603barEv
+ ~ee40460(); // tgen
+ ee40460(); // tgen
+};
+//SIG(1 ee40460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40460 ::bar(){vfunc_called(this, "_ZN7ee404603barEv");}
+ee40460 ::~ee40460(){ note_dtor("ee40460", this);} // tgen
+ee40460 ::ee40460(){ note_ctor("ee40460", this);} // tgen
+
+static void Test_ee40460()
+{
+ extern Class_Descriptor cd_ee40460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40460, buf);
+ ee40460 *dp, &lv = *(dp=new (buf) ee40460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(8,4), "ee40460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), 0, "ee40460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), 0, "ee40460");
+ check_base_class_offset(lv, (dd0460*), 0, "ee40460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40460.e");
+ test_class_info(&lv, &cd_ee40460);
+ dp->~ee40460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40460(Test_ee40460, "ee40460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40460C1Ev();
+extern void _ZN7ee40460D1Ev();
+Name_Map name_map_ee40460[] = {
+ NSPAIR(_ZN7ee40460C1Ev),
+ NSPAIR(_ZN7ee40460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee40460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40460[];
+extern void _ZN7ee404603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee40460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40460[0]),
+ (VTBL_ENTRY)&_ZN7ee404603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee40460[];
+extern VTBL_ENTRY _ZTV7ee40460[];
+Class_Descriptor cd_ee40460 = { "ee40460", // class name
+ bases_ee40460, 4,
+ &(vtc_ee40460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40460),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 ee50460 : virtual dd0460 {
+ int e;
+ virtual void bar(); // _ZN7ee504603barEv
+ ~ee50460(); // tgen
+ ee50460(); // tgen
+};
+//SIG(1 ee50460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50460 ::bar(){vfunc_called(this, "_ZN7ee504603barEv");}
+ee50460 ::~ee50460(){ note_dtor("ee50460", this);} // tgen
+ee50460 ::ee50460(){ note_ctor("ee50460", this);} // tgen
+
+static void Test_ee50460()
+{
+ extern Class_Descriptor cd_ee50460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50460, buf);
+ ee50460 *dp, &lv = *(dp=new (buf) ee50460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(24,12), "ee50460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), ABISELECT(16,8), "ee50460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), ABISELECT(16,8), "ee50460");
+ check_base_class_offset(lv, (dd0460*), ABISELECT(16,8), "ee50460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50460.e");
+ test_class_info(&lv, &cd_ee50460);
+ dp->~ee50460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50460(Test_ee50460, "ee50460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50460C1Ev();
+extern void _ZN7ee50460D1Ev();
+Name_Map name_map_ee50460[] = {
+ NSPAIR(_ZN7ee50460C1Ev),
+ NSPAIR(_ZN7ee50460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee50460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd0460, 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 _ZTI7ee50460[];
+extern void _ZN7ee504603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee504603barEv,_ZTv0_n12_N7ee504603barEv)();
+extern void ABISELECT(_ZThn16_N7ee504603barEv,_ZThn8_N7ee504603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee50460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50460[0]),
+ (VTBL_ENTRY)&_ZN7ee504603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee504603barEv,_ZTv0_n12_N7ee504603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50460[];
+static VTT_ENTRY vtt_ee50460[] = {
+ {&(_ZTV7ee50460[3]), 3,10},
+ {&(_ZTV7ee50460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50460[];
+extern VTBL_ENTRY _ZTV7ee50460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50460[];
+static VTBL_ENTRY alt_thunk_names231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee504603barEv,_ZTv0_n12_N7ee504603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504603barEv,_ZThn8_N7ee504603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50460 = { "ee50460", // class name
+ bases_ee50460, 4,
+ &(vtc_ee50460[0]), // expected_vtbl_contents
+ &(vtt_ee50460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50460),2, //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 ee60460 : dd0460 {
+ int e;
+ virtual void foo(); // _ZN7ee604603fooEv
+ virtual void bar(); // _ZN7ee604603barEv
+ ~ee60460(); // tgen
+ ee60460(); // tgen
+};
+//SIG(1 ee60460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60460 ::foo(){vfunc_called(this, "_ZN7ee604603fooEv");}
+void ee60460 ::bar(){vfunc_called(this, "_ZN7ee604603barEv");}
+ee60460 ::~ee60460(){ note_dtor("ee60460", this);} // tgen
+ee60460 ::ee60460(){ note_ctor("ee60460", this);} // tgen
+
+static void Test_ee60460()
+{
+ extern Class_Descriptor cd_ee60460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60460, buf);
+ ee60460 *dp, &lv = *(dp=new (buf) ee60460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(8,4), "ee60460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), 0, "ee60460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), 0, "ee60460");
+ check_base_class_offset(lv, (dd0460*), 0, "ee60460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60460.e");
+ test_class_info(&lv, &cd_ee60460);
+ dp->~ee60460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60460(Test_ee60460, "ee60460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60460C1Ev();
+extern void _ZN7ee60460D1Ev();
+Name_Map name_map_ee60460[] = {
+ NSPAIR(_ZN7ee60460C1Ev),
+ NSPAIR(_ZN7ee60460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee60460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60460[];
+extern void _ZN7ee604603barEv();
+extern void _ZN7ee604603fooEv();
+static VTBL_ENTRY vtc_ee60460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60460[0]),
+ (VTBL_ENTRY)&_ZN7ee604603barEv,
+ (VTBL_ENTRY)&_ZN7ee604603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee60460[];
+extern VTBL_ENTRY _ZTV7ee60460[];
+Class_Descriptor cd_ee60460 = { "ee60460", // class name
+ bases_ee60460, 4,
+ &(vtc_ee60460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60460),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 ee70460 : virtual dd0460 {
+ int e;
+ virtual void foo(); // _ZN7ee704603fooEv
+ virtual void bar(); // _ZN7ee704603barEv
+ ~ee70460(); // tgen
+ ee70460(); // tgen
+};
+//SIG(1 ee70460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70460 ::foo(){vfunc_called(this, "_ZN7ee704603fooEv");}
+void ee70460 ::bar(){vfunc_called(this, "_ZN7ee704603barEv");}
+ee70460 ::~ee70460(){ note_dtor("ee70460", this);} // tgen
+ee70460 ::ee70460(){ note_ctor("ee70460", this);} // tgen
+
+static void Test_ee70460()
+{
+ extern Class_Descriptor cd_ee70460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70460, buf);
+ ee70460 *dp, &lv = *(dp=new (buf) ee70460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd0460*), ABISELECT(24,12), "ee70460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd0460*), ABISELECT(16,8), "ee70460");
+ check_base_class_offset(lv, (cc460*)(dd0460*), ABISELECT(16,8), "ee70460");
+ check_base_class_offset(lv, (dd0460*), ABISELECT(16,8), "ee70460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70460.e");
+ test_class_info(&lv, &cd_ee70460);
+ dp->~ee70460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70460(Test_ee70460, "ee70460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70460C1Ev();
+extern void _ZN7ee70460D1Ev();
+Name_Map name_map_ee70460[] = {
+ NSPAIR(_ZN7ee70460C1Ev),
+ NSPAIR(_ZN7ee70460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd0460;
+extern VTBL_ENTRY _ZTI6dd0460[];
+extern VTBL_ENTRY _ZTV6dd0460[];
+static Base_Class bases_ee70460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd0460, 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 _ZTI7ee70460[];
+extern void _ZN7ee704603fooEv();
+extern void _ZN7ee704603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704603barEv,_ZTv0_n12_N7ee704603barEv)();
+extern void ABISELECT(_ZThn16_N7ee704603barEv,_ZThn8_N7ee704603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704603fooEv,_ZTv0_n16_N7ee704603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704603fooEv,_ZThn8_N7ee704603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70460[0]),
+ (VTBL_ENTRY)&_ZN7ee704603fooEv,
+ (VTBL_ENTRY)&_ZN7ee704603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704603barEv,_ZTv0_n12_N7ee704603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704603fooEv,_ZTv0_n16_N7ee704603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70460[];
+static VTT_ENTRY vtt_ee70460[] = {
+ {&(_ZTV7ee70460[3]), 3,11},
+ {&(_ZTV7ee70460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70460[];
+extern VTBL_ENTRY _ZTV7ee70460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70460[];
+static VTBL_ENTRY alt_thunk_names232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704603fooEv,_ZTv0_n16_N7ee704603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704603fooEv,_ZThn8_N7ee704603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704603barEv,_ZTv0_n12_N7ee704603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704603barEv,_ZThn8_N7ee704603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70460 = { "ee70460", // class name
+ bases_ee70460, 4,
+ &(vtc_ee70460[0]), // expected_vtbl_contents
+ &(vtt_ee70460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70460),2, //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 dd1460 : virtual cc460 {
+ int d;
+ ~dd1460(); // tgen
+ dd1460(); // tgen
+};
+//SIG(-1 dd1460) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1460 ::~dd1460(){ note_dtor("dd1460", this);} // tgen
+dd1460 ::dd1460(){ note_ctor("dd1460", this);} // tgen
+
+static void Test_dd1460()
+{
+ extern Class_Descriptor cd_dd1460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1460, buf);
+ dd1460 *dp, &lv = *(dp=new (buf) dd1460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,12), "dd1460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,8), "dd1460");
+ check_base_class_offset(lv, (cc460*), ABISELECT(16,8), "dd1460");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1460.d");
+ test_class_info(&lv, &cd_dd1460);
+ dp->~dd1460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1460(Test_dd1460, "dd1460", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1460C1Ev();
+extern void _ZN6dd1460D1Ev();
+Name_Map name_map_dd1460[] = {
+ NSPAIR(_ZN6dd1460C1Ev),
+ NSPAIR(_ZN6dd1460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd1460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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 _ZTI6dd1460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd1460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1460[];
+static VTT_ENTRY vtt_dd1460[] = {
+ {&(_ZTV6dd1460[3]), 3,9},
+ {&(_ZTV6dd1460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+Class_Descriptor cd_dd1460 = { "dd1460", // class name
+ bases_dd1460, 3,
+ &(vtc_dd1460[0]), // expected_vtbl_contents
+ &(vtt_dd1460[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1460),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 ee01460 : dd1460 {
+ int e;
+ ~ee01460(); // tgen
+ ee01460(); // tgen
+};
+//SIG(1 ee01460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01460 ::~ee01460(){ note_dtor("ee01460", this);} // tgen
+ee01460 ::ee01460(){ note_ctor("ee01460", this);} // tgen
+
+static void Test_ee01460()
+{
+ extern Class_Descriptor cd_ee01460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01460, buf);
+ ee01460 *dp, &lv = *(dp=new (buf) ee01460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee01460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee01460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(16,12), "ee01460");
+ check_base_class_offset(lv, (dd1460*), 0, "ee01460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01460.e");
+ test_class_info(&lv, &cd_ee01460);
+ dp->~ee01460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01460(Test_ee01460, "ee01460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01460C1Ev();
+extern void _ZN7ee01460D1Ev();
+Name_Map name_map_ee01460[] = {
+ NSPAIR(_ZN7ee01460C1Ev),
+ NSPAIR(_ZN7ee01460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee01460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee01460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee01460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee01460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee01460[] = {
+ {&(_ZTV7ee01460[3]), 3,9},
+ {&(_tg__ZTV6dd1460__7ee01460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee01460[4]), 4,6},
+ {&(_ZTV7ee01460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01460[];
+extern VTBL_ENTRY _ZTV7ee01460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01460[];
+Class_Descriptor cd_ee01460 = { "ee01460", // class name
+ bases_ee01460, 4,
+ &(vtc_ee01460[0]), // expected_vtbl_contents
+ &(vtt_ee01460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01460),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 ee11460 : virtual dd1460 {
+ int e;
+ ~ee11460(); // tgen
+ ee11460(); // tgen
+};
+//SIG(1 ee11460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11460 ::~ee11460(){ note_dtor("ee11460", this);} // tgen
+ee11460 ::ee11460(){ note_ctor("ee11460", this);} // tgen
+
+static void Test_ee11460()
+{
+ extern Class_Descriptor cd_ee11460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11460, buf);
+ ee11460 *dp, &lv = *(dp=new (buf) ee11460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee11460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee11460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(32,16), "ee11460");
+ check_base_class_offset(lv, (dd1460*), ABISELECT(16,8), "ee11460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11460.e");
+ test_class_info(&lv, &cd_ee11460);
+ dp->~ee11460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11460(Test_ee11460, "ee11460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11460C1Ev();
+extern void _ZN7ee11460D1Ev();
+Name_Map name_map_ee11460[] = {
+ NSPAIR(_ZN7ee11460C1Ev),
+ NSPAIR(_ZN7ee11460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee11460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 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 _ZTI7ee11460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee11460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11460[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11460[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee11460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee11460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee11460[] = {
+ {&(_ZTV7ee11460[4]), 4,13},
+ {&(_ZTV7ee11460[7]), 7,13},
+ {&(_ZTV7ee11460[11]), 11,13},
+ {&(_tg__ZTV6dd1460__7ee11460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee11460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11460[];
+extern VTBL_ENTRY _ZTV7ee11460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11460[];
+Class_Descriptor cd_ee11460 = { "ee11460", // class name
+ bases_ee11460, 4,
+ &(vtc_ee11460[0]), // expected_vtbl_contents
+ &(vtt_ee11460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11460),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11460),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 ee21460 : dd1460 {
+ int e;
+ virtual void foo(); // _ZN7ee214603fooEv
+ ~ee21460(); // tgen
+ ee21460(); // tgen
+};
+//SIG(1 ee21460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21460 ::foo(){vfunc_called(this, "_ZN7ee214603fooEv");}
+ee21460 ::~ee21460(){ note_dtor("ee21460", this);} // tgen
+ee21460 ::ee21460(){ note_ctor("ee21460", this);} // tgen
+
+static void Test_ee21460()
+{
+ extern Class_Descriptor cd_ee21460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21460, buf);
+ ee21460 *dp, &lv = *(dp=new (buf) ee21460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee21460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee21460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(16,12), "ee21460");
+ check_base_class_offset(lv, (dd1460*), 0, "ee21460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21460.e");
+ test_class_info(&lv, &cd_ee21460);
+ dp->~ee21460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21460(Test_ee21460, "ee21460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21460C1Ev();
+extern void _ZN7ee21460D1Ev();
+Name_Map name_map_ee21460[] = {
+ NSPAIR(_ZN7ee21460C1Ev),
+ NSPAIR(_ZN7ee21460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee21460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21460[];
+extern void _ZN7ee214603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee214603fooEv,_ZTv0_n16_N7ee214603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214603fooEv,_ZThn12_N7ee214603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21460[0]),
+ (VTBL_ENTRY)&_ZN7ee214603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee214603fooEv,_ZTv0_n16_N7ee214603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee21460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee21460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee21460[] = {
+ {&(_ZTV7ee21460[3]), 3,10},
+ {&(_tg__ZTV6dd1460__7ee21460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee21460[4]), 4,6},
+ {&(_ZTV7ee21460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21460[];
+extern VTBL_ENTRY _ZTV7ee21460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21460[];
+static VTBL_ENTRY alt_thunk_names233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee214603fooEv,_ZTv0_n16_N7ee214603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214603fooEv,_ZThn12_N7ee214603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21460 = { "ee21460", // class name
+ bases_ee21460, 4,
+ &(vtc_ee21460[0]), // expected_vtbl_contents
+ &(vtt_ee21460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21460),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 ee31460 : virtual dd1460 {
+ int e;
+ virtual void foo(); // _ZN7ee314603fooEv
+ ~ee31460(); // tgen
+ ee31460(); // tgen
+};
+//SIG(1 ee31460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31460 ::foo(){vfunc_called(this, "_ZN7ee314603fooEv");}
+ee31460 ::~ee31460(){ note_dtor("ee31460", this);} // tgen
+ee31460 ::ee31460(){ note_ctor("ee31460", this);} // tgen
+
+static void Test_ee31460()
+{
+ extern Class_Descriptor cd_ee31460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31460, buf);
+ ee31460 *dp, &lv = *(dp=new (buf) ee31460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee31460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee31460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(32,16), "ee31460");
+ check_base_class_offset(lv, (dd1460*), ABISELECT(16,8), "ee31460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31460.e");
+ test_class_info(&lv, &cd_ee31460);
+ dp->~ee31460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31460(Test_ee31460, "ee31460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31460C1Ev();
+extern void _ZN7ee31460D1Ev();
+Name_Map name_map_ee31460[] = {
+ NSPAIR(_ZN7ee31460C1Ev),
+ NSPAIR(_ZN7ee31460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee31460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 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 _ZTI7ee31460[];
+extern void _ZN7ee314603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee314603fooEv,_ZTv0_n16_N7ee314603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314603fooEv,_ZThn16_N7ee314603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31460[0]),
+ (VTBL_ENTRY)&_ZN7ee314603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31460[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee314603fooEv,_ZTv0_n16_N7ee314603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee31460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee31460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee31460[] = {
+ {&(_ZTV7ee31460[4]), 4,14},
+ {&(_ZTV7ee31460[8]), 8,14},
+ {&(_ZTV7ee31460[12]), 12,14},
+ {&(_tg__ZTV6dd1460__7ee31460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee31460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31460[];
+extern VTBL_ENTRY _ZTV7ee31460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31460[];
+static VTBL_ENTRY alt_thunk_names234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee314603fooEv,_ZTv0_n16_N7ee314603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314603fooEv,_ZThn16_N7ee314603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31460 = { "ee31460", // class name
+ bases_ee31460, 4,
+ &(vtc_ee31460[0]), // expected_vtbl_contents
+ &(vtt_ee31460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31460),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31460),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 ee41460 : dd1460 {
+ int e;
+ virtual void bar(); // _ZN7ee414603barEv
+ ~ee41460(); // tgen
+ ee41460(); // tgen
+};
+//SIG(1 ee41460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41460 ::bar(){vfunc_called(this, "_ZN7ee414603barEv");}
+ee41460 ::~ee41460(){ note_dtor("ee41460", this);} // tgen
+ee41460 ::ee41460(){ note_ctor("ee41460", this);} // tgen
+
+static void Test_ee41460()
+{
+ extern Class_Descriptor cd_ee41460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41460, buf);
+ ee41460 *dp, &lv = *(dp=new (buf) ee41460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee41460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee41460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(16,12), "ee41460");
+ check_base_class_offset(lv, (dd1460*), 0, "ee41460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41460.e");
+ test_class_info(&lv, &cd_ee41460);
+ dp->~ee41460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41460(Test_ee41460, "ee41460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41460C1Ev();
+extern void _ZN7ee41460D1Ev();
+Name_Map name_map_ee41460[] = {
+ NSPAIR(_ZN7ee41460C1Ev),
+ NSPAIR(_ZN7ee41460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee41460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41460[];
+extern void _ZN7ee414603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee414603barEv,_ZTv0_n12_N7ee414603barEv)();
+extern void ABISELECT(_ZThn16_N7ee414603barEv,_ZThn12_N7ee414603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee41460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41460[0]),
+ (VTBL_ENTRY)&_ZN7ee414603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee414603barEv,_ZTv0_n12_N7ee414603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee41460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee41460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee41460[] = {
+ {&(_ZTV7ee41460[3]), 3,10},
+ {&(_tg__ZTV6dd1460__7ee41460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee41460[4]), 4,6},
+ {&(_ZTV7ee41460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41460[];
+extern VTBL_ENTRY _ZTV7ee41460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41460[];
+static VTBL_ENTRY alt_thunk_names235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee414603barEv,_ZTv0_n12_N7ee414603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414603barEv,_ZThn12_N7ee414603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41460 = { "ee41460", // class name
+ bases_ee41460, 4,
+ &(vtc_ee41460[0]), // expected_vtbl_contents
+ &(vtt_ee41460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41460),4, //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 ee51460 : virtual dd1460 {
+ int e;
+ virtual void bar(); // _ZN7ee514603barEv
+ ~ee51460(); // tgen
+ ee51460(); // tgen
+};
+//SIG(1 ee51460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51460 ::bar(){vfunc_called(this, "_ZN7ee514603barEv");}
+ee51460 ::~ee51460(){ note_dtor("ee51460", this);} // tgen
+ee51460 ::ee51460(){ note_ctor("ee51460", this);} // tgen
+
+static void Test_ee51460()
+{
+ extern Class_Descriptor cd_ee51460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51460, buf);
+ ee51460 *dp, &lv = *(dp=new (buf) ee51460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee51460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee51460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(32,16), "ee51460");
+ check_base_class_offset(lv, (dd1460*), ABISELECT(16,8), "ee51460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51460.e");
+ test_class_info(&lv, &cd_ee51460);
+ dp->~ee51460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51460(Test_ee51460, "ee51460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51460C1Ev();
+extern void _ZN7ee51460D1Ev();
+Name_Map name_map_ee51460[] = {
+ NSPAIR(_ZN7ee51460C1Ev),
+ NSPAIR(_ZN7ee51460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee51460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 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 _ZTI7ee51460[];
+extern void _ZN7ee514603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee514603barEv,_ZTv0_n12_N7ee514603barEv)();
+extern void ABISELECT(_ZThn32_N7ee514603barEv,_ZThn16_N7ee514603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee51460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51460[0]),
+ (VTBL_ENTRY)&_ZN7ee514603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51460[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee514603barEv,_ZTv0_n12_N7ee514603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee51460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee51460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee51460[] = {
+ {&(_ZTV7ee51460[4]), 4,14},
+ {&(_ZTV7ee51460[8]), 8,14},
+ {&(_ZTV7ee51460[12]), 12,14},
+ {&(_tg__ZTV6dd1460__7ee51460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee51460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51460[];
+extern VTBL_ENTRY _ZTV7ee51460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51460[];
+static VTBL_ENTRY alt_thunk_names236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee514603barEv,_ZTv0_n12_N7ee514603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514603barEv,_ZThn16_N7ee514603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51460 = { "ee51460", // class name
+ bases_ee51460, 4,
+ &(vtc_ee51460[0]), // expected_vtbl_contents
+ &(vtt_ee51460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51460),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51460),5, //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 ee61460 : dd1460 {
+ int e;
+ virtual void foo(); // _ZN7ee614603fooEv
+ virtual void bar(); // _ZN7ee614603barEv
+ ~ee61460(); // tgen
+ ee61460(); // tgen
+};
+//SIG(1 ee61460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61460 ::foo(){vfunc_called(this, "_ZN7ee614603fooEv");}
+void ee61460 ::bar(){vfunc_called(this, "_ZN7ee614603barEv");}
+ee61460 ::~ee61460(){ note_dtor("ee61460", this);} // tgen
+ee61460 ::ee61460(){ note_ctor("ee61460", this);} // tgen
+
+static void Test_ee61460()
+{
+ extern Class_Descriptor cd_ee61460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61460, buf);
+ ee61460 *dp, &lv = *(dp=new (buf) ee61460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee61460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee61460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(16,12), "ee61460");
+ check_base_class_offset(lv, (dd1460*), 0, "ee61460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61460.e");
+ test_class_info(&lv, &cd_ee61460);
+ dp->~ee61460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61460(Test_ee61460, "ee61460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61460C1Ev();
+extern void _ZN7ee61460D1Ev();
+Name_Map name_map_ee61460[] = {
+ NSPAIR(_ZN7ee61460C1Ev),
+ NSPAIR(_ZN7ee61460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee61460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61460[];
+extern void _ZN7ee614603fooEv();
+extern void _ZN7ee614603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614603barEv,_ZTv0_n12_N7ee614603barEv)();
+extern void ABISELECT(_ZThn16_N7ee614603barEv,_ZThn12_N7ee614603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614603fooEv,_ZTv0_n16_N7ee614603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614603fooEv,_ZThn12_N7ee614603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61460[0]),
+ (VTBL_ENTRY)&_ZN7ee614603fooEv,
+ (VTBL_ENTRY)&_ZN7ee614603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614603barEv,_ZTv0_n12_N7ee614603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614603fooEv,_ZTv0_n16_N7ee614603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee61460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee61460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee61460[] = {
+ {&(_ZTV7ee61460[3]), 3,11},
+ {&(_tg__ZTV6dd1460__7ee61460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee61460[4]), 4,6},
+ {&(_ZTV7ee61460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61460[];
+extern VTBL_ENTRY _ZTV7ee61460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61460[];
+static VTBL_ENTRY alt_thunk_names237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614603fooEv,_ZTv0_n16_N7ee614603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614603fooEv,_ZThn12_N7ee614603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614603barEv,_ZTv0_n12_N7ee614603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614603barEv,_ZThn12_N7ee614603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61460 = { "ee61460", // class name
+ bases_ee61460, 4,
+ &(vtc_ee61460[0]), // expected_vtbl_contents
+ &(vtt_ee61460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61460),4, //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 ee71460 : virtual dd1460 {
+ int e;
+ virtual void foo(); // _ZN7ee714603fooEv
+ virtual void bar(); // _ZN7ee714603barEv
+ ~ee71460(); // tgen
+ ee71460(); // tgen
+};
+//SIG(1 ee71460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71460 ::foo(){vfunc_called(this, "_ZN7ee714603fooEv");}
+void ee71460 ::bar(){vfunc_called(this, "_ZN7ee714603barEv");}
+ee71460 ::~ee71460(){ note_dtor("ee71460", this);} // tgen
+ee71460 ::ee71460(){ note_ctor("ee71460", this);} // tgen
+
+static void Test_ee71460()
+{
+ extern Class_Descriptor cd_ee71460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71460, buf);
+ ee71460 *dp, &lv = *(dp=new (buf) ee71460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee71460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee71460");
+ check_base_class_offset(lv, (cc460*)(dd1460*), ABISELECT(32,16), "ee71460");
+ check_base_class_offset(lv, (dd1460*), ABISELECT(16,8), "ee71460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71460.e");
+ test_class_info(&lv, &cd_ee71460);
+ dp->~ee71460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71460(Test_ee71460, "ee71460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71460C1Ev();
+extern void _ZN7ee71460D1Ev();
+Name_Map name_map_ee71460[] = {
+ NSPAIR(_ZN7ee71460C1Ev),
+ NSPAIR(_ZN7ee71460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd1460;
+extern VTBL_ENTRY _ZTI6dd1460[];
+extern VTBL_ENTRY _ZTV6dd1460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1460[];
+static Base_Class bases_ee71460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd1460, 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 _ZTI7ee71460[];
+extern void _ZN7ee714603fooEv();
+extern void _ZN7ee714603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714603barEv,_ZTv0_n12_N7ee714603barEv)();
+extern void ABISELECT(_ZThn32_N7ee714603barEv,_ZThn16_N7ee714603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714603fooEv,_ZTv0_n16_N7ee714603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714603fooEv,_ZThn16_N7ee714603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71460[0]),
+ (VTBL_ENTRY)&_ZN7ee714603fooEv,
+ (VTBL_ENTRY)&_ZN7ee714603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71460[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714603barEv,_ZTv0_n12_N7ee714603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714603fooEv,_ZTv0_n16_N7ee714603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71460[];
+static VTBL_ENTRY _tg__ZTV6dd1460__7ee71460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+};
+extern void _ZN5cc4603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd1460__7ee71460[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee71460[] = {
+ {&(_ZTV7ee71460[4]), 4,15},
+ {&(_ZTV7ee71460[9]), 9,15},
+ {&(_ZTV7ee71460[13]), 13,15},
+ {&(_tg__ZTV6dd1460__7ee71460[3]), 3,3},
+ {&(_tg__ZTV5cc460__6dd1460__7ee71460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71460[];
+extern VTBL_ENTRY _ZTV7ee71460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71460[];
+static VTBL_ENTRY alt_thunk_names238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714603fooEv,_ZTv0_n16_N7ee714603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714603fooEv,_ZThn16_N7ee714603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714603barEv,_ZTv0_n12_N7ee714603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714603barEv,_ZThn16_N7ee714603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71460 = { "ee71460", // class name
+ bases_ee71460, 4,
+ &(vtc_ee71460[0]), // expected_vtbl_contents
+ &(vtt_ee71460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71460),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71460),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2460 : cc460 {
+ int d;
+ virtual void foo(); // _ZN6dd24603fooEv
+ ~dd2460(); // tgen
+ dd2460(); // tgen
+};
+//SIG(-1 dd2460) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2460 ::foo(){vfunc_called(this, "_ZN6dd24603fooEv");}
+dd2460 ::~dd2460(){ note_dtor("dd2460", this);} // tgen
+dd2460 ::dd2460(){ note_ctor("dd2460", this);} // tgen
+
+static void Test_dd2460()
+{
+ extern Class_Descriptor cd_dd2460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2460, buf);
+ dd2460 *dp, &lv = *(dp=new (buf) dd2460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(8,4), "dd2460");
+ check_base_class_offset(lv, (bb60*)(cc460*), 0, "dd2460");
+ check_base_class_offset(lv, (cc460*), 0, "dd2460");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2460.d");
+ test_class_info(&lv, &cd_dd2460);
+ dp->~dd2460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2460(Test_dd2460, "dd2460", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2460C1Ev();
+extern void _ZN6dd2460D1Ev();
+Name_Map name_map_dd2460[] = {
+ NSPAIR(_ZN6dd2460C1Ev),
+ NSPAIR(_ZN6dd2460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd2460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN6dd24603fooEv();
+static VTBL_ENTRY vtc_dd2460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN6dd24603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+Class_Descriptor cd_dd2460 = { "dd2460", // class name
+ bases_dd2460, 3,
+ &(vtc_dd2460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2460),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 ee02460 : dd2460 {
+ int e;
+ ~ee02460(); // tgen
+ ee02460(); // tgen
+};
+//SIG(1 ee02460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02460 ::~ee02460(){ note_dtor("ee02460", this);} // tgen
+ee02460 ::ee02460(){ note_ctor("ee02460", this);} // tgen
+
+static void Test_ee02460()
+{
+ extern Class_Descriptor cd_ee02460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02460, buf);
+ ee02460 *dp, &lv = *(dp=new (buf) ee02460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(8,4), "ee02460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), 0, "ee02460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), 0, "ee02460");
+ check_base_class_offset(lv, (dd2460*), 0, "ee02460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02460.e");
+ test_class_info(&lv, &cd_ee02460);
+ dp->~ee02460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02460(Test_ee02460, "ee02460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02460C1Ev();
+extern void _ZN7ee02460D1Ev();
+Name_Map name_map_ee02460[] = {
+ NSPAIR(_ZN7ee02460C1Ev),
+ NSPAIR(_ZN7ee02460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee02460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, 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 _ZTI7ee02460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN6dd24603fooEv();
+static VTBL_ENTRY vtc_ee02460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN6dd24603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02460[];
+extern VTBL_ENTRY _ZTV7ee02460[];
+Class_Descriptor cd_ee02460 = { "ee02460", // class name
+ bases_ee02460, 4,
+ &(vtc_ee02460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02460),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 ee12460 : virtual dd2460 {
+ int e;
+ ~ee12460(); // tgen
+ ee12460(); // tgen
+};
+//SIG(1 ee12460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12460 ::~ee12460(){ note_dtor("ee12460", this);} // tgen
+ee12460 ::ee12460(){ note_ctor("ee12460", this);} // tgen
+
+static void Test_ee12460()
+{
+ extern Class_Descriptor cd_ee12460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12460, buf);
+ ee12460 *dp, &lv = *(dp=new (buf) ee12460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(24,12), "ee12460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), ABISELECT(16,8), "ee12460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), ABISELECT(16,8), "ee12460");
+ check_base_class_offset(lv, (dd2460*), ABISELECT(16,8), "ee12460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12460.e");
+ test_class_info(&lv, &cd_ee12460);
+ dp->~ee12460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12460(Test_ee12460, "ee12460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12460C1Ev();
+extern void _ZN7ee12460D1Ev();
+Name_Map name_map_ee12460[] = {
+ NSPAIR(_ZN7ee12460C1Ev),
+ NSPAIR(_ZN7ee12460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee12460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, 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 _ZTI7ee12460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN6dd24603fooEv();
+static VTBL_ENTRY vtc_ee12460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN6dd24603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12460[];
+static VTT_ENTRY vtt_ee12460[] = {
+ {&(_ZTV7ee12460[3]), 3,9},
+ {&(_ZTV7ee12460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12460[];
+extern VTBL_ENTRY _ZTV7ee12460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12460[];
+Class_Descriptor cd_ee12460 = { "ee12460", // class name
+ bases_ee12460, 4,
+ &(vtc_ee12460[0]), // expected_vtbl_contents
+ &(vtt_ee12460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12460),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 ee22460 : dd2460 {
+ int e;
+ virtual void foo(); // _ZN7ee224603fooEv
+ ~ee22460(); // tgen
+ ee22460(); // tgen
+};
+//SIG(1 ee22460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22460 ::foo(){vfunc_called(this, "_ZN7ee224603fooEv");}
+ee22460 ::~ee22460(){ note_dtor("ee22460", this);} // tgen
+ee22460 ::ee22460(){ note_ctor("ee22460", this);} // tgen
+
+static void Test_ee22460()
+{
+ extern Class_Descriptor cd_ee22460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22460, buf);
+ ee22460 *dp, &lv = *(dp=new (buf) ee22460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(8,4), "ee22460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), 0, "ee22460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), 0, "ee22460");
+ check_base_class_offset(lv, (dd2460*), 0, "ee22460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22460.e");
+ test_class_info(&lv, &cd_ee22460);
+ dp->~ee22460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22460(Test_ee22460, "ee22460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22460C1Ev();
+extern void _ZN7ee22460D1Ev();
+Name_Map name_map_ee22460[] = {
+ NSPAIR(_ZN7ee22460C1Ev),
+ NSPAIR(_ZN7ee22460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee22460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22460[];
+extern void _ZN5cc4603barEv();
+extern void _ZN7ee224603fooEv();
+static VTBL_ENTRY vtc_ee22460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&_ZN7ee224603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22460[];
+extern VTBL_ENTRY _ZTV7ee22460[];
+Class_Descriptor cd_ee22460 = { "ee22460", // class name
+ bases_ee22460, 4,
+ &(vtc_ee22460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22460),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 ee32460 : virtual dd2460 {
+ int e;
+ virtual void foo(); // _ZN7ee324603fooEv
+ ~ee32460(); // tgen
+ ee32460(); // tgen
+};
+//SIG(1 ee32460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32460 ::foo(){vfunc_called(this, "_ZN7ee324603fooEv");}
+ee32460 ::~ee32460(){ note_dtor("ee32460", this);} // tgen
+ee32460 ::ee32460(){ note_ctor("ee32460", this);} // tgen
+
+static void Test_ee32460()
+{
+ extern Class_Descriptor cd_ee32460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32460, buf);
+ ee32460 *dp, &lv = *(dp=new (buf) ee32460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(24,12), "ee32460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), ABISELECT(16,8), "ee32460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), ABISELECT(16,8), "ee32460");
+ check_base_class_offset(lv, (dd2460*), ABISELECT(16,8), "ee32460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32460.e");
+ test_class_info(&lv, &cd_ee32460);
+ dp->~ee32460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32460(Test_ee32460, "ee32460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32460C1Ev();
+extern void _ZN7ee32460D1Ev();
+Name_Map name_map_ee32460[] = {
+ NSPAIR(_ZN7ee32460C1Ev),
+ NSPAIR(_ZN7ee32460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee32460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, ABISELECT(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 _ZTI7ee32460[];
+extern void _ZN7ee324603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee324603fooEv,_ZTv0_n16_N7ee324603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324603fooEv,_ZThn8_N7ee324603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32460[0]),
+ (VTBL_ENTRY)&_ZN7ee324603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee324603fooEv,_ZTv0_n16_N7ee324603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32460[];
+static VTT_ENTRY vtt_ee32460[] = {
+ {&(_ZTV7ee32460[3]), 3,10},
+ {&(_ZTV7ee32460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32460[];
+extern VTBL_ENTRY _ZTV7ee32460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32460[];
+static VTBL_ENTRY alt_thunk_names239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee324603fooEv,_ZTv0_n16_N7ee324603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324603fooEv,_ZThn8_N7ee324603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32460 = { "ee32460", // class name
+ bases_ee32460, 4,
+ &(vtc_ee32460[0]), // expected_vtbl_contents
+ &(vtt_ee32460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32460),2, //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 ee42460 : dd2460 {
+ int e;
+ virtual void bar(); // _ZN7ee424603barEv
+ ~ee42460(); // tgen
+ ee42460(); // tgen
+};
+//SIG(1 ee42460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42460 ::bar(){vfunc_called(this, "_ZN7ee424603barEv");}
+ee42460 ::~ee42460(){ note_dtor("ee42460", this);} // tgen
+ee42460 ::ee42460(){ note_ctor("ee42460", this);} // tgen
+
+static void Test_ee42460()
+{
+ extern Class_Descriptor cd_ee42460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42460, buf);
+ ee42460 *dp, &lv = *(dp=new (buf) ee42460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(8,4), "ee42460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), 0, "ee42460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), 0, "ee42460");
+ check_base_class_offset(lv, (dd2460*), 0, "ee42460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42460.e");
+ test_class_info(&lv, &cd_ee42460);
+ dp->~ee42460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42460(Test_ee42460, "ee42460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42460C1Ev();
+extern void _ZN7ee42460D1Ev();
+Name_Map name_map_ee42460[] = {
+ NSPAIR(_ZN7ee42460C1Ev),
+ NSPAIR(_ZN7ee42460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee42460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42460[];
+extern void _ZN7ee424603barEv();
+extern void _ZN6dd24603fooEv();
+static VTBL_ENTRY vtc_ee42460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42460[0]),
+ (VTBL_ENTRY)&_ZN7ee424603barEv,
+ (VTBL_ENTRY)&_ZN6dd24603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee42460[];
+extern VTBL_ENTRY _ZTV7ee42460[];
+Class_Descriptor cd_ee42460 = { "ee42460", // class name
+ bases_ee42460, 4,
+ &(vtc_ee42460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42460),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 ee52460 : virtual dd2460 {
+ int e;
+ virtual void bar(); // _ZN7ee524603barEv
+ ~ee52460(); // tgen
+ ee52460(); // tgen
+};
+//SIG(1 ee52460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52460 ::bar(){vfunc_called(this, "_ZN7ee524603barEv");}
+ee52460 ::~ee52460(){ note_dtor("ee52460", this);} // tgen
+ee52460 ::ee52460(){ note_ctor("ee52460", this);} // tgen
+
+static void Test_ee52460()
+{
+ extern Class_Descriptor cd_ee52460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52460, buf);
+ ee52460 *dp, &lv = *(dp=new (buf) ee52460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(24,12), "ee52460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), ABISELECT(16,8), "ee52460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), ABISELECT(16,8), "ee52460");
+ check_base_class_offset(lv, (dd2460*), ABISELECT(16,8), "ee52460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52460.e");
+ test_class_info(&lv, &cd_ee52460);
+ dp->~ee52460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52460(Test_ee52460, "ee52460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52460C1Ev();
+extern void _ZN7ee52460D1Ev();
+Name_Map name_map_ee52460[] = {
+ NSPAIR(_ZN7ee52460C1Ev),
+ NSPAIR(_ZN7ee52460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee52460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, ABISELECT(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 _ZTI7ee52460[];
+extern void _ZN7ee524603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee524603barEv,_ZTv0_n12_N7ee524603barEv)();
+extern void ABISELECT(_ZThn16_N7ee524603barEv,_ZThn8_N7ee524603barEv)() __attribute__((weak));
+extern void _ZN6dd24603fooEv();
+static VTBL_ENTRY vtc_ee52460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52460[0]),
+ (VTBL_ENTRY)&_ZN7ee524603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee524603barEv,_ZTv0_n12_N7ee524603barEv),
+ (VTBL_ENTRY)&_ZN6dd24603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52460[];
+static VTT_ENTRY vtt_ee52460[] = {
+ {&(_ZTV7ee52460[3]), 3,10},
+ {&(_ZTV7ee52460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52460[];
+extern VTBL_ENTRY _ZTV7ee52460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52460[];
+static VTBL_ENTRY alt_thunk_names240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee524603barEv,_ZTv0_n12_N7ee524603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524603barEv,_ZThn8_N7ee524603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52460 = { "ee52460", // class name
+ bases_ee52460, 4,
+ &(vtc_ee52460[0]), // expected_vtbl_contents
+ &(vtt_ee52460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52460),2, //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 ee62460 : dd2460 {
+ int e;
+ virtual void foo(); // _ZN7ee624603fooEv
+ virtual void bar(); // _ZN7ee624603barEv
+ ~ee62460(); // tgen
+ ee62460(); // tgen
+};
+//SIG(1 ee62460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62460 ::foo(){vfunc_called(this, "_ZN7ee624603fooEv");}
+void ee62460 ::bar(){vfunc_called(this, "_ZN7ee624603barEv");}
+ee62460 ::~ee62460(){ note_dtor("ee62460", this);} // tgen
+ee62460 ::ee62460(){ note_ctor("ee62460", this);} // tgen
+
+static void Test_ee62460()
+{
+ extern Class_Descriptor cd_ee62460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62460, buf);
+ ee62460 *dp, &lv = *(dp=new (buf) ee62460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(8,4), "ee62460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), 0, "ee62460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), 0, "ee62460");
+ check_base_class_offset(lv, (dd2460*), 0, "ee62460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62460.e");
+ test_class_info(&lv, &cd_ee62460);
+ dp->~ee62460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62460(Test_ee62460, "ee62460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62460C1Ev();
+extern void _ZN7ee62460D1Ev();
+Name_Map name_map_ee62460[] = {
+ NSPAIR(_ZN7ee62460C1Ev),
+ NSPAIR(_ZN7ee62460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee62460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62460[];
+extern void _ZN7ee624603barEv();
+extern void _ZN7ee624603fooEv();
+static VTBL_ENTRY vtc_ee62460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62460[0]),
+ (VTBL_ENTRY)&_ZN7ee624603barEv,
+ (VTBL_ENTRY)&_ZN7ee624603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee62460[];
+extern VTBL_ENTRY _ZTV7ee62460[];
+Class_Descriptor cd_ee62460 = { "ee62460", // class name
+ bases_ee62460, 4,
+ &(vtc_ee62460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62460),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 ee72460 : virtual dd2460 {
+ int e;
+ virtual void foo(); // _ZN7ee724603fooEv
+ virtual void bar(); // _ZN7ee724603barEv
+ ~ee72460(); // tgen
+ ee72460(); // tgen
+};
+//SIG(1 ee72460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72460 ::foo(){vfunc_called(this, "_ZN7ee724603fooEv");}
+void ee72460 ::bar(){vfunc_called(this, "_ZN7ee724603barEv");}
+ee72460 ::~ee72460(){ note_dtor("ee72460", this);} // tgen
+ee72460 ::ee72460(){ note_ctor("ee72460", this);} // tgen
+
+static void Test_ee72460()
+{
+ extern Class_Descriptor cd_ee72460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72460, buf);
+ ee72460 *dp, &lv = *(dp=new (buf) ee72460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd2460*), ABISELECT(24,12), "ee72460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd2460*), ABISELECT(16,8), "ee72460");
+ check_base_class_offset(lv, (cc460*)(dd2460*), ABISELECT(16,8), "ee72460");
+ check_base_class_offset(lv, (dd2460*), ABISELECT(16,8), "ee72460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72460.e");
+ test_class_info(&lv, &cd_ee72460);
+ dp->~ee72460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72460(Test_ee72460, "ee72460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72460C1Ev();
+extern void _ZN7ee72460D1Ev();
+Name_Map name_map_ee72460[] = {
+ NSPAIR(_ZN7ee72460C1Ev),
+ NSPAIR(_ZN7ee72460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd2460;
+extern VTBL_ENTRY _ZTI6dd2460[];
+extern VTBL_ENTRY _ZTV6dd2460[];
+static Base_Class bases_ee72460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2460, ABISELECT(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 _ZTI7ee72460[];
+extern void _ZN7ee724603fooEv();
+extern void _ZN7ee724603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724603barEv,_ZTv0_n12_N7ee724603barEv)();
+extern void ABISELECT(_ZThn16_N7ee724603barEv,_ZThn8_N7ee724603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724603fooEv,_ZTv0_n16_N7ee724603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724603fooEv,_ZThn8_N7ee724603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72460[0]),
+ (VTBL_ENTRY)&_ZN7ee724603fooEv,
+ (VTBL_ENTRY)&_ZN7ee724603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724603barEv,_ZTv0_n12_N7ee724603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724603fooEv,_ZTv0_n16_N7ee724603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72460[];
+static VTT_ENTRY vtt_ee72460[] = {
+ {&(_ZTV7ee72460[3]), 3,11},
+ {&(_ZTV7ee72460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72460[];
+extern VTBL_ENTRY _ZTV7ee72460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72460[];
+static VTBL_ENTRY alt_thunk_names241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724603fooEv,_ZTv0_n16_N7ee724603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724603fooEv,_ZThn8_N7ee724603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724603barEv,_ZTv0_n12_N7ee724603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724603barEv,_ZThn8_N7ee724603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72460 = { "ee72460", // class name
+ bases_ee72460, 4,
+ &(vtc_ee72460[0]), // expected_vtbl_contents
+ &(vtt_ee72460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72460),2, //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 dd3460 : virtual cc460 {
+ int d;
+ virtual void foo(); // _ZN6dd34603fooEv
+ ~dd3460(); // tgen
+ dd3460(); // tgen
+};
+//SIG(-1 dd3460) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3460 ::foo(){vfunc_called(this, "_ZN6dd34603fooEv");}
+dd3460 ::~dd3460(){ note_dtor("dd3460", this);} // tgen
+dd3460 ::dd3460(){ note_ctor("dd3460", this);} // tgen
+
+static void Test_dd3460()
+{
+ extern Class_Descriptor cd_dd3460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3460, buf);
+ dd3460 *dp, &lv = *(dp=new (buf) dd3460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,12), "dd3460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,8), "dd3460");
+ check_base_class_offset(lv, (cc460*), ABISELECT(16,8), "dd3460");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3460.d");
+ test_class_info(&lv, &cd_dd3460);
+ dp->~dd3460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3460(Test_dd3460, "dd3460", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3460C1Ev();
+extern void _ZN6dd3460D1Ev();
+Name_Map name_map_dd3460[] = {
+ NSPAIR(_ZN6dd3460C1Ev),
+ NSPAIR(_ZN6dd3460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd3460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(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 _ZTI6dd3460[];
+extern void _ZN6dd34603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3460[];
+static VTT_ENTRY vtt_dd3460[] = {
+ {&(_ZTV6dd3460[3]), 3,10},
+ {&(_ZTV6dd3460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static VTBL_ENTRY alt_thunk_names242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3460 = { "dd3460", // class name
+ bases_dd3460, 3,
+ &(vtc_dd3460[0]), // expected_vtbl_contents
+ &(vtt_dd3460[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3460),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03460 : dd3460 {
+ int e;
+ ~ee03460(); // tgen
+ ee03460(); // tgen
+};
+//SIG(1 ee03460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03460 ::~ee03460(){ note_dtor("ee03460", this);} // tgen
+ee03460 ::ee03460(){ note_ctor("ee03460", this);} // tgen
+
+static void Test_ee03460()
+{
+ extern Class_Descriptor cd_ee03460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03460, buf);
+ ee03460 *dp, &lv = *(dp=new (buf) ee03460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee03460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee03460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(16,12), "ee03460");
+ check_base_class_offset(lv, (dd3460*), 0, "ee03460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03460.e");
+ test_class_info(&lv, &cd_ee03460);
+ dp->~ee03460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03460(Test_ee03460, "ee03460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03460C1Ev();
+extern void _ZN7ee03460D1Ev();
+Name_Map name_map_ee03460[] = {
+ NSPAIR(_ZN7ee03460C1Ev),
+ NSPAIR(_ZN7ee03460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee03460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03460[];
+extern void _ZN6dd34603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee03460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee03460[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee03460[] = {
+ {&(_ZTV7ee03460[3]), 3,10},
+ {&(_tg__ZTV6dd3460__7ee03460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee03460[4]), 4,6},
+ {&(_ZTV7ee03460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03460[];
+extern VTBL_ENTRY _ZTV7ee03460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03460[];
+static VTBL_ENTRY alt_thunk_names243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03460 = { "ee03460", // class name
+ bases_ee03460, 4,
+ &(vtc_ee03460[0]), // expected_vtbl_contents
+ &(vtt_ee03460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03460),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 ee13460 : virtual dd3460 {
+ int e;
+ ~ee13460(); // tgen
+ ee13460(); // tgen
+};
+//SIG(1 ee13460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13460 ::~ee13460(){ note_dtor("ee13460", this);} // tgen
+ee13460 ::ee13460(){ note_ctor("ee13460", this);} // tgen
+
+static void Test_ee13460()
+{
+ extern Class_Descriptor cd_ee13460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13460, buf);
+ ee13460 *dp, &lv = *(dp=new (buf) ee13460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee13460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee13460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(32,16), "ee13460");
+ check_base_class_offset(lv, (dd3460*), ABISELECT(16,8), "ee13460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13460.e");
+ test_class_info(&lv, &cd_ee13460);
+ dp->~ee13460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13460(Test_ee13460, "ee13460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13460C1Ev();
+extern void _ZN7ee13460D1Ev();
+Name_Map name_map_ee13460[] = {
+ NSPAIR(_ZN7ee13460C1Ev),
+ NSPAIR(_ZN7ee13460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee13460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, ABISELECT(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 _ZTI7ee13460[];
+extern void _ZN6dd34603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13460[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee13460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee13460[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee13460[] = {
+ {&(_ZTV7ee13460[4]), 4,15},
+ {&(_ZTV7ee13460[8]), 8,15},
+ {&(_ZTV7ee13460[13]), 13,15},
+ {&(_tg__ZTV6dd3460__7ee13460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee13460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13460[];
+extern VTBL_ENTRY _ZTV7ee13460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13460[];
+static VTBL_ENTRY alt_thunk_names244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13460 = { "ee13460", // class name
+ bases_ee13460, 4,
+ &(vtc_ee13460[0]), // expected_vtbl_contents
+ &(vtt_ee13460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13460),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13460),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 ee23460 : dd3460 {
+ int e;
+ virtual void foo(); // _ZN7ee234603fooEv
+ ~ee23460(); // tgen
+ ee23460(); // tgen
+};
+//SIG(1 ee23460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23460 ::foo(){vfunc_called(this, "_ZN7ee234603fooEv");}
+ee23460 ::~ee23460(){ note_dtor("ee23460", this);} // tgen
+ee23460 ::ee23460(){ note_ctor("ee23460", this);} // tgen
+
+static void Test_ee23460()
+{
+ extern Class_Descriptor cd_ee23460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23460, buf);
+ ee23460 *dp, &lv = *(dp=new (buf) ee23460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee23460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee23460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(16,12), "ee23460");
+ check_base_class_offset(lv, (dd3460*), 0, "ee23460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23460.e");
+ test_class_info(&lv, &cd_ee23460);
+ dp->~ee23460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23460(Test_ee23460, "ee23460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23460C1Ev();
+extern void _ZN7ee23460D1Ev();
+Name_Map name_map_ee23460[] = {
+ NSPAIR(_ZN7ee23460C1Ev),
+ NSPAIR(_ZN7ee23460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee23460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23460[];
+extern void _ZN7ee234603fooEv();
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee234603fooEv,_ZTv0_n16_N7ee234603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234603fooEv,_ZThn12_N7ee234603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23460[0]),
+ (VTBL_ENTRY)&_ZN7ee234603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee234603fooEv,_ZTv0_n16_N7ee234603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee23460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee23460[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee23460[] = {
+ {&(_ZTV7ee23460[3]), 3,10},
+ {&(_tg__ZTV6dd3460__7ee23460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee23460[4]), 4,6},
+ {&(_ZTV7ee23460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23460[];
+extern VTBL_ENTRY _ZTV7ee23460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23460[];
+static VTBL_ENTRY alt_thunk_names245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee234603fooEv,_ZTv0_n16_N7ee234603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234603fooEv,_ZThn12_N7ee234603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23460 = { "ee23460", // class name
+ bases_ee23460, 4,
+ &(vtc_ee23460[0]), // expected_vtbl_contents
+ &(vtt_ee23460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23460),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 ee33460 : virtual dd3460 {
+ int e;
+ virtual void foo(); // _ZN7ee334603fooEv
+ ~ee33460(); // tgen
+ ee33460(); // tgen
+};
+//SIG(1 ee33460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33460 ::foo(){vfunc_called(this, "_ZN7ee334603fooEv");}
+ee33460 ::~ee33460(){ note_dtor("ee33460", this);} // tgen
+ee33460 ::ee33460(){ note_ctor("ee33460", this);} // tgen
+
+static void Test_ee33460()
+{
+ extern Class_Descriptor cd_ee33460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33460, buf);
+ ee33460 *dp, &lv = *(dp=new (buf) ee33460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee33460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee33460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(32,16), "ee33460");
+ check_base_class_offset(lv, (dd3460*), ABISELECT(16,8), "ee33460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33460.e");
+ test_class_info(&lv, &cd_ee33460);
+ dp->~ee33460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33460(Test_ee33460, "ee33460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33460C1Ev();
+extern void _ZN7ee33460D1Ev();
+Name_Map name_map_ee33460[] = {
+ NSPAIR(_ZN7ee33460C1Ev),
+ NSPAIR(_ZN7ee33460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee33460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, ABISELECT(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 _ZTI7ee33460[];
+extern void _ZN7ee334603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334603fooEv,_ZTv0_n16_N7ee334603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334603fooEv,_ZThn8_N7ee334603fooEv)() __attribute__((weak));
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334603fooEv,_ZTv0_n16_N7ee334603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334603fooEv,_ZThn16_N7ee334603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33460[0]),
+ (VTBL_ENTRY)&_ZN7ee334603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334603fooEv,_ZTv0_n16_N7ee334603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334603fooEv,_ZTv0_n16_N7ee334603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee33460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee33460[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee33460[] = {
+ {&(_ZTV7ee33460[4]), 4,16},
+ {&(_ZTV7ee33460[9]), 9,16},
+ {&(_ZTV7ee33460[14]), 14,16},
+ {&(_tg__ZTV6dd3460__7ee33460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee33460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33460[];
+extern VTBL_ENTRY _ZTV7ee33460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33460[];
+static VTBL_ENTRY alt_thunk_names246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334603fooEv,_ZTv0_n16_N7ee334603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334603fooEv,_ZThn16_N7ee334603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334603fooEv,_ZThn8_N7ee334603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33460 = { "ee33460", // class name
+ bases_ee33460, 4,
+ &(vtc_ee33460[0]), // expected_vtbl_contents
+ &(vtt_ee33460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33460),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33460),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 ee43460 : dd3460 {
+ int e;
+ virtual void bar(); // _ZN7ee434603barEv
+ ~ee43460(); // tgen
+ ee43460(); // tgen
+};
+//SIG(1 ee43460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43460 ::bar(){vfunc_called(this, "_ZN7ee434603barEv");}
+ee43460 ::~ee43460(){ note_dtor("ee43460", this);} // tgen
+ee43460 ::ee43460(){ note_ctor("ee43460", this);} // tgen
+
+static void Test_ee43460()
+{
+ extern Class_Descriptor cd_ee43460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43460, buf);
+ ee43460 *dp, &lv = *(dp=new (buf) ee43460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee43460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee43460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(16,12), "ee43460");
+ check_base_class_offset(lv, (dd3460*), 0, "ee43460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43460.e");
+ test_class_info(&lv, &cd_ee43460);
+ dp->~ee43460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43460(Test_ee43460, "ee43460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43460C1Ev();
+extern void _ZN7ee43460D1Ev();
+Name_Map name_map_ee43460[] = {
+ NSPAIR(_ZN7ee43460C1Ev),
+ NSPAIR(_ZN7ee43460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee43460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43460[];
+extern void _ZN6dd34603fooEv();
+extern void _ZN7ee434603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee434603barEv,_ZTv0_n12_N7ee434603barEv)();
+extern void ABISELECT(_ZThn16_N7ee434603barEv,_ZThn12_N7ee434603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+ (VTBL_ENTRY)&_ZN7ee434603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee434603barEv,_ZTv0_n12_N7ee434603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee43460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee43460[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee43460[] = {
+ {&(_ZTV7ee43460[3]), 3,11},
+ {&(_tg__ZTV6dd3460__7ee43460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee43460[4]), 4,6},
+ {&(_ZTV7ee43460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43460[];
+extern VTBL_ENTRY _ZTV7ee43460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43460[];
+static VTBL_ENTRY alt_thunk_names247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee434603barEv,_ZTv0_n12_N7ee434603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434603barEv,_ZThn12_N7ee434603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43460 = { "ee43460", // class name
+ bases_ee43460, 4,
+ &(vtc_ee43460[0]), // expected_vtbl_contents
+ &(vtt_ee43460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43460),4, //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 ee53460 : virtual dd3460 {
+ int e;
+ virtual void bar(); // _ZN7ee534603barEv
+ ~ee53460(); // tgen
+ ee53460(); // tgen
+};
+//SIG(1 ee53460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53460 ::bar(){vfunc_called(this, "_ZN7ee534603barEv");}
+ee53460 ::~ee53460(){ note_dtor("ee53460", this);} // tgen
+ee53460 ::ee53460(){ note_ctor("ee53460", this);} // tgen
+
+static void Test_ee53460()
+{
+ extern Class_Descriptor cd_ee53460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53460, buf);
+ ee53460 *dp, &lv = *(dp=new (buf) ee53460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee53460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee53460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(32,16), "ee53460");
+ check_base_class_offset(lv, (dd3460*), ABISELECT(16,8), "ee53460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53460.e");
+ test_class_info(&lv, &cd_ee53460);
+ dp->~ee53460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53460(Test_ee53460, "ee53460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53460C1Ev();
+extern void _ZN7ee53460D1Ev();
+Name_Map name_map_ee53460[] = {
+ NSPAIR(_ZN7ee53460C1Ev),
+ NSPAIR(_ZN7ee53460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee53460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, ABISELECT(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 _ZTI7ee53460[];
+extern void _ZN7ee534603barEv();
+extern void _ZN6dd34603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee534603barEv,_ZTv0_n12_N7ee534603barEv)();
+extern void ABISELECT(_ZThn32_N7ee534603barEv,_ZThn16_N7ee534603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53460[0]),
+ (VTBL_ENTRY)&_ZN7ee534603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee534603barEv,_ZTv0_n12_N7ee534603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee53460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee53460[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee53460[] = {
+ {&(_ZTV7ee53460[4]), 4,16},
+ {&(_ZTV7ee53460[9]), 9,16},
+ {&(_ZTV7ee53460[14]), 14,16},
+ {&(_tg__ZTV6dd3460__7ee53460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee53460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53460[];
+extern VTBL_ENTRY _ZTV7ee53460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53460[];
+static VTBL_ENTRY alt_thunk_names248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee534603barEv,_ZTv0_n12_N7ee534603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534603barEv,_ZThn16_N7ee534603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53460 = { "ee53460", // class name
+ bases_ee53460, 4,
+ &(vtc_ee53460[0]), // expected_vtbl_contents
+ &(vtt_ee53460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53460),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53460),5, //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 ee63460 : dd3460 {
+ int e;
+ virtual void foo(); // _ZN7ee634603fooEv
+ virtual void bar(); // _ZN7ee634603barEv
+ ~ee63460(); // tgen
+ ee63460(); // tgen
+};
+//SIG(1 ee63460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63460 ::foo(){vfunc_called(this, "_ZN7ee634603fooEv");}
+void ee63460 ::bar(){vfunc_called(this, "_ZN7ee634603barEv");}
+ee63460 ::~ee63460(){ note_dtor("ee63460", this);} // tgen
+ee63460 ::ee63460(){ note_ctor("ee63460", this);} // tgen
+
+static void Test_ee63460()
+{
+ extern Class_Descriptor cd_ee63460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63460, buf);
+ ee63460 *dp, &lv = *(dp=new (buf) ee63460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee63460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee63460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(16,12), "ee63460");
+ check_base_class_offset(lv, (dd3460*), 0, "ee63460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63460.e");
+ test_class_info(&lv, &cd_ee63460);
+ dp->~ee63460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63460(Test_ee63460, "ee63460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63460C1Ev();
+extern void _ZN7ee63460D1Ev();
+Name_Map name_map_ee63460[] = {
+ NSPAIR(_ZN7ee63460C1Ev),
+ NSPAIR(_ZN7ee63460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee63460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63460[];
+extern void _ZN7ee634603fooEv();
+extern void _ZN7ee634603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634603barEv,_ZTv0_n12_N7ee634603barEv)();
+extern void ABISELECT(_ZThn16_N7ee634603barEv,_ZThn12_N7ee634603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634603fooEv,_ZTv0_n16_N7ee634603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634603fooEv,_ZThn12_N7ee634603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63460[0]),
+ (VTBL_ENTRY)&_ZN7ee634603fooEv,
+ (VTBL_ENTRY)&_ZN7ee634603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634603barEv,_ZTv0_n12_N7ee634603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634603fooEv,_ZTv0_n16_N7ee634603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee63460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee63460[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee63460[] = {
+ {&(_ZTV7ee63460[3]), 3,11},
+ {&(_tg__ZTV6dd3460__7ee63460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee63460[4]), 4,6},
+ {&(_ZTV7ee63460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63460[];
+extern VTBL_ENTRY _ZTV7ee63460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63460[];
+static VTBL_ENTRY alt_thunk_names249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn12_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634603fooEv,_ZTv0_n16_N7ee634603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634603fooEv,_ZThn12_N7ee634603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634603barEv,_ZTv0_n12_N7ee634603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634603barEv,_ZThn12_N7ee634603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63460 = { "ee63460", // class name
+ bases_ee63460, 4,
+ &(vtc_ee63460[0]), // expected_vtbl_contents
+ &(vtt_ee63460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63460),4, //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 ee73460 : virtual dd3460 {
+ int e;
+ virtual void foo(); // _ZN7ee734603fooEv
+ virtual void bar(); // _ZN7ee734603barEv
+ ~ee73460(); // tgen
+ ee73460(); // tgen
+};
+//SIG(1 ee73460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73460 ::foo(){vfunc_called(this, "_ZN7ee734603fooEv");}
+void ee73460 ::bar(){vfunc_called(this, "_ZN7ee734603barEv");}
+ee73460 ::~ee73460(){ note_dtor("ee73460", this);} // tgen
+ee73460 ::ee73460(){ note_ctor("ee73460", this);} // tgen
+
+static void Test_ee73460()
+{
+ extern Class_Descriptor cd_ee73460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73460, buf);
+ ee73460 *dp, &lv = *(dp=new (buf) ee73460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee73460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee73460");
+ check_base_class_offset(lv, (cc460*)(dd3460*), ABISELECT(32,16), "ee73460");
+ check_base_class_offset(lv, (dd3460*), ABISELECT(16,8), "ee73460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73460.e");
+ test_class_info(&lv, &cd_ee73460);
+ dp->~ee73460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73460(Test_ee73460, "ee73460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73460C1Ev();
+extern void _ZN7ee73460D1Ev();
+Name_Map name_map_ee73460[] = {
+ NSPAIR(_ZN7ee73460C1Ev),
+ NSPAIR(_ZN7ee73460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd3460;
+extern VTBL_ENTRY _ZTI6dd3460[];
+extern VTBL_ENTRY _ZTV6dd3460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3460[];
+static Base_Class bases_ee73460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd3460, 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 _ZTI7ee73460[];
+extern void _ZN7ee734603fooEv();
+extern void _ZN7ee734603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734603fooEv,_ZTv0_n16_N7ee734603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734603fooEv,_ZThn8_N7ee734603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734603barEv,_ZTv0_n12_N7ee734603barEv)();
+extern void ABISELECT(_ZThn32_N7ee734603barEv,_ZThn16_N7ee734603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734603fooEv,_ZTv0_n16_N7ee734603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734603fooEv,_ZThn16_N7ee734603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73460[0]),
+ (VTBL_ENTRY)&_ZN7ee734603fooEv,
+ (VTBL_ENTRY)&_ZN7ee734603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734603fooEv,_ZTv0_n16_N7ee734603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734603barEv,_ZTv0_n12_N7ee734603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734603fooEv,_ZTv0_n16_N7ee734603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73460[];
+extern void _ZN6dd34603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3460__7ee73460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN6dd34603fooEv,
+};
+extern void _ZN5cc4603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd3460__7ee73460[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3460[0]),
+ (VTBL_ENTRY)&_ZN5cc4603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv),
+};
+static VTT_ENTRY vtt_ee73460[] = {
+ {&(_ZTV7ee73460[4]), 4,17},
+ {&(_ZTV7ee73460[10]), 10,17},
+ {&(_ZTV7ee73460[15]), 15,17},
+ {&(_tg__ZTV6dd3460__7ee73460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd3460__7ee73460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73460[];
+extern VTBL_ENTRY _ZTV7ee73460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73460[];
+static VTBL_ENTRY alt_thunk_names250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd34603fooEv,_ZTv0_n16_N6dd34603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34603fooEv,_ZThn8_N6dd34603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734603barEv,_ZTv0_n12_N7ee734603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734603barEv,_ZThn16_N7ee734603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734603fooEv,_ZTv0_n16_N7ee734603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734603fooEv,_ZThn16_N7ee734603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734603fooEv,_ZThn8_N7ee734603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73460 = { "ee73460", // class name
+ bases_ee73460, 4,
+ &(vtc_ee73460[0]), // expected_vtbl_contents
+ &(vtt_ee73460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73460),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73460),5, //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 dd4460 : cc460 {
+ int d;
+ virtual void bar(); // _ZN6dd44603barEv
+ ~dd4460(); // tgen
+ dd4460(); // tgen
+};
+//SIG(-1 dd4460) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4460 ::bar(){vfunc_called(this, "_ZN6dd44603barEv");}
+dd4460 ::~dd4460(){ note_dtor("dd4460", this);} // tgen
+dd4460 ::dd4460(){ note_ctor("dd4460", this);} // tgen
+
+static void Test_dd4460()
+{
+ extern Class_Descriptor cd_dd4460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4460, buf);
+ dd4460 *dp, &lv = *(dp=new (buf) dd4460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(8,4), "dd4460");
+ check_base_class_offset(lv, (bb60*)(cc460*), 0, "dd4460");
+ check_base_class_offset(lv, (cc460*), 0, "dd4460");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4460.d");
+ test_class_info(&lv, &cd_dd4460);
+ dp->~dd4460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4460(Test_dd4460, "dd4460", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4460C1Ev();
+extern void _ZN6dd4460D1Ev();
+Name_Map name_map_dd4460[] = {
+ NSPAIR(_ZN6dd4460C1Ev),
+ NSPAIR(_ZN6dd4460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd4460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4460[];
+extern void _ZN6dd44603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd4460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4460[0]),
+ (VTBL_ENTRY)&_ZN6dd44603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+Class_Descriptor cd_dd4460 = { "dd4460", // class name
+ bases_dd4460, 3,
+ &(vtc_dd4460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4460),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 ee04460 : dd4460 {
+ int e;
+ ~ee04460(); // tgen
+ ee04460(); // tgen
+};
+//SIG(1 ee04460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04460 ::~ee04460(){ note_dtor("ee04460", this);} // tgen
+ee04460 ::ee04460(){ note_ctor("ee04460", this);} // tgen
+
+static void Test_ee04460()
+{
+ extern Class_Descriptor cd_ee04460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04460, buf);
+ ee04460 *dp, &lv = *(dp=new (buf) ee04460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(8,4), "ee04460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), 0, "ee04460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), 0, "ee04460");
+ check_base_class_offset(lv, (dd4460*), 0, "ee04460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04460.e");
+ test_class_info(&lv, &cd_ee04460);
+ dp->~ee04460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04460(Test_ee04460, "ee04460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04460C1Ev();
+extern void _ZN7ee04460D1Ev();
+Name_Map name_map_ee04460[] = {
+ NSPAIR(_ZN7ee04460C1Ev),
+ NSPAIR(_ZN7ee04460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee04460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, 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 _ZTI7ee04460[];
+extern void _ZN6dd44603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee04460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04460[0]),
+ (VTBL_ENTRY)&_ZN6dd44603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee04460[];
+extern VTBL_ENTRY _ZTV7ee04460[];
+Class_Descriptor cd_ee04460 = { "ee04460", // class name
+ bases_ee04460, 4,
+ &(vtc_ee04460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04460),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 ee14460 : virtual dd4460 {
+ int e;
+ ~ee14460(); // tgen
+ ee14460(); // tgen
+};
+//SIG(1 ee14460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14460 ::~ee14460(){ note_dtor("ee14460", this);} // tgen
+ee14460 ::ee14460(){ note_ctor("ee14460", this);} // tgen
+
+static void Test_ee14460()
+{
+ extern Class_Descriptor cd_ee14460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14460, buf);
+ ee14460 *dp, &lv = *(dp=new (buf) ee14460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(24,12), "ee14460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), ABISELECT(16,8), "ee14460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), ABISELECT(16,8), "ee14460");
+ check_base_class_offset(lv, (dd4460*), ABISELECT(16,8), "ee14460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14460.e");
+ test_class_info(&lv, &cd_ee14460);
+ dp->~ee14460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14460(Test_ee14460, "ee14460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14460C1Ev();
+extern void _ZN7ee14460D1Ev();
+Name_Map name_map_ee14460[] = {
+ NSPAIR(_ZN7ee14460C1Ev),
+ NSPAIR(_ZN7ee14460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee14460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, 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 _ZTI7ee14460[];
+extern void _ZN6dd44603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee14460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14460[0]),
+ (VTBL_ENTRY)&_ZN6dd44603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14460[];
+static VTT_ENTRY vtt_ee14460[] = {
+ {&(_ZTV7ee14460[3]), 3,9},
+ {&(_ZTV7ee14460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14460[];
+extern VTBL_ENTRY _ZTV7ee14460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14460[];
+Class_Descriptor cd_ee14460 = { "ee14460", // class name
+ bases_ee14460, 4,
+ &(vtc_ee14460[0]), // expected_vtbl_contents
+ &(vtt_ee14460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14460),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 ee24460 : dd4460 {
+ int e;
+ virtual void foo(); // _ZN7ee244603fooEv
+ ~ee24460(); // tgen
+ ee24460(); // tgen
+};
+//SIG(1 ee24460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24460 ::foo(){vfunc_called(this, "_ZN7ee244603fooEv");}
+ee24460 ::~ee24460(){ note_dtor("ee24460", this);} // tgen
+ee24460 ::ee24460(){ note_ctor("ee24460", this);} // tgen
+
+static void Test_ee24460()
+{
+ extern Class_Descriptor cd_ee24460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24460, buf);
+ ee24460 *dp, &lv = *(dp=new (buf) ee24460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(8,4), "ee24460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), 0, "ee24460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), 0, "ee24460");
+ check_base_class_offset(lv, (dd4460*), 0, "ee24460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24460.e");
+ test_class_info(&lv, &cd_ee24460);
+ dp->~ee24460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24460(Test_ee24460, "ee24460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24460C1Ev();
+extern void _ZN7ee24460D1Ev();
+Name_Map name_map_ee24460[] = {
+ NSPAIR(_ZN7ee24460C1Ev),
+ NSPAIR(_ZN7ee24460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee24460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24460[];
+extern void _ZN6dd44603barEv();
+extern void _ZN7ee244603fooEv();
+static VTBL_ENTRY vtc_ee24460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24460[0]),
+ (VTBL_ENTRY)&_ZN6dd44603barEv,
+ (VTBL_ENTRY)&_ZN7ee244603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24460[];
+extern VTBL_ENTRY _ZTV7ee24460[];
+Class_Descriptor cd_ee24460 = { "ee24460", // class name
+ bases_ee24460, 4,
+ &(vtc_ee24460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24460),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 ee34460 : virtual dd4460 {
+ int e;
+ virtual void foo(); // _ZN7ee344603fooEv
+ ~ee34460(); // tgen
+ ee34460(); // tgen
+};
+//SIG(1 ee34460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34460 ::foo(){vfunc_called(this, "_ZN7ee344603fooEv");}
+ee34460 ::~ee34460(){ note_dtor("ee34460", this);} // tgen
+ee34460 ::ee34460(){ note_ctor("ee34460", this);} // tgen
+
+static void Test_ee34460()
+{
+ extern Class_Descriptor cd_ee34460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34460, buf);
+ ee34460 *dp, &lv = *(dp=new (buf) ee34460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(24,12), "ee34460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), ABISELECT(16,8), "ee34460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), ABISELECT(16,8), "ee34460");
+ check_base_class_offset(lv, (dd4460*), ABISELECT(16,8), "ee34460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34460.e");
+ test_class_info(&lv, &cd_ee34460);
+ dp->~ee34460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34460(Test_ee34460, "ee34460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34460C1Ev();
+extern void _ZN7ee34460D1Ev();
+Name_Map name_map_ee34460[] = {
+ NSPAIR(_ZN7ee34460C1Ev),
+ NSPAIR(_ZN7ee34460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee34460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, ABISELECT(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 _ZTI7ee34460[];
+extern void _ZN7ee344603fooEv();
+extern void _ZN6dd44603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee344603fooEv,_ZTv0_n16_N7ee344603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344603fooEv,_ZThn8_N7ee344603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34460[0]),
+ (VTBL_ENTRY)&_ZN7ee344603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34460[0]),
+ (VTBL_ENTRY)&_ZN6dd44603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee344603fooEv,_ZTv0_n16_N7ee344603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34460[];
+static VTT_ENTRY vtt_ee34460[] = {
+ {&(_ZTV7ee34460[3]), 3,10},
+ {&(_ZTV7ee34460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34460[];
+extern VTBL_ENTRY _ZTV7ee34460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34460[];
+static VTBL_ENTRY alt_thunk_names251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee344603fooEv,_ZTv0_n16_N7ee344603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344603fooEv,_ZThn8_N7ee344603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34460 = { "ee34460", // class name
+ bases_ee34460, 4,
+ &(vtc_ee34460[0]), // expected_vtbl_contents
+ &(vtt_ee34460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34460),2, //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 ee44460 : dd4460 {
+ int e;
+ virtual void bar(); // _ZN7ee444603barEv
+ ~ee44460(); // tgen
+ ee44460(); // tgen
+};
+//SIG(1 ee44460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44460 ::bar(){vfunc_called(this, "_ZN7ee444603barEv");}
+ee44460 ::~ee44460(){ note_dtor("ee44460", this);} // tgen
+ee44460 ::ee44460(){ note_ctor("ee44460", this);} // tgen
+
+static void Test_ee44460()
+{
+ extern Class_Descriptor cd_ee44460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44460, buf);
+ ee44460 *dp, &lv = *(dp=new (buf) ee44460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(8,4), "ee44460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), 0, "ee44460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), 0, "ee44460");
+ check_base_class_offset(lv, (dd4460*), 0, "ee44460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44460.e");
+ test_class_info(&lv, &cd_ee44460);
+ dp->~ee44460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44460(Test_ee44460, "ee44460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44460C1Ev();
+extern void _ZN7ee44460D1Ev();
+Name_Map name_map_ee44460[] = {
+ NSPAIR(_ZN7ee44460C1Ev),
+ NSPAIR(_ZN7ee44460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee44460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44460[];
+extern void _ZN7ee444603barEv();
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee44460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44460[0]),
+ (VTBL_ENTRY)&_ZN7ee444603barEv,
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee44460[];
+extern VTBL_ENTRY _ZTV7ee44460[];
+Class_Descriptor cd_ee44460 = { "ee44460", // class name
+ bases_ee44460, 4,
+ &(vtc_ee44460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44460),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 ee54460 : virtual dd4460 {
+ int e;
+ virtual void bar(); // _ZN7ee544603barEv
+ ~ee54460(); // tgen
+ ee54460(); // tgen
+};
+//SIG(1 ee54460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54460 ::bar(){vfunc_called(this, "_ZN7ee544603barEv");}
+ee54460 ::~ee54460(){ note_dtor("ee54460", this);} // tgen
+ee54460 ::ee54460(){ note_ctor("ee54460", this);} // tgen
+
+static void Test_ee54460()
+{
+ extern Class_Descriptor cd_ee54460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54460, buf);
+ ee54460 *dp, &lv = *(dp=new (buf) ee54460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(24,12), "ee54460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), ABISELECT(16,8), "ee54460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), ABISELECT(16,8), "ee54460");
+ check_base_class_offset(lv, (dd4460*), ABISELECT(16,8), "ee54460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54460.e");
+ test_class_info(&lv, &cd_ee54460);
+ dp->~ee54460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54460(Test_ee54460, "ee54460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54460C1Ev();
+extern void _ZN7ee54460D1Ev();
+Name_Map name_map_ee54460[] = {
+ NSPAIR(_ZN7ee54460C1Ev),
+ NSPAIR(_ZN7ee54460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee54460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, ABISELECT(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 _ZTI7ee54460[];
+extern void _ZN7ee544603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee544603barEv,_ZTv0_n12_N7ee544603barEv)();
+extern void ABISELECT(_ZThn16_N7ee544603barEv,_ZThn8_N7ee544603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee54460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54460[0]),
+ (VTBL_ENTRY)&_ZN7ee544603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee544603barEv,_ZTv0_n12_N7ee544603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54460[];
+static VTT_ENTRY vtt_ee54460[] = {
+ {&(_ZTV7ee54460[3]), 3,10},
+ {&(_ZTV7ee54460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54460[];
+extern VTBL_ENTRY _ZTV7ee54460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54460[];
+static VTBL_ENTRY alt_thunk_names252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee544603barEv,_ZTv0_n12_N7ee544603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544603barEv,_ZThn8_N7ee544603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54460 = { "ee54460", // class name
+ bases_ee54460, 4,
+ &(vtc_ee54460[0]), // expected_vtbl_contents
+ &(vtt_ee54460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54460),2, //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 ee64460 : dd4460 {
+ int e;
+ virtual void foo(); // _ZN7ee644603fooEv
+ virtual void bar(); // _ZN7ee644603barEv
+ ~ee64460(); // tgen
+ ee64460(); // tgen
+};
+//SIG(1 ee64460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64460 ::foo(){vfunc_called(this, "_ZN7ee644603fooEv");}
+void ee64460 ::bar(){vfunc_called(this, "_ZN7ee644603barEv");}
+ee64460 ::~ee64460(){ note_dtor("ee64460", this);} // tgen
+ee64460 ::ee64460(){ note_ctor("ee64460", this);} // tgen
+
+static void Test_ee64460()
+{
+ extern Class_Descriptor cd_ee64460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64460, buf);
+ ee64460 *dp, &lv = *(dp=new (buf) ee64460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(8,4), "ee64460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), 0, "ee64460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), 0, "ee64460");
+ check_base_class_offset(lv, (dd4460*), 0, "ee64460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64460.e");
+ test_class_info(&lv, &cd_ee64460);
+ dp->~ee64460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64460(Test_ee64460, "ee64460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64460C1Ev();
+extern void _ZN7ee64460D1Ev();
+Name_Map name_map_ee64460[] = {
+ NSPAIR(_ZN7ee64460C1Ev),
+ NSPAIR(_ZN7ee64460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee64460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64460[];
+extern void _ZN7ee644603barEv();
+extern void _ZN7ee644603fooEv();
+static VTBL_ENTRY vtc_ee64460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64460[0]),
+ (VTBL_ENTRY)&_ZN7ee644603barEv,
+ (VTBL_ENTRY)&_ZN7ee644603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64460[];
+extern VTBL_ENTRY _ZTV7ee64460[];
+Class_Descriptor cd_ee64460 = { "ee64460", // class name
+ bases_ee64460, 4,
+ &(vtc_ee64460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64460),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 ee74460 : virtual dd4460 {
+ int e;
+ virtual void foo(); // _ZN7ee744603fooEv
+ virtual void bar(); // _ZN7ee744603barEv
+ ~ee74460(); // tgen
+ ee74460(); // tgen
+};
+//SIG(1 ee74460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74460 ::foo(){vfunc_called(this, "_ZN7ee744603fooEv");}
+void ee74460 ::bar(){vfunc_called(this, "_ZN7ee744603barEv");}
+ee74460 ::~ee74460(){ note_dtor("ee74460", this);} // tgen
+ee74460 ::ee74460(){ note_ctor("ee74460", this);} // tgen
+
+static void Test_ee74460()
+{
+ extern Class_Descriptor cd_ee74460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74460, buf);
+ ee74460 *dp, &lv = *(dp=new (buf) ee74460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd4460*), ABISELECT(24,12), "ee74460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd4460*), ABISELECT(16,8), "ee74460");
+ check_base_class_offset(lv, (cc460*)(dd4460*), ABISELECT(16,8), "ee74460");
+ check_base_class_offset(lv, (dd4460*), ABISELECT(16,8), "ee74460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74460.e");
+ test_class_info(&lv, &cd_ee74460);
+ dp->~ee74460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74460(Test_ee74460, "ee74460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74460C1Ev();
+extern void _ZN7ee74460D1Ev();
+Name_Map name_map_ee74460[] = {
+ NSPAIR(_ZN7ee74460C1Ev),
+ NSPAIR(_ZN7ee74460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd4460;
+extern VTBL_ENTRY _ZTI6dd4460[];
+extern VTBL_ENTRY _ZTV6dd4460[];
+static Base_Class bases_ee74460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4460, ABISELECT(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 _ZTI7ee74460[];
+extern void _ZN7ee744603fooEv();
+extern void _ZN7ee744603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744603barEv,_ZTv0_n12_N7ee744603barEv)();
+extern void ABISELECT(_ZThn16_N7ee744603barEv,_ZThn8_N7ee744603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744603fooEv,_ZTv0_n16_N7ee744603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744603fooEv,_ZThn8_N7ee744603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74460[0]),
+ (VTBL_ENTRY)&_ZN7ee744603fooEv,
+ (VTBL_ENTRY)&_ZN7ee744603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744603barEv,_ZTv0_n12_N7ee744603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744603fooEv,_ZTv0_n16_N7ee744603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74460[];
+static VTT_ENTRY vtt_ee74460[] = {
+ {&(_ZTV7ee74460[3]), 3,11},
+ {&(_ZTV7ee74460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74460[];
+extern VTBL_ENTRY _ZTV7ee74460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74460[];
+static VTBL_ENTRY alt_thunk_names253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744603fooEv,_ZTv0_n16_N7ee744603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744603fooEv,_ZThn8_N7ee744603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744603barEv,_ZTv0_n12_N7ee744603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744603barEv,_ZThn8_N7ee744603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74460 = { "ee74460", // class name
+ bases_ee74460, 4,
+ &(vtc_ee74460[0]), // expected_vtbl_contents
+ &(vtt_ee74460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74460),2, //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 dd5460 : virtual cc460 {
+ int d;
+ virtual void bar(); // _ZN6dd54603barEv
+ ~dd5460(); // tgen
+ dd5460(); // tgen
+};
+//SIG(-1 dd5460) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5460 ::bar(){vfunc_called(this, "_ZN6dd54603barEv");}
+dd5460 ::~dd5460(){ note_dtor("dd5460", this);} // tgen
+dd5460 ::dd5460(){ note_ctor("dd5460", this);} // tgen
+
+static void Test_dd5460()
+{
+ extern Class_Descriptor cd_dd5460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5460, buf);
+ dd5460 *dp, &lv = *(dp=new (buf) dd5460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,12), "dd5460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,8), "dd5460");
+ check_base_class_offset(lv, (cc460*), ABISELECT(16,8), "dd5460");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5460.d");
+ test_class_info(&lv, &cd_dd5460);
+ dp->~dd5460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5460(Test_dd5460, "dd5460", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5460C1Ev();
+extern void _ZN6dd5460D1Ev();
+Name_Map name_map_dd5460[] = {
+ NSPAIR(_ZN6dd5460C1Ev),
+ NSPAIR(_ZN6dd5460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd5460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(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 _ZTI6dd5460[];
+extern void _ZN6dd54603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd5460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5460[];
+static VTT_ENTRY vtt_dd5460[] = {
+ {&(_ZTV6dd5460[3]), 3,10},
+ {&(_ZTV6dd5460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static VTBL_ENTRY alt_thunk_names254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5460 = { "dd5460", // class name
+ bases_dd5460, 3,
+ &(vtc_dd5460[0]), // expected_vtbl_contents
+ &(vtt_dd5460[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5460),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05460 : dd5460 {
+ int e;
+ ~ee05460(); // tgen
+ ee05460(); // tgen
+};
+//SIG(1 ee05460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05460 ::~ee05460(){ note_dtor("ee05460", this);} // tgen
+ee05460 ::ee05460(){ note_ctor("ee05460", this);} // tgen
+
+static void Test_ee05460()
+{
+ extern Class_Descriptor cd_ee05460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05460, buf);
+ ee05460 *dp, &lv = *(dp=new (buf) ee05460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee05460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee05460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(16,12), "ee05460");
+ check_base_class_offset(lv, (dd5460*), 0, "ee05460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05460.e");
+ test_class_info(&lv, &cd_ee05460);
+ dp->~ee05460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05460(Test_ee05460, "ee05460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05460C1Ev();
+extern void _ZN7ee05460D1Ev();
+Name_Map name_map_ee05460[] = {
+ NSPAIR(_ZN7ee05460C1Ev),
+ NSPAIR(_ZN7ee05460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee05460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05460[];
+extern void _ZN6dd54603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee05460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee05460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee05460[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee05460[] = {
+ {&(_ZTV7ee05460[3]), 3,10},
+ {&(_tg__ZTV6dd5460__7ee05460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee05460[4]), 4,6},
+ {&(_ZTV7ee05460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05460[];
+extern VTBL_ENTRY _ZTV7ee05460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05460[];
+static VTBL_ENTRY alt_thunk_names255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05460 = { "ee05460", // class name
+ bases_ee05460, 4,
+ &(vtc_ee05460[0]), // expected_vtbl_contents
+ &(vtt_ee05460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05460),4, //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 ee15460 : virtual dd5460 {
+ int e;
+ ~ee15460(); // tgen
+ ee15460(); // tgen
+};
+//SIG(1 ee15460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15460 ::~ee15460(){ note_dtor("ee15460", this);} // tgen
+ee15460 ::ee15460(){ note_ctor("ee15460", this);} // tgen
+
+static void Test_ee15460()
+{
+ extern Class_Descriptor cd_ee15460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15460, buf);
+ ee15460 *dp, &lv = *(dp=new (buf) ee15460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee15460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee15460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(32,16), "ee15460");
+ check_base_class_offset(lv, (dd5460*), ABISELECT(16,8), "ee15460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15460.e");
+ test_class_info(&lv, &cd_ee15460);
+ dp->~ee15460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15460(Test_ee15460, "ee15460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15460C1Ev();
+extern void _ZN7ee15460D1Ev();
+Name_Map name_map_ee15460[] = {
+ NSPAIR(_ZN7ee15460C1Ev),
+ NSPAIR(_ZN7ee15460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee15460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, ABISELECT(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 _ZTI7ee15460[];
+extern void _ZN6dd54603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee15460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15460[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee15460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee15460[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee15460[] = {
+ {&(_ZTV7ee15460[4]), 4,15},
+ {&(_ZTV7ee15460[8]), 8,15},
+ {&(_ZTV7ee15460[13]), 13,15},
+ {&(_tg__ZTV6dd5460__7ee15460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee15460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15460[];
+extern VTBL_ENTRY _ZTV7ee15460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15460[];
+static VTBL_ENTRY alt_thunk_names256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15460 = { "ee15460", // class name
+ bases_ee15460, 4,
+ &(vtc_ee15460[0]), // expected_vtbl_contents
+ &(vtt_ee15460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15460),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15460),5, //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 ee25460 : dd5460 {
+ int e;
+ virtual void foo(); // _ZN7ee254603fooEv
+ ~ee25460(); // tgen
+ ee25460(); // tgen
+};
+//SIG(1 ee25460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25460 ::foo(){vfunc_called(this, "_ZN7ee254603fooEv");}
+ee25460 ::~ee25460(){ note_dtor("ee25460", this);} // tgen
+ee25460 ::ee25460(){ note_ctor("ee25460", this);} // tgen
+
+static void Test_ee25460()
+{
+ extern Class_Descriptor cd_ee25460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25460, buf);
+ ee25460 *dp, &lv = *(dp=new (buf) ee25460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee25460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee25460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(16,12), "ee25460");
+ check_base_class_offset(lv, (dd5460*), 0, "ee25460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25460.e");
+ test_class_info(&lv, &cd_ee25460);
+ dp->~ee25460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25460(Test_ee25460, "ee25460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25460C1Ev();
+extern void _ZN7ee25460D1Ev();
+Name_Map name_map_ee25460[] = {
+ NSPAIR(_ZN7ee25460C1Ev),
+ NSPAIR(_ZN7ee25460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee25460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25460[];
+extern void _ZN6dd54603barEv();
+extern void _ZN7ee254603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee254603fooEv,_ZTv0_n16_N7ee254603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254603fooEv,_ZThn12_N7ee254603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+ (VTBL_ENTRY)&_ZN7ee254603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee254603fooEv,_ZTv0_n16_N7ee254603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee25460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee25460[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee25460[] = {
+ {&(_ZTV7ee25460[3]), 3,11},
+ {&(_tg__ZTV6dd5460__7ee25460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee25460[4]), 4,6},
+ {&(_ZTV7ee25460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25460[];
+extern VTBL_ENTRY _ZTV7ee25460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25460[];
+static VTBL_ENTRY alt_thunk_names257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee254603fooEv,_ZTv0_n16_N7ee254603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254603fooEv,_ZThn12_N7ee254603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25460 = { "ee25460", // class name
+ bases_ee25460, 4,
+ &(vtc_ee25460[0]), // expected_vtbl_contents
+ &(vtt_ee25460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25460),4, //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 ee35460 : virtual dd5460 {
+ int e;
+ virtual void foo(); // _ZN7ee354603fooEv
+ ~ee35460(); // tgen
+ ee35460(); // tgen
+};
+//SIG(1 ee35460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35460 ::foo(){vfunc_called(this, "_ZN7ee354603fooEv");}
+ee35460 ::~ee35460(){ note_dtor("ee35460", this);} // tgen
+ee35460 ::ee35460(){ note_ctor("ee35460", this);} // tgen
+
+static void Test_ee35460()
+{
+ extern Class_Descriptor cd_ee35460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35460, buf);
+ ee35460 *dp, &lv = *(dp=new (buf) ee35460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee35460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee35460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(32,16), "ee35460");
+ check_base_class_offset(lv, (dd5460*), ABISELECT(16,8), "ee35460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35460.e");
+ test_class_info(&lv, &cd_ee35460);
+ dp->~ee35460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35460(Test_ee35460, "ee35460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35460C1Ev();
+extern void _ZN7ee35460D1Ev();
+Name_Map name_map_ee35460[] = {
+ NSPAIR(_ZN7ee35460C1Ev),
+ NSPAIR(_ZN7ee35460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee35460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, ABISELECT(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 _ZTI7ee35460[];
+extern void _ZN7ee354603fooEv();
+extern void _ZN6dd54603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee354603fooEv,_ZTv0_n16_N7ee354603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354603fooEv,_ZThn16_N7ee354603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35460[0]),
+ (VTBL_ENTRY)&_ZN7ee354603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee354603fooEv,_ZTv0_n16_N7ee354603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee35460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee35460[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee35460[] = {
+ {&(_ZTV7ee35460[4]), 4,16},
+ {&(_ZTV7ee35460[9]), 9,16},
+ {&(_ZTV7ee35460[14]), 14,16},
+ {&(_tg__ZTV6dd5460__7ee35460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee35460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35460[];
+extern VTBL_ENTRY _ZTV7ee35460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35460[];
+static VTBL_ENTRY alt_thunk_names258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee354603fooEv,_ZTv0_n16_N7ee354603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354603fooEv,_ZThn16_N7ee354603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35460 = { "ee35460", // class name
+ bases_ee35460, 4,
+ &(vtc_ee35460[0]), // expected_vtbl_contents
+ &(vtt_ee35460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35460),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35460),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45460 : dd5460 {
+ int e;
+ virtual void bar(); // _ZN7ee454603barEv
+ ~ee45460(); // tgen
+ ee45460(); // tgen
+};
+//SIG(1 ee45460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45460 ::bar(){vfunc_called(this, "_ZN7ee454603barEv");}
+ee45460 ::~ee45460(){ note_dtor("ee45460", this);} // tgen
+ee45460 ::ee45460(){ note_ctor("ee45460", this);} // tgen
+
+static void Test_ee45460()
+{
+ extern Class_Descriptor cd_ee45460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45460, buf);
+ ee45460 *dp, &lv = *(dp=new (buf) ee45460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee45460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee45460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(16,12), "ee45460");
+ check_base_class_offset(lv, (dd5460*), 0, "ee45460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45460.e");
+ test_class_info(&lv, &cd_ee45460);
+ dp->~ee45460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45460(Test_ee45460, "ee45460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45460C1Ev();
+extern void _ZN7ee45460D1Ev();
+Name_Map name_map_ee45460[] = {
+ NSPAIR(_ZN7ee45460C1Ev),
+ NSPAIR(_ZN7ee45460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee45460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45460[];
+extern void _ZN7ee454603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee454603barEv,_ZTv0_n12_N7ee454603barEv)();
+extern void ABISELECT(_ZThn16_N7ee454603barEv,_ZThn12_N7ee454603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee45460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45460[0]),
+ (VTBL_ENTRY)&_ZN7ee454603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee454603barEv,_ZTv0_n12_N7ee454603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee45460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee45460[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee45460[] = {
+ {&(_ZTV7ee45460[3]), 3,10},
+ {&(_tg__ZTV6dd5460__7ee45460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee45460[4]), 4,6},
+ {&(_ZTV7ee45460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45460[];
+extern VTBL_ENTRY _ZTV7ee45460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45460[];
+static VTBL_ENTRY alt_thunk_names259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee454603barEv,_ZTv0_n12_N7ee454603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454603barEv,_ZThn12_N7ee454603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45460 = { "ee45460", // class name
+ bases_ee45460, 4,
+ &(vtc_ee45460[0]), // expected_vtbl_contents
+ &(vtt_ee45460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45460),4, //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 ee55460 : virtual dd5460 {
+ int e;
+ virtual void bar(); // _ZN7ee554603barEv
+ ~ee55460(); // tgen
+ ee55460(); // tgen
+};
+//SIG(1 ee55460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55460 ::bar(){vfunc_called(this, "_ZN7ee554603barEv");}
+ee55460 ::~ee55460(){ note_dtor("ee55460", this);} // tgen
+ee55460 ::ee55460(){ note_ctor("ee55460", this);} // tgen
+
+static void Test_ee55460()
+{
+ extern Class_Descriptor cd_ee55460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55460, buf);
+ ee55460 *dp, &lv = *(dp=new (buf) ee55460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee55460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee55460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(32,16), "ee55460");
+ check_base_class_offset(lv, (dd5460*), ABISELECT(16,8), "ee55460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55460.e");
+ test_class_info(&lv, &cd_ee55460);
+ dp->~ee55460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55460(Test_ee55460, "ee55460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55460C1Ev();
+extern void _ZN7ee55460D1Ev();
+Name_Map name_map_ee55460[] = {
+ NSPAIR(_ZN7ee55460C1Ev),
+ NSPAIR(_ZN7ee55460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee55460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, ABISELECT(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 _ZTI7ee55460[];
+extern void _ZN7ee554603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554603barEv,_ZTv0_n16_N7ee554603barEv)();
+extern void ABISELECT(_ZThn16_N7ee554603barEv,_ZThn8_N7ee554603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee554603barEv,_ZTv0_n12_N7ee554603barEv)();
+extern void ABISELECT(_ZThn32_N7ee554603barEv,_ZThn16_N7ee554603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee55460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55460[0]),
+ (VTBL_ENTRY)&_ZN7ee554603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554603barEv,_ZTv0_n16_N7ee554603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee554603barEv,_ZTv0_n12_N7ee554603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee55460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee55460[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee55460[] = {
+ {&(_ZTV7ee55460[4]), 4,16},
+ {&(_ZTV7ee55460[9]), 9,16},
+ {&(_ZTV7ee55460[14]), 14,16},
+ {&(_tg__ZTV6dd5460__7ee55460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee55460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55460[];
+extern VTBL_ENTRY _ZTV7ee55460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55460[];
+static VTBL_ENTRY alt_thunk_names260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee554603barEv,_ZTv0_n12_N7ee554603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554603barEv,_ZThn16_N7ee554603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554603barEv,_ZTv0_n16_N7ee554603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554603barEv,_ZThn8_N7ee554603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55460 = { "ee55460", // class name
+ bases_ee55460, 4,
+ &(vtc_ee55460[0]), // expected_vtbl_contents
+ &(vtt_ee55460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55460),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55460),5, //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 ee65460 : dd5460 {
+ int e;
+ virtual void foo(); // _ZN7ee654603fooEv
+ virtual void bar(); // _ZN7ee654603barEv
+ ~ee65460(); // tgen
+ ee65460(); // tgen
+};
+//SIG(1 ee65460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65460 ::foo(){vfunc_called(this, "_ZN7ee654603fooEv");}
+void ee65460 ::bar(){vfunc_called(this, "_ZN7ee654603barEv");}
+ee65460 ::~ee65460(){ note_dtor("ee65460", this);} // tgen
+ee65460 ::ee65460(){ note_ctor("ee65460", this);} // tgen
+
+static void Test_ee65460()
+{
+ extern Class_Descriptor cd_ee65460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65460, buf);
+ ee65460 *dp, &lv = *(dp=new (buf) ee65460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee65460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee65460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(16,12), "ee65460");
+ check_base_class_offset(lv, (dd5460*), 0, "ee65460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65460.e");
+ test_class_info(&lv, &cd_ee65460);
+ dp->~ee65460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65460(Test_ee65460, "ee65460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65460C1Ev();
+extern void _ZN7ee65460D1Ev();
+Name_Map name_map_ee65460[] = {
+ NSPAIR(_ZN7ee65460C1Ev),
+ NSPAIR(_ZN7ee65460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee65460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65460[];
+extern void _ZN7ee654603barEv();
+extern void _ZN7ee654603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654603barEv,_ZTv0_n12_N7ee654603barEv)();
+extern void ABISELECT(_ZThn16_N7ee654603barEv,_ZThn12_N7ee654603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654603fooEv,_ZTv0_n16_N7ee654603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654603fooEv,_ZThn12_N7ee654603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65460[0]),
+ (VTBL_ENTRY)&_ZN7ee654603barEv,
+ (VTBL_ENTRY)&_ZN7ee654603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654603barEv,_ZTv0_n12_N7ee654603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654603fooEv,_ZTv0_n16_N7ee654603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee65460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee65460[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee65460[] = {
+ {&(_ZTV7ee65460[3]), 3,11},
+ {&(_tg__ZTV6dd5460__7ee65460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee65460[4]), 4,6},
+ {&(_ZTV7ee65460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65460[];
+extern VTBL_ENTRY _ZTV7ee65460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65460[];
+static VTBL_ENTRY alt_thunk_names261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn12_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654603fooEv,_ZTv0_n16_N7ee654603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654603fooEv,_ZThn12_N7ee654603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654603barEv,_ZTv0_n12_N7ee654603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654603barEv,_ZThn12_N7ee654603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65460 = { "ee65460", // class name
+ bases_ee65460, 4,
+ &(vtc_ee65460[0]), // expected_vtbl_contents
+ &(vtt_ee65460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65460),4, //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 ee75460 : virtual dd5460 {
+ int e;
+ virtual void foo(); // _ZN7ee754603fooEv
+ virtual void bar(); // _ZN7ee754603barEv
+ ~ee75460(); // tgen
+ ee75460(); // tgen
+};
+//SIG(1 ee75460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75460 ::foo(){vfunc_called(this, "_ZN7ee754603fooEv");}
+void ee75460 ::bar(){vfunc_called(this, "_ZN7ee754603barEv");}
+ee75460 ::~ee75460(){ note_dtor("ee75460", this);} // tgen
+ee75460 ::ee75460(){ note_ctor("ee75460", this);} // tgen
+
+static void Test_ee75460()
+{
+ extern Class_Descriptor cd_ee75460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75460, buf);
+ ee75460 *dp, &lv = *(dp=new (buf) ee75460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee75460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee75460");
+ check_base_class_offset(lv, (cc460*)(dd5460*), ABISELECT(32,16), "ee75460");
+ check_base_class_offset(lv, (dd5460*), ABISELECT(16,8), "ee75460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75460.e");
+ test_class_info(&lv, &cd_ee75460);
+ dp->~ee75460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75460(Test_ee75460, "ee75460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75460C1Ev();
+extern void _ZN7ee75460D1Ev();
+Name_Map name_map_ee75460[] = {
+ NSPAIR(_ZN7ee75460C1Ev),
+ NSPAIR(_ZN7ee75460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd5460;
+extern VTBL_ENTRY _ZTI6dd5460[];
+extern VTBL_ENTRY _ZTV6dd5460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5460[];
+static Base_Class bases_ee75460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd5460, 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 _ZTI7ee75460[];
+extern void _ZN7ee754603fooEv();
+extern void _ZN7ee754603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754603barEv,_ZTv0_n16_N7ee754603barEv)();
+extern void ABISELECT(_ZThn16_N7ee754603barEv,_ZThn8_N7ee754603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754603barEv,_ZTv0_n12_N7ee754603barEv)();
+extern void ABISELECT(_ZThn32_N7ee754603barEv,_ZThn16_N7ee754603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754603fooEv,_ZTv0_n16_N7ee754603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754603fooEv,_ZThn16_N7ee754603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75460[0]),
+ (VTBL_ENTRY)&_ZN7ee754603fooEv,
+ (VTBL_ENTRY)&_ZN7ee754603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754603barEv,_ZTv0_n16_N7ee754603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754603barEv,_ZTv0_n12_N7ee754603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754603fooEv,_ZTv0_n16_N7ee754603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75460[];
+extern void _ZN6dd54603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5460__7ee75460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&_ZN6dd54603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv)();
+extern void ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc460__6dd5460__7ee75460[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee75460[] = {
+ {&(_ZTV7ee75460[4]), 4,17},
+ {&(_ZTV7ee75460[10]), 10,17},
+ {&(_ZTV7ee75460[15]), 15,17},
+ {&(_tg__ZTV6dd5460__7ee75460[3]), 3,4},
+ {&(_tg__ZTV5cc460__6dd5460__7ee75460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75460[];
+extern VTBL_ENTRY _ZTV7ee75460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75460[];
+static VTBL_ENTRY alt_thunk_names262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54603barEv,_ZTv0_n12_N6dd54603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54603barEv,_ZThn8_N6dd54603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754603fooEv,_ZTv0_n16_N7ee754603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754603fooEv,_ZThn16_N7ee754603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754603barEv,_ZTv0_n12_N7ee754603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754603barEv,_ZThn16_N7ee754603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754603barEv,_ZTv0_n16_N7ee754603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754603barEv,_ZThn8_N7ee754603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75460 = { "ee75460", // class name
+ bases_ee75460, 4,
+ &(vtc_ee75460[0]), // expected_vtbl_contents
+ &(vtt_ee75460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75460),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75460),5, //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 dd6460 : cc460 {
+ int d;
+ virtual void bar(); // _ZN6dd64603barEv
+ virtual void foo(); // _ZN6dd64603fooEv
+ ~dd6460(); // tgen
+ dd6460(); // tgen
+};
+//SIG(-1 dd6460) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6460 ::bar(){vfunc_called(this, "_ZN6dd64603barEv");}
+void dd6460 ::foo(){vfunc_called(this, "_ZN6dd64603fooEv");}
+dd6460 ::~dd6460(){ note_dtor("dd6460", this);} // tgen
+dd6460 ::dd6460(){ note_ctor("dd6460", this);} // tgen
+
+static void Test_dd6460()
+{
+ extern Class_Descriptor cd_dd6460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6460, buf);
+ dd6460 *dp, &lv = *(dp=new (buf) dd6460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(8,4), "dd6460");
+ check_base_class_offset(lv, (bb60*)(cc460*), 0, "dd6460");
+ check_base_class_offset(lv, (cc460*), 0, "dd6460");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6460.d");
+ test_class_info(&lv, &cd_dd6460);
+ dp->~dd6460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6460(Test_dd6460, "dd6460", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6460C1Ev();
+extern void _ZN6dd6460D1Ev();
+Name_Map name_map_dd6460[] = {
+ NSPAIR(_ZN6dd6460C1Ev),
+ NSPAIR(_ZN6dd6460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd6460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6460[];
+extern void _ZN6dd64603barEv();
+extern void _ZN6dd64603fooEv();
+static VTBL_ENTRY vtc_dd6460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6460[0]),
+ (VTBL_ENTRY)&_ZN6dd64603barEv,
+ (VTBL_ENTRY)&_ZN6dd64603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+Class_Descriptor cd_dd6460 = { "dd6460", // class name
+ bases_dd6460, 3,
+ &(vtc_dd6460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6460),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 ee06460 : dd6460 {
+ int e;
+ ~ee06460(); // tgen
+ ee06460(); // tgen
+};
+//SIG(1 ee06460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06460 ::~ee06460(){ note_dtor("ee06460", this);} // tgen
+ee06460 ::ee06460(){ note_ctor("ee06460", this);} // tgen
+
+static void Test_ee06460()
+{
+ extern Class_Descriptor cd_ee06460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06460, buf);
+ ee06460 *dp, &lv = *(dp=new (buf) ee06460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(8,4), "ee06460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), 0, "ee06460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), 0, "ee06460");
+ check_base_class_offset(lv, (dd6460*), 0, "ee06460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06460.e");
+ test_class_info(&lv, &cd_ee06460);
+ dp->~ee06460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06460(Test_ee06460, "ee06460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06460C1Ev();
+extern void _ZN7ee06460D1Ev();
+Name_Map name_map_ee06460[] = {
+ NSPAIR(_ZN7ee06460C1Ev),
+ NSPAIR(_ZN7ee06460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee06460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, 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 _ZTI7ee06460[];
+extern void _ZN6dd64603barEv();
+extern void _ZN6dd64603fooEv();
+static VTBL_ENTRY vtc_ee06460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06460[0]),
+ (VTBL_ENTRY)&_ZN6dd64603barEv,
+ (VTBL_ENTRY)&_ZN6dd64603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06460[];
+extern VTBL_ENTRY _ZTV7ee06460[];
+Class_Descriptor cd_ee06460 = { "ee06460", // class name
+ bases_ee06460, 4,
+ &(vtc_ee06460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06460),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 ee16460 : virtual dd6460 {
+ int e;
+ ~ee16460(); // tgen
+ ee16460(); // tgen
+};
+//SIG(1 ee16460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16460 ::~ee16460(){ note_dtor("ee16460", this);} // tgen
+ee16460 ::ee16460(){ note_ctor("ee16460", this);} // tgen
+
+static void Test_ee16460()
+{
+ extern Class_Descriptor cd_ee16460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16460, buf);
+ ee16460 *dp, &lv = *(dp=new (buf) ee16460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(24,12), "ee16460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), ABISELECT(16,8), "ee16460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), ABISELECT(16,8), "ee16460");
+ check_base_class_offset(lv, (dd6460*), ABISELECT(16,8), "ee16460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16460.e");
+ test_class_info(&lv, &cd_ee16460);
+ dp->~ee16460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16460(Test_ee16460, "ee16460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16460C1Ev();
+extern void _ZN7ee16460D1Ev();
+Name_Map name_map_ee16460[] = {
+ NSPAIR(_ZN7ee16460C1Ev),
+ NSPAIR(_ZN7ee16460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee16460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, 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 _ZTI7ee16460[];
+extern void _ZN6dd64603barEv();
+extern void _ZN6dd64603fooEv();
+static VTBL_ENTRY vtc_ee16460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16460[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16460[0]),
+ (VTBL_ENTRY)&_ZN6dd64603barEv,
+ (VTBL_ENTRY)&_ZN6dd64603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16460[];
+static VTT_ENTRY vtt_ee16460[] = {
+ {&(_ZTV7ee16460[3]), 3,9},
+ {&(_ZTV7ee16460[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16460[];
+extern VTBL_ENTRY _ZTV7ee16460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16460[];
+Class_Descriptor cd_ee16460 = { "ee16460", // class name
+ bases_ee16460, 4,
+ &(vtc_ee16460[0]), // expected_vtbl_contents
+ &(vtt_ee16460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16460),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16460),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 ee26460 : dd6460 {
+ int e;
+ virtual void foo(); // _ZN7ee264603fooEv
+ ~ee26460(); // tgen
+ ee26460(); // tgen
+};
+//SIG(1 ee26460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26460 ::foo(){vfunc_called(this, "_ZN7ee264603fooEv");}
+ee26460 ::~ee26460(){ note_dtor("ee26460", this);} // tgen
+ee26460 ::ee26460(){ note_ctor("ee26460", this);} // tgen
+
+static void Test_ee26460()
+{
+ extern Class_Descriptor cd_ee26460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26460, buf);
+ ee26460 *dp, &lv = *(dp=new (buf) ee26460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(8,4), "ee26460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), 0, "ee26460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), 0, "ee26460");
+ check_base_class_offset(lv, (dd6460*), 0, "ee26460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26460.e");
+ test_class_info(&lv, &cd_ee26460);
+ dp->~ee26460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26460(Test_ee26460, "ee26460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26460C1Ev();
+extern void _ZN7ee26460D1Ev();
+Name_Map name_map_ee26460[] = {
+ NSPAIR(_ZN7ee26460C1Ev),
+ NSPAIR(_ZN7ee26460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee26460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26460[];
+extern void _ZN6dd64603barEv();
+extern void _ZN7ee264603fooEv();
+static VTBL_ENTRY vtc_ee26460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26460[0]),
+ (VTBL_ENTRY)&_ZN6dd64603barEv,
+ (VTBL_ENTRY)&_ZN7ee264603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26460[];
+extern VTBL_ENTRY _ZTV7ee26460[];
+Class_Descriptor cd_ee26460 = { "ee26460", // class name
+ bases_ee26460, 4,
+ &(vtc_ee26460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26460),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 ee36460 : virtual dd6460 {
+ int e;
+ virtual void foo(); // _ZN7ee364603fooEv
+ ~ee36460(); // tgen
+ ee36460(); // tgen
+};
+//SIG(1 ee36460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36460 ::foo(){vfunc_called(this, "_ZN7ee364603fooEv");}
+ee36460 ::~ee36460(){ note_dtor("ee36460", this);} // tgen
+ee36460 ::ee36460(){ note_ctor("ee36460", this);} // tgen
+
+static void Test_ee36460()
+{
+ extern Class_Descriptor cd_ee36460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36460, buf);
+ ee36460 *dp, &lv = *(dp=new (buf) ee36460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(24,12), "ee36460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), ABISELECT(16,8), "ee36460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), ABISELECT(16,8), "ee36460");
+ check_base_class_offset(lv, (dd6460*), ABISELECT(16,8), "ee36460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36460.e");
+ test_class_info(&lv, &cd_ee36460);
+ dp->~ee36460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36460(Test_ee36460, "ee36460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36460C1Ev();
+extern void _ZN7ee36460D1Ev();
+Name_Map name_map_ee36460[] = {
+ NSPAIR(_ZN7ee36460C1Ev),
+ NSPAIR(_ZN7ee36460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee36460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, ABISELECT(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 _ZTI7ee36460[];
+extern void _ZN7ee364603fooEv();
+extern void _ZN6dd64603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee364603fooEv,_ZTv0_n16_N7ee364603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364603fooEv,_ZThn8_N7ee364603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36460[0]),
+ (VTBL_ENTRY)&_ZN7ee364603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36460[0]),
+ (VTBL_ENTRY)&_ZN6dd64603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee364603fooEv,_ZTv0_n16_N7ee364603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36460[];
+static VTT_ENTRY vtt_ee36460[] = {
+ {&(_ZTV7ee36460[3]), 3,10},
+ {&(_ZTV7ee36460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36460[];
+extern VTBL_ENTRY _ZTV7ee36460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36460[];
+static VTBL_ENTRY alt_thunk_names263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee364603fooEv,_ZTv0_n16_N7ee364603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364603fooEv,_ZThn8_N7ee364603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36460 = { "ee36460", // class name
+ bases_ee36460, 4,
+ &(vtc_ee36460[0]), // expected_vtbl_contents
+ &(vtt_ee36460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36460),2, //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 ee46460 : dd6460 {
+ int e;
+ virtual void bar(); // _ZN7ee464603barEv
+ ~ee46460(); // tgen
+ ee46460(); // tgen
+};
+//SIG(1 ee46460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46460 ::bar(){vfunc_called(this, "_ZN7ee464603barEv");}
+ee46460 ::~ee46460(){ note_dtor("ee46460", this);} // tgen
+ee46460 ::ee46460(){ note_ctor("ee46460", this);} // tgen
+
+static void Test_ee46460()
+{
+ extern Class_Descriptor cd_ee46460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46460, buf);
+ ee46460 *dp, &lv = *(dp=new (buf) ee46460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(8,4), "ee46460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), 0, "ee46460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), 0, "ee46460");
+ check_base_class_offset(lv, (dd6460*), 0, "ee46460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46460.e");
+ test_class_info(&lv, &cd_ee46460);
+ dp->~ee46460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46460(Test_ee46460, "ee46460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46460C1Ev();
+extern void _ZN7ee46460D1Ev();
+Name_Map name_map_ee46460[] = {
+ NSPAIR(_ZN7ee46460C1Ev),
+ NSPAIR(_ZN7ee46460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee46460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46460[];
+extern void _ZN7ee464603barEv();
+extern void _ZN6dd64603fooEv();
+static VTBL_ENTRY vtc_ee46460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46460[0]),
+ (VTBL_ENTRY)&_ZN7ee464603barEv,
+ (VTBL_ENTRY)&_ZN6dd64603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46460[];
+extern VTBL_ENTRY _ZTV7ee46460[];
+Class_Descriptor cd_ee46460 = { "ee46460", // class name
+ bases_ee46460, 4,
+ &(vtc_ee46460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46460),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 ee56460 : virtual dd6460 {
+ int e;
+ virtual void bar(); // _ZN7ee564603barEv
+ ~ee56460(); // tgen
+ ee56460(); // tgen
+};
+//SIG(1 ee56460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56460 ::bar(){vfunc_called(this, "_ZN7ee564603barEv");}
+ee56460 ::~ee56460(){ note_dtor("ee56460", this);} // tgen
+ee56460 ::ee56460(){ note_ctor("ee56460", this);} // tgen
+
+static void Test_ee56460()
+{
+ extern Class_Descriptor cd_ee56460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56460, buf);
+ ee56460 *dp, &lv = *(dp=new (buf) ee56460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(24,12), "ee56460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), ABISELECT(16,8), "ee56460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), ABISELECT(16,8), "ee56460");
+ check_base_class_offset(lv, (dd6460*), ABISELECT(16,8), "ee56460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56460.e");
+ test_class_info(&lv, &cd_ee56460);
+ dp->~ee56460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56460(Test_ee56460, "ee56460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56460C1Ev();
+extern void _ZN7ee56460D1Ev();
+Name_Map name_map_ee56460[] = {
+ NSPAIR(_ZN7ee56460C1Ev),
+ NSPAIR(_ZN7ee56460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee56460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, ABISELECT(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 _ZTI7ee56460[];
+extern void _ZN7ee564603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee564603barEv,_ZTv0_n12_N7ee564603barEv)();
+extern void ABISELECT(_ZThn16_N7ee564603barEv,_ZThn8_N7ee564603barEv)() __attribute__((weak));
+extern void _ZN6dd64603fooEv();
+static VTBL_ENTRY vtc_ee56460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56460[0]),
+ (VTBL_ENTRY)&_ZN7ee564603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee564603barEv,_ZTv0_n12_N7ee564603barEv),
+ (VTBL_ENTRY)&_ZN6dd64603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56460[];
+static VTT_ENTRY vtt_ee56460[] = {
+ {&(_ZTV7ee56460[3]), 3,10},
+ {&(_ZTV7ee56460[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56460[];
+extern VTBL_ENTRY _ZTV7ee56460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56460[];
+static VTBL_ENTRY alt_thunk_names264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee564603barEv,_ZTv0_n12_N7ee564603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564603barEv,_ZThn8_N7ee564603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56460 = { "ee56460", // class name
+ bases_ee56460, 4,
+ &(vtc_ee56460[0]), // expected_vtbl_contents
+ &(vtt_ee56460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56460),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56460),2, //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 ee66460 : dd6460 {
+ int e;
+ virtual void foo(); // _ZN7ee664603fooEv
+ virtual void bar(); // _ZN7ee664603barEv
+ ~ee66460(); // tgen
+ ee66460(); // tgen
+};
+//SIG(1 ee66460) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66460 ::foo(){vfunc_called(this, "_ZN7ee664603fooEv");}
+void ee66460 ::bar(){vfunc_called(this, "_ZN7ee664603barEv");}
+ee66460 ::~ee66460(){ note_dtor("ee66460", this);} // tgen
+ee66460 ::ee66460(){ note_ctor("ee66460", this);} // tgen
+
+static void Test_ee66460()
+{
+ extern Class_Descriptor cd_ee66460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66460, buf);
+ ee66460 *dp, &lv = *(dp=new (buf) ee66460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(8,4), "ee66460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), 0, "ee66460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), 0, "ee66460");
+ check_base_class_offset(lv, (dd6460*), 0, "ee66460");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66460.e");
+ test_class_info(&lv, &cd_ee66460);
+ dp->~ee66460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66460(Test_ee66460, "ee66460", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66460C1Ev();
+extern void _ZN7ee66460D1Ev();
+Name_Map name_map_ee66460[] = {
+ NSPAIR(_ZN7ee66460C1Ev),
+ NSPAIR(_ZN7ee66460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee66460[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66460[];
+extern void _ZN7ee664603barEv();
+extern void _ZN7ee664603fooEv();
+static VTBL_ENTRY vtc_ee66460[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66460[0]),
+ (VTBL_ENTRY)&_ZN7ee664603barEv,
+ (VTBL_ENTRY)&_ZN7ee664603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66460[];
+extern VTBL_ENTRY _ZTV7ee66460[];
+Class_Descriptor cd_ee66460 = { "ee66460", // class name
+ bases_ee66460, 4,
+ &(vtc_ee66460[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66460),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 ee76460 : virtual dd6460 {
+ int e;
+ virtual void foo(); // _ZN7ee764603fooEv
+ virtual void bar(); // _ZN7ee764603barEv
+ ~ee76460(); // tgen
+ ee76460(); // tgen
+};
+//SIG(1 ee76460) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76460 ::foo(){vfunc_called(this, "_ZN7ee764603fooEv");}
+void ee76460 ::bar(){vfunc_called(this, "_ZN7ee764603barEv");}
+ee76460 ::~ee76460(){ note_dtor("ee76460", this);} // tgen
+ee76460 ::ee76460(){ note_ctor("ee76460", this);} // tgen
+
+static void Test_ee76460()
+{
+ extern Class_Descriptor cd_ee76460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76460, buf);
+ ee76460 *dp, &lv = *(dp=new (buf) ee76460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*)(dd6460*), ABISELECT(24,12), "ee76460");
+ check_base_class_offset(lv, (bb60*)(cc460*)(dd6460*), ABISELECT(16,8), "ee76460");
+ check_base_class_offset(lv, (cc460*)(dd6460*), ABISELECT(16,8), "ee76460");
+ check_base_class_offset(lv, (dd6460*), ABISELECT(16,8), "ee76460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76460.e");
+ test_class_info(&lv, &cd_ee76460);
+ dp->~ee76460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76460(Test_ee76460, "ee76460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76460C1Ev();
+extern void _ZN7ee76460D1Ev();
+Name_Map name_map_ee76460[] = {
+ NSPAIR(_ZN7ee76460C1Ev),
+ NSPAIR(_ZN7ee76460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd6460;
+extern VTBL_ENTRY _ZTI6dd6460[];
+extern VTBL_ENTRY _ZTV6dd6460[];
+static Base_Class bases_ee76460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6460, ABISELECT(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 _ZTI7ee76460[];
+extern void _ZN7ee764603fooEv();
+extern void _ZN7ee764603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764603barEv,_ZTv0_n12_N7ee764603barEv)();
+extern void ABISELECT(_ZThn16_N7ee764603barEv,_ZThn8_N7ee764603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764603fooEv,_ZTv0_n16_N7ee764603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764603fooEv,_ZThn8_N7ee764603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76460[0]),
+ (VTBL_ENTRY)&_ZN7ee764603fooEv,
+ (VTBL_ENTRY)&_ZN7ee764603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764603barEv,_ZTv0_n12_N7ee764603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764603fooEv,_ZTv0_n16_N7ee764603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76460[];
+static VTT_ENTRY vtt_ee76460[] = {
+ {&(_ZTV7ee76460[3]), 3,11},
+ {&(_ZTV7ee76460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76460[];
+extern VTBL_ENTRY _ZTV7ee76460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76460[];
+static VTBL_ENTRY alt_thunk_names265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764603fooEv,_ZTv0_n16_N7ee764603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764603fooEv,_ZThn8_N7ee764603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764603barEv,_ZTv0_n12_N7ee764603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764603barEv,_ZThn8_N7ee764603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76460 = { "ee76460", // class name
+ bases_ee76460, 4,
+ &(vtc_ee76460[0]), // expected_vtbl_contents
+ &(vtt_ee76460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76460),2, //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 dd7460 : virtual cc460 {
+ int d;
+ virtual void bar(); // _ZN6dd74603barEv
+ virtual void foo(); // _ZN6dd74603fooEv
+ ~dd7460(); // tgen
+ dd7460(); // tgen
+};
+//SIG(-1 dd7460) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7460 ::bar(){vfunc_called(this, "_ZN6dd74603barEv");}
+void dd7460 ::foo(){vfunc_called(this, "_ZN6dd74603fooEv");}
+dd7460 ::~dd7460(){ note_dtor("dd7460", this);} // tgen
+dd7460 ::dd7460(){ note_ctor("dd7460", this);} // tgen
+
+static void Test_dd7460()
+{
+ extern Class_Descriptor cd_dd7460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7460, buf);
+ dd7460 *dp, &lv = *(dp=new (buf) dd7460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,12), "dd7460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,8), "dd7460");
+ check_base_class_offset(lv, (cc460*), ABISELECT(16,8), "dd7460");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7460.d");
+ test_class_info(&lv, &cd_dd7460);
+ dp->~dd7460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7460(Test_dd7460, "dd7460", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7460C1Ev();
+extern void _ZN6dd7460D1Ev();
+Name_Map name_map_dd7460[] = {
+ NSPAIR(_ZN6dd7460C1Ev),
+ NSPAIR(_ZN6dd7460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+static Base_Class bases_dd7460[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, ABISELECT(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 _ZTI6dd7460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7460[];
+static VTT_ENTRY vtt_dd7460[] = {
+ {&(_ZTV6dd7460[3]), 3,11},
+ {&(_ZTV6dd7460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static VTBL_ENTRY alt_thunk_names266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7460 = { "dd7460", // class name
+ bases_dd7460, 3,
+ &(vtc_dd7460[0]), // expected_vtbl_contents
+ &(vtt_dd7460[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7460),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07460 : dd7460 {
+ int e;
+ ~ee07460(); // tgen
+ ee07460(); // tgen
+};
+//SIG(1 ee07460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07460 ::~ee07460(){ note_dtor("ee07460", this);} // tgen
+ee07460 ::ee07460(){ note_ctor("ee07460", this);} // tgen
+
+static void Test_ee07460()
+{
+ extern Class_Descriptor cd_ee07460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07460, buf);
+ ee07460 *dp, &lv = *(dp=new (buf) ee07460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee07460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee07460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(16,12), "ee07460");
+ check_base_class_offset(lv, (dd7460*), 0, "ee07460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07460.e");
+ test_class_info(&lv, &cd_ee07460);
+ dp->~ee07460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07460(Test_ee07460, "ee07460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07460C1Ev();
+extern void _ZN7ee07460D1Ev();
+Name_Map name_map_ee07460[] = {
+ NSPAIR(_ZN7ee07460C1Ev),
+ NSPAIR(_ZN7ee07460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee07460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee07460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee07460[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee07460[] = {
+ {&(_ZTV7ee07460[3]), 3,11},
+ {&(_tg__ZTV6dd7460__7ee07460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee07460[4]), 4,6},
+ {&(_ZTV7ee07460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07460[];
+extern VTBL_ENTRY _ZTV7ee07460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07460[];
+static VTBL_ENTRY alt_thunk_names267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07460 = { "ee07460", // class name
+ bases_ee07460, 4,
+ &(vtc_ee07460[0]), // expected_vtbl_contents
+ &(vtt_ee07460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07460),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17460 : virtual dd7460 {
+ int e;
+ ~ee17460(); // tgen
+ ee17460(); // tgen
+};
+//SIG(1 ee17460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17460 ::~ee17460(){ note_dtor("ee17460", this);} // tgen
+ee17460 ::ee17460(){ note_ctor("ee17460", this);} // tgen
+
+static void Test_ee17460()
+{
+ extern Class_Descriptor cd_ee17460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17460, buf);
+ ee17460 *dp, &lv = *(dp=new (buf) ee17460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee17460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee17460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(32,16), "ee17460");
+ check_base_class_offset(lv, (dd7460*), ABISELECT(16,8), "ee17460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17460.e");
+ test_class_info(&lv, &cd_ee17460);
+ dp->~ee17460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17460(Test_ee17460, "ee17460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17460C1Ev();
+extern void _ZN7ee17460D1Ev();
+Name_Map name_map_ee17460[] = {
+ NSPAIR(_ZN7ee17460C1Ev),
+ NSPAIR(_ZN7ee17460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee17460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, 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 _ZTI7ee17460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17460[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee17460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee17460[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee17460[] = {
+ {&(_ZTV7ee17460[4]), 4,17},
+ {&(_ZTV7ee17460[9]), 9,17},
+ {&(_ZTV7ee17460[15]), 15,17},
+ {&(_tg__ZTV6dd7460__7ee17460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee17460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17460[];
+extern VTBL_ENTRY _ZTV7ee17460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17460[];
+static VTBL_ENTRY alt_thunk_names268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17460 = { "ee17460", // class name
+ bases_ee17460, 4,
+ &(vtc_ee17460[0]), // expected_vtbl_contents
+ &(vtt_ee17460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17460),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17460),5, //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 ee27460 : dd7460 {
+ int e;
+ virtual void foo(); // _ZN7ee274603fooEv
+ ~ee27460(); // tgen
+ ee27460(); // tgen
+};
+//SIG(1 ee27460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27460 ::foo(){vfunc_called(this, "_ZN7ee274603fooEv");}
+ee27460 ::~ee27460(){ note_dtor("ee27460", this);} // tgen
+ee27460 ::ee27460(){ note_ctor("ee27460", this);} // tgen
+
+static void Test_ee27460()
+{
+ extern Class_Descriptor cd_ee27460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27460, buf);
+ ee27460 *dp, &lv = *(dp=new (buf) ee27460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee27460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee27460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(16,12), "ee27460");
+ check_base_class_offset(lv, (dd7460*), 0, "ee27460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27460.e");
+ test_class_info(&lv, &cd_ee27460);
+ dp->~ee27460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27460(Test_ee27460, "ee27460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27460C1Ev();
+extern void _ZN7ee27460D1Ev();
+Name_Map name_map_ee27460[] = {
+ NSPAIR(_ZN7ee27460C1Ev),
+ NSPAIR(_ZN7ee27460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee27460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN7ee274603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee274603fooEv,_ZTv0_n16_N7ee274603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274603fooEv,_ZThn12_N7ee274603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN7ee274603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee274603fooEv,_ZTv0_n16_N7ee274603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee27460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee27460[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee27460[] = {
+ {&(_ZTV7ee27460[3]), 3,11},
+ {&(_tg__ZTV6dd7460__7ee27460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee27460[4]), 4,6},
+ {&(_ZTV7ee27460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27460[];
+extern VTBL_ENTRY _ZTV7ee27460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27460[];
+static VTBL_ENTRY alt_thunk_names269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee274603fooEv,_ZTv0_n16_N7ee274603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274603fooEv,_ZThn12_N7ee274603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27460 = { "ee27460", // class name
+ bases_ee27460, 4,
+ &(vtc_ee27460[0]), // expected_vtbl_contents
+ &(vtt_ee27460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27460),4, //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 ee37460 : virtual dd7460 {
+ int e;
+ virtual void foo(); // _ZN7ee374603fooEv
+ ~ee37460(); // tgen
+ ee37460(); // tgen
+};
+//SIG(1 ee37460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37460 ::foo(){vfunc_called(this, "_ZN7ee374603fooEv");}
+ee37460 ::~ee37460(){ note_dtor("ee37460", this);} // tgen
+ee37460 ::ee37460(){ note_ctor("ee37460", this);} // tgen
+
+static void Test_ee37460()
+{
+ extern Class_Descriptor cd_ee37460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37460, buf);
+ ee37460 *dp, &lv = *(dp=new (buf) ee37460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee37460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee37460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(32,16), "ee37460");
+ check_base_class_offset(lv, (dd7460*), ABISELECT(16,8), "ee37460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37460.e");
+ test_class_info(&lv, &cd_ee37460);
+ dp->~ee37460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37460(Test_ee37460, "ee37460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37460C1Ev();
+extern void _ZN7ee37460D1Ev();
+Name_Map name_map_ee37460[] = {
+ NSPAIR(_ZN7ee37460C1Ev),
+ NSPAIR(_ZN7ee37460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee37460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, ABISELECT(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 _ZTI7ee37460[];
+extern void _ZN7ee374603fooEv();
+extern void _ZN6dd74603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374603fooEv,_ZTv0_n20_N7ee374603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374603fooEv,_ZThn8_N7ee374603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee374603fooEv,_ZTv0_n16_N7ee374603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374603fooEv,_ZThn16_N7ee374603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37460[0]),
+ (VTBL_ENTRY)&_ZN7ee374603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374603fooEv,_ZTv0_n20_N7ee374603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee374603fooEv,_ZTv0_n16_N7ee374603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee37460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee37460[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee37460[] = {
+ {&(_ZTV7ee37460[4]), 4,18},
+ {&(_ZTV7ee37460[10]), 10,18},
+ {&(_ZTV7ee37460[16]), 16,18},
+ {&(_tg__ZTV6dd7460__7ee37460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee37460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37460[];
+extern VTBL_ENTRY _ZTV7ee37460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37460[];
+static VTBL_ENTRY alt_thunk_names270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee374603fooEv,_ZTv0_n16_N7ee374603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374603fooEv,_ZThn16_N7ee374603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374603fooEv,_ZTv0_n20_N7ee374603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374603fooEv,_ZThn8_N7ee374603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37460 = { "ee37460", // class name
+ bases_ee37460, 4,
+ &(vtc_ee37460[0]), // expected_vtbl_contents
+ &(vtt_ee37460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37460),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37460),5, //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 ee47460 : dd7460 {
+ int e;
+ virtual void bar(); // _ZN7ee474603barEv
+ ~ee47460(); // tgen
+ ee47460(); // tgen
+};
+//SIG(1 ee47460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47460 ::bar(){vfunc_called(this, "_ZN7ee474603barEv");}
+ee47460 ::~ee47460(){ note_dtor("ee47460", this);} // tgen
+ee47460 ::ee47460(){ note_ctor("ee47460", this);} // tgen
+
+static void Test_ee47460()
+{
+ extern Class_Descriptor cd_ee47460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47460, buf);
+ ee47460 *dp, &lv = *(dp=new (buf) ee47460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee47460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee47460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(16,12), "ee47460");
+ check_base_class_offset(lv, (dd7460*), 0, "ee47460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47460.e");
+ test_class_info(&lv, &cd_ee47460);
+ dp->~ee47460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47460(Test_ee47460, "ee47460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47460C1Ev();
+extern void _ZN7ee47460D1Ev();
+Name_Map name_map_ee47460[] = {
+ NSPAIR(_ZN7ee47460C1Ev),
+ NSPAIR(_ZN7ee47460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee47460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47460[];
+extern void _ZN7ee474603barEv();
+extern void _ZN6dd74603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee474603barEv,_ZTv0_n12_N7ee474603barEv)();
+extern void ABISELECT(_ZThn16_N7ee474603barEv,_ZThn12_N7ee474603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47460[0]),
+ (VTBL_ENTRY)&_ZN7ee474603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee474603barEv,_ZTv0_n12_N7ee474603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee47460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee47460[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee47460[] = {
+ {&(_ZTV7ee47460[3]), 3,11},
+ {&(_tg__ZTV6dd7460__7ee47460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee47460[4]), 4,6},
+ {&(_ZTV7ee47460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47460[];
+extern VTBL_ENTRY _ZTV7ee47460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47460[];
+static VTBL_ENTRY alt_thunk_names271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee474603barEv,_ZTv0_n12_N7ee474603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474603barEv,_ZThn12_N7ee474603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47460 = { "ee47460", // class name
+ bases_ee47460, 4,
+ &(vtc_ee47460[0]), // expected_vtbl_contents
+ &(vtt_ee47460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47460),4, //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 ee57460 : virtual dd7460 {
+ int e;
+ virtual void bar(); // _ZN7ee574603barEv
+ ~ee57460(); // tgen
+ ee57460(); // tgen
+};
+//SIG(1 ee57460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57460 ::bar(){vfunc_called(this, "_ZN7ee574603barEv");}
+ee57460 ::~ee57460(){ note_dtor("ee57460", this);} // tgen
+ee57460 ::ee57460(){ note_ctor("ee57460", this);} // tgen
+
+static void Test_ee57460()
+{
+ extern Class_Descriptor cd_ee57460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57460, buf);
+ ee57460 *dp, &lv = *(dp=new (buf) ee57460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee57460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee57460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(32,16), "ee57460");
+ check_base_class_offset(lv, (dd7460*), ABISELECT(16,8), "ee57460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57460.e");
+ test_class_info(&lv, &cd_ee57460);
+ dp->~ee57460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57460(Test_ee57460, "ee57460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57460C1Ev();
+extern void _ZN7ee57460D1Ev();
+Name_Map name_map_ee57460[] = {
+ NSPAIR(_ZN7ee57460C1Ev),
+ NSPAIR(_ZN7ee57460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee57460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, ABISELECT(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 _ZTI7ee57460[];
+extern void _ZN7ee574603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574603barEv,_ZTv0_n16_N7ee574603barEv)();
+extern void ABISELECT(_ZThn16_N7ee574603barEv,_ZThn8_N7ee574603barEv)() __attribute__((weak));
+extern void _ZN6dd74603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee574603barEv,_ZTv0_n12_N7ee574603barEv)();
+extern void ABISELECT(_ZThn32_N7ee574603barEv,_ZThn16_N7ee574603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57460[0]),
+ (VTBL_ENTRY)&_ZN7ee574603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574603barEv,_ZTv0_n16_N7ee574603barEv),
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee574603barEv,_ZTv0_n12_N7ee574603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee57460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee57460[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee57460[] = {
+ {&(_ZTV7ee57460[4]), 4,18},
+ {&(_ZTV7ee57460[10]), 10,18},
+ {&(_ZTV7ee57460[16]), 16,18},
+ {&(_tg__ZTV6dd7460__7ee57460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee57460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57460[];
+extern VTBL_ENTRY _ZTV7ee57460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57460[];
+static VTBL_ENTRY alt_thunk_names272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee574603barEv,_ZTv0_n12_N7ee574603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574603barEv,_ZThn16_N7ee574603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574603barEv,_ZTv0_n16_N7ee574603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574603barEv,_ZThn8_N7ee574603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57460 = { "ee57460", // class name
+ bases_ee57460, 4,
+ &(vtc_ee57460[0]), // expected_vtbl_contents
+ &(vtt_ee57460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57460),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57460),5, //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 ee67460 : dd7460 {
+ int e;
+ virtual void foo(); // _ZN7ee674603fooEv
+ virtual void bar(); // _ZN7ee674603barEv
+ ~ee67460(); // tgen
+ ee67460(); // tgen
+};
+//SIG(1 ee67460) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67460 ::foo(){vfunc_called(this, "_ZN7ee674603fooEv");}
+void ee67460 ::bar(){vfunc_called(this, "_ZN7ee674603barEv");}
+ee67460 ::~ee67460(){ note_dtor("ee67460", this);} // tgen
+ee67460 ::ee67460(){ note_ctor("ee67460", this);} // tgen
+
+static void Test_ee67460()
+{
+ extern Class_Descriptor cd_ee67460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67460, buf);
+ ee67460 *dp, &lv = *(dp=new (buf) ee67460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(24,16), "ee67460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(16,12), "ee67460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(16,12), "ee67460");
+ check_base_class_offset(lv, (dd7460*), 0, "ee67460");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67460.e");
+ test_class_info(&lv, &cd_ee67460);
+ dp->~ee67460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67460(Test_ee67460, "ee67460", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67460C1Ev();
+extern void _ZN7ee67460D1Ev();
+Name_Map name_map_ee67460[] = {
+ NSPAIR(_ZN7ee67460C1Ev),
+ NSPAIR(_ZN7ee67460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee67460[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67460[];
+extern void _ZN7ee674603barEv();
+extern void _ZN7ee674603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674603barEv,_ZTv0_n12_N7ee674603barEv)();
+extern void ABISELECT(_ZThn16_N7ee674603barEv,_ZThn12_N7ee674603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674603fooEv,_ZTv0_n16_N7ee674603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674603fooEv,_ZThn12_N7ee674603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67460[0]),
+ (VTBL_ENTRY)&_ZN7ee674603barEv,
+ (VTBL_ENTRY)&_ZN7ee674603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674603barEv,_ZTv0_n12_N7ee674603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674603fooEv,_ZTv0_n16_N7ee674603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee67460[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee67460[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee67460[] = {
+ {&(_ZTV7ee67460[3]), 3,11},
+ {&(_tg__ZTV6dd7460__7ee67460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee67460[4]), 4,6},
+ {&(_ZTV7ee67460[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67460[];
+extern VTBL_ENTRY _ZTV7ee67460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67460[];
+static VTBL_ENTRY alt_thunk_names273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn12_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn12_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674603fooEv,_ZTv0_n16_N7ee674603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674603fooEv,_ZThn12_N7ee674603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674603barEv,_ZTv0_n12_N7ee674603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674603barEv,_ZThn12_N7ee674603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67460 = { "ee67460", // class name
+ bases_ee67460, 4,
+ &(vtc_ee67460[0]), // expected_vtbl_contents
+ &(vtt_ee67460[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67460),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67460),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67460),4, //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 ee77460 : virtual dd7460 {
+ int e;
+ virtual void foo(); // _ZN7ee774603fooEv
+ virtual void bar(); // _ZN7ee774603barEv
+ ~ee77460(); // tgen
+ ee77460(); // tgen
+};
+//SIG(1 ee77460) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77460 ::foo(){vfunc_called(this, "_ZN7ee774603fooEv");}
+void ee77460 ::bar(){vfunc_called(this, "_ZN7ee774603barEv");}
+ee77460 ::~ee77460(){ note_dtor("ee77460", this);} // tgen
+ee77460 ::ee77460(){ note_ctor("ee77460", this);} // tgen
+
+static void Test_ee77460()
+{
+ extern Class_Descriptor cd_ee77460;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77460, buf);
+ ee77460 *dp, &lv = *(dp=new (buf) ee77460());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77460)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77460)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc460*), ABISELECT(40,20), "ee77460");
+ check_base_class_offset(lv, (bb60*)(cc460*), ABISELECT(32,16), "ee77460");
+ check_base_class_offset(lv, (cc460*)(dd7460*), ABISELECT(32,16), "ee77460");
+ check_base_class_offset(lv, (dd7460*), ABISELECT(16,8), "ee77460");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77460.e");
+ test_class_info(&lv, &cd_ee77460);
+ dp->~ee77460();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77460(Test_ee77460, "ee77460", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77460C1Ev();
+extern void _ZN7ee77460D1Ev();
+Name_Map name_map_ee77460[] = {
+ NSPAIR(_ZN7ee77460C1Ev),
+ NSPAIR(_ZN7ee77460D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc460;
+extern VTBL_ENTRY _ZTI5cc460[];
+extern VTBL_ENTRY _ZTV5cc460[];
+extern Class_Descriptor cd_dd7460;
+extern VTBL_ENTRY _ZTI6dd7460[];
+extern VTBL_ENTRY _ZTV6dd7460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7460[];
+static Base_Class bases_ee77460[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc460, 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_dd7460, ABISELECT(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 _ZTI7ee77460[];
+extern void _ZN7ee774603fooEv();
+extern void _ZN7ee774603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774603barEv,_ZTv0_n16_N7ee774603barEv)();
+extern void ABISELECT(_ZThn16_N7ee774603barEv,_ZThn8_N7ee774603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774603fooEv,_ZTv0_n20_N7ee774603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774603fooEv,_ZThn8_N7ee774603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774603barEv,_ZTv0_n12_N7ee774603barEv)();
+extern void ABISELECT(_ZThn32_N7ee774603barEv,_ZThn16_N7ee774603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774603fooEv,_ZTv0_n16_N7ee774603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774603fooEv,_ZThn16_N7ee774603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77460[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77460[0]),
+ (VTBL_ENTRY)&_ZN7ee774603fooEv,
+ (VTBL_ENTRY)&_ZN7ee774603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774603barEv,_ZTv0_n16_N7ee774603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774603fooEv,_ZTv0_n20_N7ee774603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774603barEv,_ZTv0_n12_N7ee774603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774603fooEv,_ZTv0_n16_N7ee774603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77460[];
+extern void _ZN6dd74603barEv();
+extern void _ZN6dd74603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7460__7ee77460[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&_ZN6dd74603barEv,
+ (VTBL_ENTRY)&_ZN6dd74603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv)();
+extern void ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc460__6dd7460__7ee77460[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7460[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv),
+};
+static VTT_ENTRY vtt_ee77460[] = {
+ {&(_ZTV7ee77460[4]), 4,19},
+ {&(_ZTV7ee77460[11]), 11,19},
+ {&(_ZTV7ee77460[17]), 17,19},
+ {&(_tg__ZTV6dd7460__7ee77460[3]), 3,5},
+ {&(_tg__ZTV5cc460__6dd7460__7ee77460[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77460[];
+extern VTBL_ENTRY _ZTV7ee77460[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77460[];
+static VTBL_ENTRY alt_thunk_names274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74603fooEv,_ZTv0_n16_N6dd74603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603fooEv,_ZThn8_N6dd74603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74603barEv,_ZTv0_n12_N6dd74603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74603barEv,_ZThn8_N6dd74603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774603fooEv,_ZTv0_n16_N7ee774603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774603fooEv,_ZThn16_N7ee774603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774603barEv,_ZTv0_n12_N7ee774603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774603barEv,_ZThn16_N7ee774603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774603fooEv,_ZTv0_n20_N7ee774603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774603fooEv,_ZThn8_N7ee774603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774603barEv,_ZTv0_n16_N7ee774603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774603barEv,_ZThn8_N7ee774603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77460 = { "ee77460", // class name
+ bases_ee77460, 4,
+ &(vtc_ee77460[0]), // expected_vtbl_contents
+ &(vtt_ee77460[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77460),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77460),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77460),5, //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 cc560 : virtual bb60 {
+ int c;
+ virtual void bar(); // _ZN5cc5603barEv
+ ~cc560(); // tgen
+ cc560(); // tgen
+};
+//SIG(-1 cc560) C1{ VBC2{ BC3{ Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc560 ::bar(){vfunc_called(this, "_ZN5cc5603barEv");}
+cc560 ::~cc560(){ note_dtor("cc560", this);} // tgen
+cc560 ::cc560(){ note_ctor("cc560", this);} // tgen
+
+static void Test_cc560()
+{
+ extern Class_Descriptor cd_cc560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc560, buf);
+ cc560 *dp, &lv = *(dp=new (buf) cc560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,12), "cc560");
+ check_base_class_offset(lv, (bb60*), ABISELECT(16,8), "cc560");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc560.c");
+ test_class_info(&lv, &cd_cc560);
+ dp->~cc560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc560(Test_cc560, "cc560", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc560C1Ev();
+extern void _ZN5cc560D1Ev();
+Name_Map name_map_cc560[] = {
+ NSPAIR(_ZN5cc560C1Ev),
+ NSPAIR(_ZN5cc560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc560[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_cc560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc560[];
+static VTT_ENTRY vtt_cc560[] = {
+ {&(_ZTV5cc560[3]), 3,10},
+ {&(_ZTV5cc560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static VTBL_ENTRY alt_thunk_names275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc560 = { "cc560", // class name
+ bases_cc560, 2,
+ &(vtc_cc560[0]), // expected_vtbl_contents
+ &(vtt_cc560[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc560),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0560 : cc560 {
+ int d;
+ ~dd0560(); // tgen
+ dd0560(); // tgen
+};
+//SIG(-1 dd0560) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0560 ::~dd0560(){ note_dtor("dd0560", this);} // tgen
+dd0560 ::dd0560(){ note_ctor("dd0560", this);} // tgen
+
+static void Test_dd0560()
+{
+ extern Class_Descriptor cd_dd0560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0560, buf);
+ dd0560 *dp, &lv = *(dp=new (buf) dd0560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd0560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(16,12), "dd0560");
+ check_base_class_offset(lv, (cc560*), 0, "dd0560");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0560.d");
+ test_class_info(&lv, &cd_dd0560);
+ dp->~dd0560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0560(Test_dd0560, "dd0560", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0560C1Ev();
+extern void _ZN6dd0560D1Ev();
+Name_Map name_map_dd0560[] = {
+ NSPAIR(_ZN6dd0560C1Ev),
+ NSPAIR(_ZN6dd0560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd0560[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd0560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd0560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd0560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd0560[] = {
+ {&(_ZTV6dd0560[3]), 3,10},
+ {&(_tg__ZTV5cc560__6dd0560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd0560[4]), 4,6},
+ {&(_ZTV6dd0560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static VTBL_ENTRY alt_thunk_names276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0560 = { "dd0560", // class name
+ bases_dd0560, 3,
+ &(vtc_dd0560[0]), // expected_vtbl_contents
+ &(vtt_dd0560[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0560),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00560 : dd0560 {
+ int e;
+ ~ee00560(); // tgen
+ ee00560(); // tgen
+};
+//SIG(1 ee00560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00560 ::~ee00560(){ note_dtor("ee00560", this);} // tgen
+ee00560 ::ee00560(){ note_ctor("ee00560", this);} // tgen
+
+static void Test_ee00560()
+{
+ extern Class_Descriptor cd_ee00560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00560, buf);
+ ee00560 *dp, &lv = *(dp=new (buf) ee00560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee00560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(24,16), "ee00560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), 0, "ee00560");
+ check_base_class_offset(lv, (dd0560*), 0, "ee00560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00560.e");
+ test_class_info(&lv, &cd_ee00560);
+ dp->~ee00560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00560(Test_ee00560, "ee00560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00560C1Ev();
+extern void _ZN7ee00560D1Ev();
+Name_Map name_map_ee00560[] = {
+ NSPAIR(_ZN7ee00560C1Ev),
+ NSPAIR(_ZN7ee00560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee00560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee00560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee00560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee00560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee00560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee00560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee00560[] = {
+ {&(_ZTV7ee00560[3]), 3,10},
+ {&(_tg__ZTV6dd0560__7ee00560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee00560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee00560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee00560[4]), 4,6},
+ {&(_ZTV7ee00560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00560[];
+extern VTBL_ENTRY _ZTV7ee00560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00560[];
+static VTBL_ENTRY alt_thunk_names277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00560 = { "ee00560", // class name
+ bases_ee00560, 4,
+ &(vtc_ee00560[0]), // expected_vtbl_contents
+ &(vtt_ee00560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00560),6, //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 ee10560 : virtual dd0560 {
+ int e;
+ ~ee10560(); // tgen
+ ee10560(); // tgen
+};
+//SIG(1 ee10560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10560 ::~ee10560(){ note_dtor("ee10560", this);} // tgen
+ee10560 ::ee10560(){ note_ctor("ee10560", this);} // tgen
+
+static void Test_ee10560()
+{
+ extern Class_Descriptor cd_ee10560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10560, buf);
+ ee10560 *dp, &lv = *(dp=new (buf) ee10560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee10560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(32,20), "ee10560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), ABISELECT(16,8), "ee10560");
+ check_base_class_offset(lv, (dd0560*), ABISELECT(16,8), "ee10560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10560.e");
+ test_class_info(&lv, &cd_ee10560);
+ dp->~ee10560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10560(Test_ee10560, "ee10560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10560C1Ev();
+extern void _ZN7ee10560D1Ev();
+Name_Map name_map_ee10560[] = {
+ NSPAIR(_ZN7ee10560C1Ev),
+ NSPAIR(_ZN7ee10560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee10560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, ABISELECT(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 _ZTI7ee10560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee10560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10560[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee10560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee10560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee10560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee10560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee10560[] = {
+ {&(_ZTV7ee10560[4]), 4,15},
+ {&(_ZTV7ee10560[8]), 8,15},
+ {&(_ZTV7ee10560[13]), 13,15},
+ {&(_tg__ZTV6dd0560__7ee10560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee10560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee10560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee10560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10560[];
+extern VTBL_ENTRY _ZTV7ee10560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10560[];
+static VTBL_ENTRY alt_thunk_names278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10560 = { "ee10560", // class name
+ bases_ee10560, 4,
+ &(vtc_ee10560[0]), // expected_vtbl_contents
+ &(vtt_ee10560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10560),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10560),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 ee20560 : dd0560 {
+ int e;
+ virtual void foo(); // _ZN7ee205603fooEv
+ ~ee20560(); // tgen
+ ee20560(); // tgen
+};
+//SIG(1 ee20560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20560 ::foo(){vfunc_called(this, "_ZN7ee205603fooEv");}
+ee20560 ::~ee20560(){ note_dtor("ee20560", this);} // tgen
+ee20560 ::ee20560(){ note_ctor("ee20560", this);} // tgen
+
+static void Test_ee20560()
+{
+ extern Class_Descriptor cd_ee20560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20560, buf);
+ ee20560 *dp, &lv = *(dp=new (buf) ee20560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee20560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(24,16), "ee20560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), 0, "ee20560");
+ check_base_class_offset(lv, (dd0560*), 0, "ee20560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20560.e");
+ test_class_info(&lv, &cd_ee20560);
+ dp->~ee20560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20560(Test_ee20560, "ee20560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20560C1Ev();
+extern void _ZN7ee20560D1Ev();
+Name_Map name_map_ee20560[] = {
+ NSPAIR(_ZN7ee20560C1Ev),
+ NSPAIR(_ZN7ee20560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee20560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN7ee205603fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee205603fooEv,_ZTv0_n16_N7ee205603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205603fooEv,_ZThn16_N7ee205603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN7ee205603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee205603fooEv,_ZTv0_n16_N7ee205603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee20560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee20560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee20560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee20560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee20560[] = {
+ {&(_ZTV7ee20560[3]), 3,11},
+ {&(_tg__ZTV6dd0560__7ee20560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee20560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee20560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee20560[4]), 4,6},
+ {&(_ZTV7ee20560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20560[];
+extern VTBL_ENTRY _ZTV7ee20560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20560[];
+static VTBL_ENTRY alt_thunk_names279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee205603fooEv,_ZTv0_n16_N7ee205603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205603fooEv,_ZThn16_N7ee205603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20560 = { "ee20560", // class name
+ bases_ee20560, 4,
+ &(vtc_ee20560[0]), // expected_vtbl_contents
+ &(vtt_ee20560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20560),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 ee30560 : virtual dd0560 {
+ int e;
+ virtual void foo(); // _ZN7ee305603fooEv
+ ~ee30560(); // tgen
+ ee30560(); // tgen
+};
+//SIG(1 ee30560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30560 ::foo(){vfunc_called(this, "_ZN7ee305603fooEv");}
+ee30560 ::~ee30560(){ note_dtor("ee30560", this);} // tgen
+ee30560 ::ee30560(){ note_ctor("ee30560", this);} // tgen
+
+static void Test_ee30560()
+{
+ extern Class_Descriptor cd_ee30560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30560, buf);
+ ee30560 *dp, &lv = *(dp=new (buf) ee30560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee30560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(32,20), "ee30560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), ABISELECT(16,8), "ee30560");
+ check_base_class_offset(lv, (dd0560*), ABISELECT(16,8), "ee30560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30560.e");
+ test_class_info(&lv, &cd_ee30560);
+ dp->~ee30560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30560(Test_ee30560, "ee30560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30560C1Ev();
+extern void _ZN7ee30560D1Ev();
+Name_Map name_map_ee30560[] = {
+ NSPAIR(_ZN7ee30560C1Ev),
+ NSPAIR(_ZN7ee30560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee30560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, ABISELECT(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 _ZTI7ee30560[];
+extern void _ZN7ee305603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee305603fooEv,_ZTv0_n16_N7ee305603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305603fooEv,_ZThn20_N7ee305603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30560[0]),
+ (VTBL_ENTRY)&_ZN7ee305603fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee305603fooEv,_ZTv0_n16_N7ee305603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee30560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee30560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee30560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee30560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee30560[] = {
+ {&(_ZTV7ee30560[4]), 4,16},
+ {&(_ZTV7ee30560[9]), 9,16},
+ {&(_ZTV7ee30560[14]), 14,16},
+ {&(_tg__ZTV6dd0560__7ee30560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee30560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee30560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee30560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30560[];
+extern VTBL_ENTRY _ZTV7ee30560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30560[];
+static VTBL_ENTRY alt_thunk_names280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee305603fooEv,_ZTv0_n16_N7ee305603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305603fooEv,_ZThn20_N7ee305603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30560 = { "ee30560", // class name
+ bases_ee30560, 4,
+ &(vtc_ee30560[0]), // expected_vtbl_contents
+ &(vtt_ee30560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30560),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 ee40560 : dd0560 {
+ int e;
+ virtual void bar(); // _ZN7ee405603barEv
+ ~ee40560(); // tgen
+ ee40560(); // tgen
+};
+//SIG(1 ee40560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40560 ::bar(){vfunc_called(this, "_ZN7ee405603barEv");}
+ee40560 ::~ee40560(){ note_dtor("ee40560", this);} // tgen
+ee40560 ::ee40560(){ note_ctor("ee40560", this);} // tgen
+
+static void Test_ee40560()
+{
+ extern Class_Descriptor cd_ee40560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40560, buf);
+ ee40560 *dp, &lv = *(dp=new (buf) ee40560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee40560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(24,16), "ee40560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), 0, "ee40560");
+ check_base_class_offset(lv, (dd0560*), 0, "ee40560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40560.e");
+ test_class_info(&lv, &cd_ee40560);
+ dp->~ee40560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40560(Test_ee40560, "ee40560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40560C1Ev();
+extern void _ZN7ee40560D1Ev();
+Name_Map name_map_ee40560[] = {
+ NSPAIR(_ZN7ee40560C1Ev),
+ NSPAIR(_ZN7ee40560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee40560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40560[];
+extern void _ZN7ee405603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee405603barEv,_ZTv0_n12_N7ee405603barEv)();
+extern void ABISELECT(_ZThn24_N7ee405603barEv,_ZThn16_N7ee405603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee40560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40560[0]),
+ (VTBL_ENTRY)&_ZN7ee405603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee405603barEv,_ZTv0_n12_N7ee405603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee40560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee40560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee40560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee40560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee40560[] = {
+ {&(_ZTV7ee40560[3]), 3,10},
+ {&(_tg__ZTV6dd0560__7ee40560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee40560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee40560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee40560[4]), 4,6},
+ {&(_ZTV7ee40560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40560[];
+extern VTBL_ENTRY _ZTV7ee40560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40560[];
+static VTBL_ENTRY alt_thunk_names281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee405603barEv,_ZTv0_n12_N7ee405603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405603barEv,_ZThn16_N7ee405603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40560 = { "ee40560", // class name
+ bases_ee40560, 4,
+ &(vtc_ee40560[0]), // expected_vtbl_contents
+ &(vtt_ee40560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50560 : virtual dd0560 {
+ int e;
+ virtual void bar(); // _ZN7ee505603barEv
+ ~ee50560(); // tgen
+ ee50560(); // tgen
+};
+//SIG(1 ee50560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50560 ::bar(){vfunc_called(this, "_ZN7ee505603barEv");}
+ee50560 ::~ee50560(){ note_dtor("ee50560", this);} // tgen
+ee50560 ::ee50560(){ note_ctor("ee50560", this);} // tgen
+
+static void Test_ee50560()
+{
+ extern Class_Descriptor cd_ee50560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50560, buf);
+ ee50560 *dp, &lv = *(dp=new (buf) ee50560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee50560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(32,20), "ee50560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), ABISELECT(16,8), "ee50560");
+ check_base_class_offset(lv, (dd0560*), ABISELECT(16,8), "ee50560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50560.e");
+ test_class_info(&lv, &cd_ee50560);
+ dp->~ee50560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50560(Test_ee50560, "ee50560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50560C1Ev();
+extern void _ZN7ee50560D1Ev();
+Name_Map name_map_ee50560[] = {
+ NSPAIR(_ZN7ee50560C1Ev),
+ NSPAIR(_ZN7ee50560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee50560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, ABISELECT(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 _ZTI7ee50560[];
+extern void _ZN7ee505603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505603barEv,_ZTv0_n16_N7ee505603barEv)();
+extern void ABISELECT(_ZThn16_N7ee505603barEv,_ZThn8_N7ee505603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee505603barEv,_ZTv0_n12_N7ee505603barEv)();
+extern void ABISELECT(_ZThn32_N7ee505603barEv,_ZThn20_N7ee505603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee50560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50560[0]),
+ (VTBL_ENTRY)&_ZN7ee505603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505603barEv,_ZTv0_n16_N7ee505603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee505603barEv,_ZTv0_n12_N7ee505603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee50560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee50560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee50560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee50560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee50560[] = {
+ {&(_ZTV7ee50560[4]), 4,16},
+ {&(_ZTV7ee50560[9]), 9,16},
+ {&(_ZTV7ee50560[14]), 14,16},
+ {&(_tg__ZTV6dd0560__7ee50560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee50560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee50560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee50560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50560[];
+extern VTBL_ENTRY _ZTV7ee50560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50560[];
+static VTBL_ENTRY alt_thunk_names282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee505603barEv,_ZTv0_n12_N7ee505603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505603barEv,_ZThn20_N7ee505603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505603barEv,_ZTv0_n16_N7ee505603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505603barEv,_ZThn8_N7ee505603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50560 = { "ee50560", // class name
+ bases_ee50560, 4,
+ &(vtc_ee50560[0]), // expected_vtbl_contents
+ &(vtt_ee50560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50560),7, //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 ee60560 : dd0560 {
+ int e;
+ virtual void foo(); // _ZN7ee605603fooEv
+ virtual void bar(); // _ZN7ee605603barEv
+ ~ee60560(); // tgen
+ ee60560(); // tgen
+};
+//SIG(1 ee60560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60560 ::foo(){vfunc_called(this, "_ZN7ee605603fooEv");}
+void ee60560 ::bar(){vfunc_called(this, "_ZN7ee605603barEv");}
+ee60560 ::~ee60560(){ note_dtor("ee60560", this);} // tgen
+ee60560 ::ee60560(){ note_ctor("ee60560", this);} // tgen
+
+static void Test_ee60560()
+{
+ extern Class_Descriptor cd_ee60560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60560, buf);
+ ee60560 *dp, &lv = *(dp=new (buf) ee60560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee60560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(24,16), "ee60560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), 0, "ee60560");
+ check_base_class_offset(lv, (dd0560*), 0, "ee60560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60560.e");
+ test_class_info(&lv, &cd_ee60560);
+ dp->~ee60560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60560(Test_ee60560, "ee60560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60560C1Ev();
+extern void _ZN7ee60560D1Ev();
+Name_Map name_map_ee60560[] = {
+ NSPAIR(_ZN7ee60560C1Ev),
+ NSPAIR(_ZN7ee60560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee60560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60560[];
+extern void _ZN7ee605603barEv();
+extern void _ZN7ee605603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605603barEv,_ZTv0_n12_N7ee605603barEv)();
+extern void ABISELECT(_ZThn24_N7ee605603barEv,_ZThn16_N7ee605603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605603fooEv,_ZTv0_n16_N7ee605603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605603fooEv,_ZThn16_N7ee605603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60560[0]),
+ (VTBL_ENTRY)&_ZN7ee605603barEv,
+ (VTBL_ENTRY)&_ZN7ee605603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605603barEv,_ZTv0_n12_N7ee605603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605603fooEv,_ZTv0_n16_N7ee605603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee60560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee60560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee60560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee60560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee60560[] = {
+ {&(_ZTV7ee60560[3]), 3,11},
+ {&(_tg__ZTV6dd0560__7ee60560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee60560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee60560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee60560[4]), 4,6},
+ {&(_ZTV7ee60560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60560[];
+extern VTBL_ENTRY _ZTV7ee60560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60560[];
+static VTBL_ENTRY alt_thunk_names283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605603fooEv,_ZTv0_n16_N7ee605603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605603fooEv,_ZThn16_N7ee605603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605603barEv,_ZTv0_n12_N7ee605603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605603barEv,_ZThn16_N7ee605603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60560 = { "ee60560", // class name
+ bases_ee60560, 4,
+ &(vtc_ee60560[0]), // expected_vtbl_contents
+ &(vtt_ee60560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60560),6, //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 ee70560 : virtual dd0560 {
+ int e;
+ virtual void foo(); // _ZN7ee705603fooEv
+ virtual void bar(); // _ZN7ee705603barEv
+ ~ee70560(); // tgen
+ ee70560(); // tgen
+};
+//SIG(1 ee70560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70560 ::foo(){vfunc_called(this, "_ZN7ee705603fooEv");}
+void ee70560 ::bar(){vfunc_called(this, "_ZN7ee705603barEv");}
+ee70560 ::~ee70560(){ note_dtor("ee70560", this);} // tgen
+ee70560 ::ee70560(){ note_ctor("ee70560", this);} // tgen
+
+static void Test_ee70560()
+{
+ extern Class_Descriptor cd_ee70560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70560, buf);
+ ee70560 *dp, &lv = *(dp=new (buf) ee70560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee70560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd0560*), ABISELECT(32,20), "ee70560");
+ check_base_class_offset(lv, (cc560*)(dd0560*), ABISELECT(16,8), "ee70560");
+ check_base_class_offset(lv, (dd0560*), ABISELECT(16,8), "ee70560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70560.e");
+ test_class_info(&lv, &cd_ee70560);
+ dp->~ee70560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70560(Test_ee70560, "ee70560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70560C1Ev();
+extern void _ZN7ee70560D1Ev();
+Name_Map name_map_ee70560[] = {
+ NSPAIR(_ZN7ee70560C1Ev),
+ NSPAIR(_ZN7ee70560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd0560;
+extern VTBL_ENTRY _ZTI6dd0560[];
+extern VTBL_ENTRY _ZTV6dd0560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0560[];
+static Base_Class bases_ee70560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0560, 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 _ZTI7ee70560[];
+extern void _ZN7ee705603fooEv();
+extern void _ZN7ee705603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705603barEv,_ZTv0_n16_N7ee705603barEv)();
+extern void ABISELECT(_ZThn16_N7ee705603barEv,_ZThn8_N7ee705603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705603barEv,_ZTv0_n12_N7ee705603barEv)();
+extern void ABISELECT(_ZThn32_N7ee705603barEv,_ZThn20_N7ee705603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705603fooEv,_ZTv0_n16_N7ee705603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705603fooEv,_ZThn20_N7ee705603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70560[0]),
+ (VTBL_ENTRY)&_ZN7ee705603fooEv,
+ (VTBL_ENTRY)&_ZN7ee705603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705603barEv,_ZTv0_n16_N7ee705603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705603barEv,_ZTv0_n12_N7ee705603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705603fooEv,_ZTv0_n16_N7ee705603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0560__7ee70560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd0560__7ee70560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd0560__7ee70560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0560__7ee70560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee70560[] = {
+ {&(_ZTV7ee70560[4]), 4,17},
+ {&(_ZTV7ee70560[10]), 10,17},
+ {&(_ZTV7ee70560[15]), 15,17},
+ {&(_tg__ZTV6dd0560__7ee70560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd0560__7ee70560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd0560__7ee70560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0560__7ee70560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70560[];
+extern VTBL_ENTRY _ZTV7ee70560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70560[];
+static VTBL_ENTRY alt_thunk_names284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705603fooEv,_ZTv0_n16_N7ee705603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705603fooEv,_ZThn20_N7ee705603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705603barEv,_ZTv0_n12_N7ee705603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705603barEv,_ZThn20_N7ee705603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705603barEv,_ZTv0_n16_N7ee705603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705603barEv,_ZThn8_N7ee705603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70560 = { "ee70560", // class name
+ bases_ee70560, 4,
+ &(vtc_ee70560[0]), // expected_vtbl_contents
+ &(vtt_ee70560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70560),7, //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 dd1560 : virtual cc560 {
+ int d;
+ ~dd1560(); // tgen
+ dd1560(); // tgen
+};
+//SIG(-1 dd1560) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1560 ::~dd1560(){ note_dtor("dd1560", this);} // tgen
+dd1560 ::dd1560(){ note_ctor("dd1560", this);} // tgen
+
+static void Test_dd1560()
+{
+ extern Class_Descriptor cd_dd1560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1560, buf);
+ dd1560 *dp, &lv = *(dp=new (buf) dd1560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd1560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,16), "dd1560");
+ check_base_class_offset(lv, (cc560*), ABISELECT(16,8), "dd1560");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1560.d");
+ test_class_info(&lv, &cd_dd1560);
+ dp->~dd1560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1560(Test_dd1560, "dd1560", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1560C1Ev();
+extern void _ZN6dd1560D1Ev();
+Name_Map name_map_dd1560[] = {
+ NSPAIR(_ZN6dd1560C1Ev),
+ NSPAIR(_ZN6dd1560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd1560[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(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 _ZTI6dd1560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd1560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd1560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd1560[] = {
+ {&(_ZTV6dd1560[4]), 4,15},
+ {&(_ZTV6dd1560[8]), 8,15},
+ {&(_ZTV6dd1560[13]), 13,15},
+ {&(_tg__ZTV5cc560__6dd1560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd1560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static VTBL_ENTRY alt_thunk_names285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1560 = { "dd1560", // class name
+ bases_dd1560, 3,
+ &(vtc_dd1560[0]), // expected_vtbl_contents
+ &(vtt_dd1560[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1560),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1560),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01560 : dd1560 {
+ int e;
+ ~ee01560(); // tgen
+ ee01560(); // tgen
+};
+//SIG(1 ee01560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01560 ::~ee01560(){ note_dtor("ee01560", this);} // tgen
+ee01560 ::ee01560(){ note_ctor("ee01560", this);} // tgen
+
+static void Test_ee01560()
+{
+ extern Class_Descriptor cd_ee01560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01560, buf);
+ ee01560 *dp, &lv = *(dp=new (buf) ee01560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee01560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee01560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(16,12), "ee01560");
+ check_base_class_offset(lv, (dd1560*), 0, "ee01560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01560.e");
+ test_class_info(&lv, &cd_ee01560);
+ dp->~ee01560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01560(Test_ee01560, "ee01560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01560C1Ev();
+extern void _ZN7ee01560D1Ev();
+Name_Map name_map_ee01560[] = {
+ NSPAIR(_ZN7ee01560C1Ev),
+ NSPAIR(_ZN7ee01560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee01560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee01560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01560[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee01560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee01560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee01560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee01560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee01560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee01560[] = {
+ {&(_ZTV7ee01560[4]), 4,15},
+ {&(_tg__ZTV6dd1560__7ee01560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee01560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee01560[4]), 4,6},
+ {&(_ZTV7ee01560[8]), 8,15},
+ {&(_ZTV7ee01560[13]), 13,15},
+ {&(_tg__ZTV5cc560__7ee01560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee01560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01560[];
+extern VTBL_ENTRY _ZTV7ee01560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01560[];
+static VTBL_ENTRY alt_thunk_names286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01560 = { "ee01560", // class name
+ bases_ee01560, 4,
+ &(vtc_ee01560[0]), // expected_vtbl_contents
+ &(vtt_ee01560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01560),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01560),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 ee11560 : virtual dd1560 {
+ int e;
+ ~ee11560(); // tgen
+ ee11560(); // tgen
+};
+//SIG(1 ee11560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11560 ::~ee11560(){ note_dtor("ee11560", this);} // tgen
+ee11560 ::ee11560(){ note_ctor("ee11560", this);} // tgen
+
+static void Test_ee11560()
+{
+ extern Class_Descriptor cd_ee11560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11560, buf);
+ ee11560 *dp, &lv = *(dp=new (buf) ee11560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee11560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee11560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(32,16), "ee11560");
+ check_base_class_offset(lv, (dd1560*), ABISELECT(16,8), "ee11560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11560.e");
+ test_class_info(&lv, &cd_ee11560);
+ dp->~ee11560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11560(Test_ee11560, "ee11560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11560C1Ev();
+extern void _ZN7ee11560D1Ev();
+Name_Map name_map_ee11560[] = {
+ NSPAIR(_ZN7ee11560C1Ev),
+ NSPAIR(_ZN7ee11560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee11560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, ABISELECT(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 _ZTI7ee11560[];
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee11560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11560[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11560[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee11560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee11560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee11560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee11560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee11560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee11560[] = {
+ {&(_ZTV7ee11560[5]), 5,20},
+ {&(_ZTV7ee11560[9]), 9,20},
+ {&(_ZTV7ee11560[13]), 13,20},
+ {&(_ZTV7ee11560[18]), 18,20},
+ {&(_tg__ZTV6dd1560__7ee11560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee11560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee11560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee11560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee11560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11560[];
+extern VTBL_ENTRY _ZTV7ee11560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11560[];
+static VTBL_ENTRY alt_thunk_names287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11560 = { "ee11560", // class name
+ bases_ee11560, 4,
+ &(vtc_ee11560[0]), // expected_vtbl_contents
+ &(vtt_ee11560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11560),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11560),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 ee21560 : dd1560 {
+ int e;
+ virtual void foo(); // _ZN7ee215603fooEv
+ ~ee21560(); // tgen
+ ee21560(); // tgen
+};
+//SIG(1 ee21560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21560 ::foo(){vfunc_called(this, "_ZN7ee215603fooEv");}
+ee21560 ::~ee21560(){ note_dtor("ee21560", this);} // tgen
+ee21560 ::ee21560(){ note_ctor("ee21560", this);} // tgen
+
+static void Test_ee21560()
+{
+ extern Class_Descriptor cd_ee21560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21560, buf);
+ ee21560 *dp, &lv = *(dp=new (buf) ee21560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee21560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee21560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(16,12), "ee21560");
+ check_base_class_offset(lv, (dd1560*), 0, "ee21560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21560.e");
+ test_class_info(&lv, &cd_ee21560);
+ dp->~ee21560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21560(Test_ee21560, "ee21560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21560C1Ev();
+extern void _ZN7ee21560D1Ev();
+Name_Map name_map_ee21560[] = {
+ NSPAIR(_ZN7ee21560C1Ev),
+ NSPAIR(_ZN7ee21560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee21560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21560[];
+extern void _ZN7ee215603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee215603fooEv,_ZTv0_n16_N7ee215603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215603fooEv,_ZThn20_N7ee215603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21560[0]),
+ (VTBL_ENTRY)&_ZN7ee215603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee215603fooEv,_ZTv0_n16_N7ee215603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee21560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee21560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee21560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee21560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee21560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee21560[] = {
+ {&(_ZTV7ee21560[4]), 4,16},
+ {&(_tg__ZTV6dd1560__7ee21560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee21560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee21560[4]), 4,6},
+ {&(_ZTV7ee21560[9]), 9,16},
+ {&(_ZTV7ee21560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee21560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee21560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21560[];
+extern VTBL_ENTRY _ZTV7ee21560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21560[];
+static VTBL_ENTRY alt_thunk_names288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee215603fooEv,_ZTv0_n16_N7ee215603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215603fooEv,_ZThn20_N7ee215603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21560 = { "ee21560", // class name
+ bases_ee21560, 4,
+ &(vtc_ee21560[0]), // expected_vtbl_contents
+ &(vtt_ee21560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21560),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 ee31560 : virtual dd1560 {
+ int e;
+ virtual void foo(); // _ZN7ee315603fooEv
+ ~ee31560(); // tgen
+ ee31560(); // tgen
+};
+//SIG(1 ee31560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31560 ::foo(){vfunc_called(this, "_ZN7ee315603fooEv");}
+ee31560 ::~ee31560(){ note_dtor("ee31560", this);} // tgen
+ee31560 ::ee31560(){ note_ctor("ee31560", this);} // tgen
+
+static void Test_ee31560()
+{
+ extern Class_Descriptor cd_ee31560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31560, buf);
+ ee31560 *dp, &lv = *(dp=new (buf) ee31560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee31560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee31560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(32,16), "ee31560");
+ check_base_class_offset(lv, (dd1560*), ABISELECT(16,8), "ee31560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31560.e");
+ test_class_info(&lv, &cd_ee31560);
+ dp->~ee31560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31560(Test_ee31560, "ee31560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31560C1Ev();
+extern void _ZN7ee31560D1Ev();
+Name_Map name_map_ee31560[] = {
+ NSPAIR(_ZN7ee31560C1Ev),
+ NSPAIR(_ZN7ee31560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee31560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 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 _ZTI7ee31560[];
+extern void _ZN7ee315603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee315603fooEv,_ZTv0_n16_N7ee315603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315603fooEv,_ZThn24_N7ee315603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31560[0]),
+ (VTBL_ENTRY)&_ZN7ee315603fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31560[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee315603fooEv,_ZTv0_n16_N7ee315603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee31560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee31560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee31560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee31560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee31560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee31560[] = {
+ {&(_ZTV7ee31560[5]), 5,21},
+ {&(_ZTV7ee31560[10]), 10,21},
+ {&(_ZTV7ee31560[14]), 14,21},
+ {&(_ZTV7ee31560[19]), 19,21},
+ {&(_tg__ZTV6dd1560__7ee31560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee31560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee31560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee31560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee31560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31560[];
+extern VTBL_ENTRY _ZTV7ee31560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31560[];
+static VTBL_ENTRY alt_thunk_names289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee315603fooEv,_ZTv0_n16_N7ee315603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315603fooEv,_ZThn24_N7ee315603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31560 = { "ee31560", // class name
+ bases_ee31560, 4,
+ &(vtc_ee31560[0]), // expected_vtbl_contents
+ &(vtt_ee31560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31560),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31560),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 ee41560 : dd1560 {
+ int e;
+ virtual void bar(); // _ZN7ee415603barEv
+ ~ee41560(); // tgen
+ ee41560(); // tgen
+};
+//SIG(1 ee41560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41560 ::bar(){vfunc_called(this, "_ZN7ee415603barEv");}
+ee41560 ::~ee41560(){ note_dtor("ee41560", this);} // tgen
+ee41560 ::ee41560(){ note_ctor("ee41560", this);} // tgen
+
+static void Test_ee41560()
+{
+ extern Class_Descriptor cd_ee41560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41560, buf);
+ ee41560 *dp, &lv = *(dp=new (buf) ee41560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee41560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee41560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(16,12), "ee41560");
+ check_base_class_offset(lv, (dd1560*), 0, "ee41560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41560.e");
+ test_class_info(&lv, &cd_ee41560);
+ dp->~ee41560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41560(Test_ee41560, "ee41560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41560C1Ev();
+extern void _ZN7ee41560D1Ev();
+Name_Map name_map_ee41560[] = {
+ NSPAIR(_ZN7ee41560C1Ev),
+ NSPAIR(_ZN7ee41560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee41560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41560[];
+extern void _ZN7ee415603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415603barEv,_ZTv0_n16_N7ee415603barEv)();
+extern void ABISELECT(_ZThn16_N7ee415603barEv,_ZThn12_N7ee415603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee415603barEv,_ZTv0_n12_N7ee415603barEv)();
+extern void ABISELECT(_ZThn32_N7ee415603barEv,_ZThn20_N7ee415603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee41560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41560[0]),
+ (VTBL_ENTRY)&_ZN7ee415603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415603barEv,_ZTv0_n16_N7ee415603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee415603barEv,_ZTv0_n12_N7ee415603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee41560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee41560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee41560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee41560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee41560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee41560[] = {
+ {&(_ZTV7ee41560[4]), 4,16},
+ {&(_tg__ZTV6dd1560__7ee41560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee41560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee41560[4]), 4,6},
+ {&(_ZTV7ee41560[9]), 9,16},
+ {&(_ZTV7ee41560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee41560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee41560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41560[];
+extern VTBL_ENTRY _ZTV7ee41560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41560[];
+static VTBL_ENTRY alt_thunk_names290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee415603barEv,_ZTv0_n12_N7ee415603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415603barEv,_ZThn20_N7ee415603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415603barEv,_ZTv0_n16_N7ee415603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415603barEv,_ZThn12_N7ee415603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41560 = { "ee41560", // class name
+ bases_ee41560, 4,
+ &(vtc_ee41560[0]), // expected_vtbl_contents
+ &(vtt_ee41560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41560),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51560 : virtual dd1560 {
+ int e;
+ virtual void bar(); // _ZN7ee515603barEv
+ ~ee51560(); // tgen
+ ee51560(); // tgen
+};
+//SIG(1 ee51560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51560 ::bar(){vfunc_called(this, "_ZN7ee515603barEv");}
+ee51560 ::~ee51560(){ note_dtor("ee51560", this);} // tgen
+ee51560 ::ee51560(){ note_ctor("ee51560", this);} // tgen
+
+static void Test_ee51560()
+{
+ extern Class_Descriptor cd_ee51560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51560, buf);
+ ee51560 *dp, &lv = *(dp=new (buf) ee51560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee51560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee51560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(32,16), "ee51560");
+ check_base_class_offset(lv, (dd1560*), ABISELECT(16,8), "ee51560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51560.e");
+ test_class_info(&lv, &cd_ee51560);
+ dp->~ee51560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51560(Test_ee51560, "ee51560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51560C1Ev();
+extern void _ZN7ee51560D1Ev();
+Name_Map name_map_ee51560[] = {
+ NSPAIR(_ZN7ee51560C1Ev),
+ NSPAIR(_ZN7ee51560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee51560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 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 _ZTI7ee51560[];
+extern void _ZN7ee515603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515603barEv,_ZTv0_n16_N7ee515603barEv)();
+extern void ABISELECT(_ZThn32_N7ee515603barEv,_ZThn16_N7ee515603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee515603barEv,_ZTv0_n12_N7ee515603barEv)();
+extern void ABISELECT(_ZThn48_N7ee515603barEv,_ZThn24_N7ee515603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee51560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51560[0]),
+ (VTBL_ENTRY)&_ZN7ee515603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51560[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515603barEv,_ZTv0_n16_N7ee515603barEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee515603barEv,_ZTv0_n12_N7ee515603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee51560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee51560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee51560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee51560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee51560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee51560[] = {
+ {&(_ZTV7ee51560[5]), 5,21},
+ {&(_ZTV7ee51560[10]), 10,21},
+ {&(_ZTV7ee51560[14]), 14,21},
+ {&(_ZTV7ee51560[19]), 19,21},
+ {&(_tg__ZTV6dd1560__7ee51560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee51560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee51560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee51560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee51560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51560[];
+extern VTBL_ENTRY _ZTV7ee51560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51560[];
+static VTBL_ENTRY alt_thunk_names291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee515603barEv,_ZTv0_n12_N7ee515603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515603barEv,_ZThn24_N7ee515603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515603barEv,_ZTv0_n16_N7ee515603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515603barEv,_ZThn16_N7ee515603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51560 = { "ee51560", // class name
+ bases_ee51560, 4,
+ &(vtc_ee51560[0]), // expected_vtbl_contents
+ &(vtt_ee51560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51560),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51560),9, //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 ee61560 : dd1560 {
+ int e;
+ virtual void foo(); // _ZN7ee615603fooEv
+ virtual void bar(); // _ZN7ee615603barEv
+ ~ee61560(); // tgen
+ ee61560(); // tgen
+};
+//SIG(1 ee61560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61560 ::foo(){vfunc_called(this, "_ZN7ee615603fooEv");}
+void ee61560 ::bar(){vfunc_called(this, "_ZN7ee615603barEv");}
+ee61560 ::~ee61560(){ note_dtor("ee61560", this);} // tgen
+ee61560 ::ee61560(){ note_ctor("ee61560", this);} // tgen
+
+static void Test_ee61560()
+{
+ extern Class_Descriptor cd_ee61560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61560, buf);
+ ee61560 *dp, &lv = *(dp=new (buf) ee61560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee61560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee61560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(16,12), "ee61560");
+ check_base_class_offset(lv, (dd1560*), 0, "ee61560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61560.e");
+ test_class_info(&lv, &cd_ee61560);
+ dp->~ee61560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61560(Test_ee61560, "ee61560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61560C1Ev();
+extern void _ZN7ee61560D1Ev();
+Name_Map name_map_ee61560[] = {
+ NSPAIR(_ZN7ee61560C1Ev),
+ NSPAIR(_ZN7ee61560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee61560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61560[];
+extern void _ZN7ee615603fooEv();
+extern void _ZN7ee615603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615603barEv,_ZTv0_n16_N7ee615603barEv)();
+extern void ABISELECT(_ZThn16_N7ee615603barEv,_ZThn12_N7ee615603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615603barEv,_ZTv0_n12_N7ee615603barEv)();
+extern void ABISELECT(_ZThn32_N7ee615603barEv,_ZThn20_N7ee615603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615603fooEv,_ZTv0_n16_N7ee615603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615603fooEv,_ZThn20_N7ee615603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61560[0]),
+ (VTBL_ENTRY)&_ZN7ee615603fooEv,
+ (VTBL_ENTRY)&_ZN7ee615603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615603barEv,_ZTv0_n16_N7ee615603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615603barEv,_ZTv0_n12_N7ee615603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615603fooEv,_ZTv0_n16_N7ee615603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee61560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee61560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee61560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee61560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee61560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee61560[] = {
+ {&(_ZTV7ee61560[4]), 4,17},
+ {&(_tg__ZTV6dd1560__7ee61560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee61560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee61560[4]), 4,6},
+ {&(_ZTV7ee61560[10]), 10,17},
+ {&(_ZTV7ee61560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee61560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee61560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61560[];
+extern VTBL_ENTRY _ZTV7ee61560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61560[];
+static VTBL_ENTRY alt_thunk_names292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615603fooEv,_ZTv0_n16_N7ee615603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615603fooEv,_ZThn20_N7ee615603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615603barEv,_ZTv0_n12_N7ee615603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615603barEv,_ZThn20_N7ee615603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615603barEv,_ZTv0_n16_N7ee615603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615603barEv,_ZThn12_N7ee615603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61560 = { "ee61560", // class name
+ bases_ee61560, 4,
+ &(vtc_ee61560[0]), // expected_vtbl_contents
+ &(vtt_ee61560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61560),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71560 : virtual dd1560 {
+ int e;
+ virtual void foo(); // _ZN7ee715603fooEv
+ virtual void bar(); // _ZN7ee715603barEv
+ ~ee71560(); // tgen
+ ee71560(); // tgen
+};
+//SIG(1 ee71560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71560 ::foo(){vfunc_called(this, "_ZN7ee715603fooEv");}
+void ee71560 ::bar(){vfunc_called(this, "_ZN7ee715603barEv");}
+ee71560 ::~ee71560(){ note_dtor("ee71560", this);} // tgen
+ee71560 ::ee71560(){ note_ctor("ee71560", this);} // tgen
+
+static void Test_ee71560()
+{
+ extern Class_Descriptor cd_ee71560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71560, buf);
+ ee71560 *dp, &lv = *(dp=new (buf) ee71560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee71560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee71560");
+ check_base_class_offset(lv, (cc560*)(dd1560*), ABISELECT(32,16), "ee71560");
+ check_base_class_offset(lv, (dd1560*), ABISELECT(16,8), "ee71560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71560.e");
+ test_class_info(&lv, &cd_ee71560);
+ dp->~ee71560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71560(Test_ee71560, "ee71560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71560C1Ev();
+extern void _ZN7ee71560D1Ev();
+Name_Map name_map_ee71560[] = {
+ NSPAIR(_ZN7ee71560C1Ev),
+ NSPAIR(_ZN7ee71560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd1560;
+extern VTBL_ENTRY _ZTI6dd1560[];
+extern VTBL_ENTRY _ZTV6dd1560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1560[];
+static Base_Class bases_ee71560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd1560, 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 _ZTI7ee71560[];
+extern void _ZN7ee715603fooEv();
+extern void _ZN7ee715603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715603barEv,_ZTv0_n16_N7ee715603barEv)();
+extern void ABISELECT(_ZThn32_N7ee715603barEv,_ZThn16_N7ee715603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715603barEv,_ZTv0_n12_N7ee715603barEv)();
+extern void ABISELECT(_ZThn48_N7ee715603barEv,_ZThn24_N7ee715603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715603fooEv,_ZTv0_n16_N7ee715603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715603fooEv,_ZThn24_N7ee715603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71560[0]),
+ (VTBL_ENTRY)&_ZN7ee715603fooEv,
+ (VTBL_ENTRY)&_ZN7ee715603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71560[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715603barEv,_ZTv0_n16_N7ee715603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715603barEv,_ZTv0_n12_N7ee715603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715603fooEv,_ZTv0_n16_N7ee715603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71560[];
+static VTBL_ENTRY _tg__ZTV6dd1560__7ee71560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd1560__7ee71560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1560__7ee71560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee71560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee71560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee71560[] = {
+ {&(_ZTV7ee71560[5]), 5,22},
+ {&(_ZTV7ee71560[11]), 11,22},
+ {&(_ZTV7ee71560[15]), 15,22},
+ {&(_ZTV7ee71560[20]), 20,22},
+ {&(_tg__ZTV6dd1560__7ee71560[4]), 4,4},
+ {&(_tg__ZTV5cc560__6dd1560__7ee71560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd1560__7ee71560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee71560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee71560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71560[];
+extern VTBL_ENTRY _ZTV7ee71560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71560[];
+static VTBL_ENTRY alt_thunk_names293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715603fooEv,_ZTv0_n16_N7ee715603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715603fooEv,_ZThn24_N7ee715603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715603barEv,_ZTv0_n12_N7ee715603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715603barEv,_ZThn24_N7ee715603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715603barEv,_ZTv0_n16_N7ee715603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715603barEv,_ZThn16_N7ee715603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71560 = { "ee71560", // class name
+ bases_ee71560, 4,
+ &(vtc_ee71560[0]), // expected_vtbl_contents
+ &(vtt_ee71560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71560),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71560),9, //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 dd2560 : cc560 {
+ int d;
+ virtual void foo(); // _ZN6dd25603fooEv
+ ~dd2560(); // tgen
+ dd2560(); // tgen
+};
+//SIG(-1 dd2560) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2560 ::foo(){vfunc_called(this, "_ZN6dd25603fooEv");}
+dd2560 ::~dd2560(){ note_dtor("dd2560", this);} // tgen
+dd2560 ::dd2560(){ note_ctor("dd2560", this);} // tgen
+
+static void Test_dd2560()
+{
+ extern Class_Descriptor cd_dd2560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2560, buf);
+ dd2560 *dp, &lv = *(dp=new (buf) dd2560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd2560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(16,12), "dd2560");
+ check_base_class_offset(lv, (cc560*), 0, "dd2560");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2560.d");
+ test_class_info(&lv, &cd_dd2560);
+ dp->~dd2560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2560(Test_dd2560, "dd2560", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2560C1Ev();
+extern void _ZN6dd2560D1Ev();
+Name_Map name_map_dd2560[] = {
+ NSPAIR(_ZN6dd2560C1Ev),
+ NSPAIR(_ZN6dd2560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd2560[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd2560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd2560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd2560[] = {
+ {&(_ZTV6dd2560[3]), 3,11},
+ {&(_tg__ZTV5cc560__6dd2560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd2560[4]), 4,6},
+ {&(_ZTV6dd2560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static VTBL_ENTRY alt_thunk_names294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2560 = { "dd2560", // class name
+ bases_dd2560, 3,
+ &(vtc_dd2560[0]), // expected_vtbl_contents
+ &(vtt_dd2560[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2560),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02560 : dd2560 {
+ int e;
+ ~ee02560(); // tgen
+ ee02560(); // tgen
+};
+//SIG(1 ee02560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02560 ::~ee02560(){ note_dtor("ee02560", this);} // tgen
+ee02560 ::ee02560(){ note_ctor("ee02560", this);} // tgen
+
+static void Test_ee02560()
+{
+ extern Class_Descriptor cd_ee02560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02560, buf);
+ ee02560 *dp, &lv = *(dp=new (buf) ee02560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee02560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(24,16), "ee02560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), 0, "ee02560");
+ check_base_class_offset(lv, (dd2560*), 0, "ee02560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02560.e");
+ test_class_info(&lv, &cd_ee02560);
+ dp->~ee02560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02560(Test_ee02560, "ee02560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02560C1Ev();
+extern void _ZN7ee02560D1Ev();
+Name_Map name_map_ee02560[] = {
+ NSPAIR(_ZN7ee02560C1Ev),
+ NSPAIR(_ZN7ee02560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee02560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee02560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee02560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee02560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee02560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee02560[] = {
+ {&(_ZTV7ee02560[3]), 3,11},
+ {&(_tg__ZTV6dd2560__7ee02560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee02560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee02560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee02560[4]), 4,6},
+ {&(_ZTV7ee02560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02560[];
+extern VTBL_ENTRY _ZTV7ee02560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02560[];
+static VTBL_ENTRY alt_thunk_names295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02560 = { "ee02560", // class name
+ bases_ee02560, 4,
+ &(vtc_ee02560[0]), // expected_vtbl_contents
+ &(vtt_ee02560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02560),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 ee12560 : virtual dd2560 {
+ int e;
+ ~ee12560(); // tgen
+ ee12560(); // tgen
+};
+//SIG(1 ee12560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12560 ::~ee12560(){ note_dtor("ee12560", this);} // tgen
+ee12560 ::ee12560(){ note_ctor("ee12560", this);} // tgen
+
+static void Test_ee12560()
+{
+ extern Class_Descriptor cd_ee12560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12560, buf);
+ ee12560 *dp, &lv = *(dp=new (buf) ee12560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee12560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(32,20), "ee12560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), ABISELECT(16,8), "ee12560");
+ check_base_class_offset(lv, (dd2560*), ABISELECT(16,8), "ee12560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12560.e");
+ test_class_info(&lv, &cd_ee12560);
+ dp->~ee12560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12560(Test_ee12560, "ee12560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12560C1Ev();
+extern void _ZN7ee12560D1Ev();
+Name_Map name_map_ee12560[] = {
+ NSPAIR(_ZN7ee12560C1Ev),
+ NSPAIR(_ZN7ee12560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee12560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, 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 _ZTI7ee12560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12560[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee12560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee12560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee12560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee12560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee12560[] = {
+ {&(_ZTV7ee12560[4]), 4,17},
+ {&(_ZTV7ee12560[9]), 9,17},
+ {&(_ZTV7ee12560[15]), 15,17},
+ {&(_tg__ZTV6dd2560__7ee12560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee12560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee12560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee12560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12560[];
+extern VTBL_ENTRY _ZTV7ee12560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12560[];
+static VTBL_ENTRY alt_thunk_names296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12560 = { "ee12560", // class name
+ bases_ee12560, 4,
+ &(vtc_ee12560[0]), // expected_vtbl_contents
+ &(vtt_ee12560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12560),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 ee22560 : dd2560 {
+ int e;
+ virtual void foo(); // _ZN7ee225603fooEv
+ ~ee22560(); // tgen
+ ee22560(); // tgen
+};
+//SIG(1 ee22560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22560 ::foo(){vfunc_called(this, "_ZN7ee225603fooEv");}
+ee22560 ::~ee22560(){ note_dtor("ee22560", this);} // tgen
+ee22560 ::ee22560(){ note_ctor("ee22560", this);} // tgen
+
+static void Test_ee22560()
+{
+ extern Class_Descriptor cd_ee22560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22560, buf);
+ ee22560 *dp, &lv = *(dp=new (buf) ee22560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee22560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(24,16), "ee22560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), 0, "ee22560");
+ check_base_class_offset(lv, (dd2560*), 0, "ee22560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22560.e");
+ test_class_info(&lv, &cd_ee22560);
+ dp->~ee22560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22560(Test_ee22560, "ee22560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22560C1Ev();
+extern void _ZN7ee22560D1Ev();
+Name_Map name_map_ee22560[] = {
+ NSPAIR(_ZN7ee22560C1Ev),
+ NSPAIR(_ZN7ee22560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee22560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN7ee225603fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee225603fooEv,_ZTv0_n16_N7ee225603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225603fooEv,_ZThn16_N7ee225603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN7ee225603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee225603fooEv,_ZTv0_n16_N7ee225603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee22560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee22560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee22560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee22560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee22560[] = {
+ {&(_ZTV7ee22560[3]), 3,11},
+ {&(_tg__ZTV6dd2560__7ee22560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee22560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee22560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee22560[4]), 4,6},
+ {&(_ZTV7ee22560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22560[];
+extern VTBL_ENTRY _ZTV7ee22560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22560[];
+static VTBL_ENTRY alt_thunk_names297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee225603fooEv,_ZTv0_n16_N7ee225603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225603fooEv,_ZThn16_N7ee225603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22560 = { "ee22560", // class name
+ bases_ee22560, 4,
+ &(vtc_ee22560[0]), // expected_vtbl_contents
+ &(vtt_ee22560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22560),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 ee32560 : virtual dd2560 {
+ int e;
+ virtual void foo(); // _ZN7ee325603fooEv
+ ~ee32560(); // tgen
+ ee32560(); // tgen
+};
+//SIG(1 ee32560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32560 ::foo(){vfunc_called(this, "_ZN7ee325603fooEv");}
+ee32560 ::~ee32560(){ note_dtor("ee32560", this);} // tgen
+ee32560 ::ee32560(){ note_ctor("ee32560", this);} // tgen
+
+static void Test_ee32560()
+{
+ extern Class_Descriptor cd_ee32560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32560, buf);
+ ee32560 *dp, &lv = *(dp=new (buf) ee32560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee32560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(32,20), "ee32560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), ABISELECT(16,8), "ee32560");
+ check_base_class_offset(lv, (dd2560*), ABISELECT(16,8), "ee32560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32560.e");
+ test_class_info(&lv, &cd_ee32560);
+ dp->~ee32560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32560(Test_ee32560, "ee32560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32560C1Ev();
+extern void _ZN7ee32560D1Ev();
+Name_Map name_map_ee32560[] = {
+ NSPAIR(_ZN7ee32560C1Ev),
+ NSPAIR(_ZN7ee32560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee32560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, ABISELECT(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 _ZTI7ee32560[];
+extern void _ZN7ee325603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325603fooEv,_ZTv0_n20_N7ee325603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325603fooEv,_ZThn8_N7ee325603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee325603fooEv,_ZTv0_n16_N7ee325603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325603fooEv,_ZThn20_N7ee325603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32560[0]),
+ (VTBL_ENTRY)&_ZN7ee325603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325603fooEv,_ZTv0_n20_N7ee325603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee325603fooEv,_ZTv0_n16_N7ee325603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee32560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee32560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee32560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee32560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee32560[] = {
+ {&(_ZTV7ee32560[4]), 4,18},
+ {&(_ZTV7ee32560[10]), 10,18},
+ {&(_ZTV7ee32560[16]), 16,18},
+ {&(_tg__ZTV6dd2560__7ee32560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee32560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee32560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee32560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32560[];
+extern VTBL_ENTRY _ZTV7ee32560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32560[];
+static VTBL_ENTRY alt_thunk_names298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee325603fooEv,_ZTv0_n16_N7ee325603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325603fooEv,_ZThn20_N7ee325603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325603fooEv,_ZTv0_n20_N7ee325603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325603fooEv,_ZThn8_N7ee325603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32560 = { "ee32560", // class name
+ bases_ee32560, 4,
+ &(vtc_ee32560[0]), // expected_vtbl_contents
+ &(vtt_ee32560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32560),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32560),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 ee42560 : dd2560 {
+ int e;
+ virtual void bar(); // _ZN7ee425603barEv
+ ~ee42560(); // tgen
+ ee42560(); // tgen
+};
+//SIG(1 ee42560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42560 ::bar(){vfunc_called(this, "_ZN7ee425603barEv");}
+ee42560 ::~ee42560(){ note_dtor("ee42560", this);} // tgen
+ee42560 ::ee42560(){ note_ctor("ee42560", this);} // tgen
+
+static void Test_ee42560()
+{
+ extern Class_Descriptor cd_ee42560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42560, buf);
+ ee42560 *dp, &lv = *(dp=new (buf) ee42560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee42560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(24,16), "ee42560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), 0, "ee42560");
+ check_base_class_offset(lv, (dd2560*), 0, "ee42560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42560.e");
+ test_class_info(&lv, &cd_ee42560);
+ dp->~ee42560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42560(Test_ee42560, "ee42560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42560C1Ev();
+extern void _ZN7ee42560D1Ev();
+Name_Map name_map_ee42560[] = {
+ NSPAIR(_ZN7ee42560C1Ev),
+ NSPAIR(_ZN7ee42560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee42560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42560[];
+extern void _ZN7ee425603barEv();
+extern void _ZN6dd25603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee425603barEv,_ZTv0_n12_N7ee425603barEv)();
+extern void ABISELECT(_ZThn24_N7ee425603barEv,_ZThn16_N7ee425603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42560[0]),
+ (VTBL_ENTRY)&_ZN7ee425603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee425603barEv,_ZTv0_n12_N7ee425603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee42560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee42560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee42560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee42560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee42560[] = {
+ {&(_ZTV7ee42560[3]), 3,11},
+ {&(_tg__ZTV6dd2560__7ee42560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee42560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee42560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee42560[4]), 4,6},
+ {&(_ZTV7ee42560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42560[];
+extern VTBL_ENTRY _ZTV7ee42560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42560[];
+static VTBL_ENTRY alt_thunk_names299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee425603barEv,_ZTv0_n12_N7ee425603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425603barEv,_ZThn16_N7ee425603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42560 = { "ee42560", // class name
+ bases_ee42560, 4,
+ &(vtc_ee42560[0]), // expected_vtbl_contents
+ &(vtt_ee42560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52560 : virtual dd2560 {
+ int e;
+ virtual void bar(); // _ZN7ee525603barEv
+ ~ee52560(); // tgen
+ ee52560(); // tgen
+};
+//SIG(1 ee52560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52560 ::bar(){vfunc_called(this, "_ZN7ee525603barEv");}
+ee52560 ::~ee52560(){ note_dtor("ee52560", this);} // tgen
+ee52560 ::ee52560(){ note_ctor("ee52560", this);} // tgen
+
+static void Test_ee52560()
+{
+ extern Class_Descriptor cd_ee52560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52560, buf);
+ ee52560 *dp, &lv = *(dp=new (buf) ee52560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee52560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(32,20), "ee52560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), ABISELECT(16,8), "ee52560");
+ check_base_class_offset(lv, (dd2560*), ABISELECT(16,8), "ee52560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52560.e");
+ test_class_info(&lv, &cd_ee52560);
+ dp->~ee52560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52560(Test_ee52560, "ee52560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52560C1Ev();
+extern void _ZN7ee52560D1Ev();
+Name_Map name_map_ee52560[] = {
+ NSPAIR(_ZN7ee52560C1Ev),
+ NSPAIR(_ZN7ee52560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee52560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, ABISELECT(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 _ZTI7ee52560[];
+extern void _ZN7ee525603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525603barEv,_ZTv0_n16_N7ee525603barEv)();
+extern void ABISELECT(_ZThn16_N7ee525603barEv,_ZThn8_N7ee525603barEv)() __attribute__((weak));
+extern void _ZN6dd25603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee525603barEv,_ZTv0_n12_N7ee525603barEv)();
+extern void ABISELECT(_ZThn32_N7ee525603barEv,_ZThn20_N7ee525603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52560[0]),
+ (VTBL_ENTRY)&_ZN7ee525603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525603barEv,_ZTv0_n16_N7ee525603barEv),
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee525603barEv,_ZTv0_n12_N7ee525603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee52560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee52560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee52560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee52560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee52560[] = {
+ {&(_ZTV7ee52560[4]), 4,18},
+ {&(_ZTV7ee52560[10]), 10,18},
+ {&(_ZTV7ee52560[16]), 16,18},
+ {&(_tg__ZTV6dd2560__7ee52560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee52560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee52560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee52560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52560[];
+extern VTBL_ENTRY _ZTV7ee52560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52560[];
+static VTBL_ENTRY alt_thunk_names300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee525603barEv,_ZTv0_n12_N7ee525603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525603barEv,_ZThn20_N7ee525603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525603barEv,_ZTv0_n16_N7ee525603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525603barEv,_ZThn8_N7ee525603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52560 = { "ee52560", // class name
+ bases_ee52560, 4,
+ &(vtc_ee52560[0]), // expected_vtbl_contents
+ &(vtt_ee52560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52560),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52560),7, //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 ee62560 : dd2560 {
+ int e;
+ virtual void foo(); // _ZN7ee625603fooEv
+ virtual void bar(); // _ZN7ee625603barEv
+ ~ee62560(); // tgen
+ ee62560(); // tgen
+};
+//SIG(1 ee62560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62560 ::foo(){vfunc_called(this, "_ZN7ee625603fooEv");}
+void ee62560 ::bar(){vfunc_called(this, "_ZN7ee625603barEv");}
+ee62560 ::~ee62560(){ note_dtor("ee62560", this);} // tgen
+ee62560 ::ee62560(){ note_ctor("ee62560", this);} // tgen
+
+static void Test_ee62560()
+{
+ extern Class_Descriptor cd_ee62560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62560, buf);
+ ee62560 *dp, &lv = *(dp=new (buf) ee62560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee62560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(24,16), "ee62560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), 0, "ee62560");
+ check_base_class_offset(lv, (dd2560*), 0, "ee62560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62560.e");
+ test_class_info(&lv, &cd_ee62560);
+ dp->~ee62560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62560(Test_ee62560, "ee62560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62560C1Ev();
+extern void _ZN7ee62560D1Ev();
+Name_Map name_map_ee62560[] = {
+ NSPAIR(_ZN7ee62560C1Ev),
+ NSPAIR(_ZN7ee62560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee62560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62560[];
+extern void _ZN7ee625603barEv();
+extern void _ZN7ee625603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625603barEv,_ZTv0_n12_N7ee625603barEv)();
+extern void ABISELECT(_ZThn24_N7ee625603barEv,_ZThn16_N7ee625603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625603fooEv,_ZTv0_n16_N7ee625603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625603fooEv,_ZThn16_N7ee625603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62560[0]),
+ (VTBL_ENTRY)&_ZN7ee625603barEv,
+ (VTBL_ENTRY)&_ZN7ee625603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625603barEv,_ZTv0_n12_N7ee625603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625603fooEv,_ZTv0_n16_N7ee625603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee62560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee62560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee62560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee62560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee62560[] = {
+ {&(_ZTV7ee62560[3]), 3,11},
+ {&(_tg__ZTV6dd2560__7ee62560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee62560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee62560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee62560[4]), 4,6},
+ {&(_ZTV7ee62560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62560[];
+extern VTBL_ENTRY _ZTV7ee62560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62560[];
+static VTBL_ENTRY alt_thunk_names301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25603fooEv,_ZThn16_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625603fooEv,_ZTv0_n16_N7ee625603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625603fooEv,_ZThn16_N7ee625603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625603barEv,_ZTv0_n12_N7ee625603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625603barEv,_ZThn16_N7ee625603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62560 = { "ee62560", // class name
+ bases_ee62560, 4,
+ &(vtc_ee62560[0]), // expected_vtbl_contents
+ &(vtt_ee62560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62560),6, //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 ee72560 : virtual dd2560 {
+ int e;
+ virtual void foo(); // _ZN7ee725603fooEv
+ virtual void bar(); // _ZN7ee725603barEv
+ ~ee72560(); // tgen
+ ee72560(); // tgen
+};
+//SIG(1 ee72560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72560 ::foo(){vfunc_called(this, "_ZN7ee725603fooEv");}
+void ee72560 ::bar(){vfunc_called(this, "_ZN7ee725603barEv");}
+ee72560 ::~ee72560(){ note_dtor("ee72560", this);} // tgen
+ee72560 ::ee72560(){ note_ctor("ee72560", this);} // tgen
+
+static void Test_ee72560()
+{
+ extern Class_Descriptor cd_ee72560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72560, buf);
+ ee72560 *dp, &lv = *(dp=new (buf) ee72560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee72560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd2560*), ABISELECT(32,20), "ee72560");
+ check_base_class_offset(lv, (cc560*)(dd2560*), ABISELECT(16,8), "ee72560");
+ check_base_class_offset(lv, (dd2560*), ABISELECT(16,8), "ee72560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72560.e");
+ test_class_info(&lv, &cd_ee72560);
+ dp->~ee72560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72560(Test_ee72560, "ee72560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72560C1Ev();
+extern void _ZN7ee72560D1Ev();
+Name_Map name_map_ee72560[] = {
+ NSPAIR(_ZN7ee72560C1Ev),
+ NSPAIR(_ZN7ee72560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd2560;
+extern VTBL_ENTRY _ZTI6dd2560[];
+extern VTBL_ENTRY _ZTV6dd2560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2560[];
+static Base_Class bases_ee72560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2560, ABISELECT(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 _ZTI7ee72560[];
+extern void _ZN7ee725603fooEv();
+extern void _ZN7ee725603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725603barEv,_ZTv0_n16_N7ee725603barEv)();
+extern void ABISELECT(_ZThn16_N7ee725603barEv,_ZThn8_N7ee725603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725603fooEv,_ZTv0_n20_N7ee725603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725603fooEv,_ZThn8_N7ee725603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725603barEv,_ZTv0_n12_N7ee725603barEv)();
+extern void ABISELECT(_ZThn32_N7ee725603barEv,_ZThn20_N7ee725603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725603fooEv,_ZTv0_n16_N7ee725603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725603fooEv,_ZThn20_N7ee725603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72560[0]),
+ (VTBL_ENTRY)&_ZN7ee725603fooEv,
+ (VTBL_ENTRY)&_ZN7ee725603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725603barEv,_ZTv0_n16_N7ee725603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725603fooEv,_ZTv0_n20_N7ee725603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725603barEv,_ZTv0_n12_N7ee725603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725603fooEv,_ZTv0_n16_N7ee725603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72560[];
+extern void _ZN5cc5603barEv();
+extern void _ZN6dd25603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2560__7ee72560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ (VTBL_ENTRY)&_ZN6dd25603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd2560__7ee72560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd2560__7ee72560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2560__7ee72560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv),
+};
+static VTT_ENTRY vtt_ee72560[] = {
+ {&(_ZTV7ee72560[4]), 4,19},
+ {&(_ZTV7ee72560[11]), 11,19},
+ {&(_ZTV7ee72560[17]), 17,19},
+ {&(_tg__ZTV6dd2560__7ee72560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd2560__7ee72560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd2560__7ee72560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2560__7ee72560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72560[];
+extern VTBL_ENTRY _ZTV7ee72560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72560[];
+static VTBL_ENTRY alt_thunk_names302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd25603fooEv,_ZTv0_n16_N6dd25603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25603fooEv,_ZThn12_N6dd25603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725603fooEv,_ZTv0_n16_N7ee725603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725603fooEv,_ZThn20_N7ee725603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725603barEv,_ZTv0_n12_N7ee725603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725603barEv,_ZThn20_N7ee725603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725603fooEv,_ZTv0_n20_N7ee725603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725603fooEv,_ZThn8_N7ee725603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725603barEv,_ZTv0_n16_N7ee725603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725603barEv,_ZThn8_N7ee725603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72560 = { "ee72560", // class name
+ bases_ee72560, 4,
+ &(vtc_ee72560[0]), // expected_vtbl_contents
+ &(vtt_ee72560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72560),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72560),7, //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 dd3560 : virtual cc560 {
+ int d;
+ virtual void foo(); // _ZN6dd35603fooEv
+ ~dd3560(); // tgen
+ dd3560(); // tgen
+};
+//SIG(-1 dd3560) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3560 ::foo(){vfunc_called(this, "_ZN6dd35603fooEv");}
+dd3560 ::~dd3560(){ note_dtor("dd3560", this);} // tgen
+dd3560 ::dd3560(){ note_ctor("dd3560", this);} // tgen
+
+static void Test_dd3560()
+{
+ extern Class_Descriptor cd_dd3560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3560, buf);
+ dd3560 *dp, &lv = *(dp=new (buf) dd3560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd3560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,16), "dd3560");
+ check_base_class_offset(lv, (cc560*), ABISELECT(16,8), "dd3560");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3560.d");
+ test_class_info(&lv, &cd_dd3560);
+ dp->~dd3560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3560(Test_dd3560, "dd3560", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3560C1Ev();
+extern void _ZN6dd3560D1Ev();
+Name_Map name_map_dd3560[] = {
+ NSPAIR(_ZN6dd3560C1Ev),
+ NSPAIR(_ZN6dd3560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd3560[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(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 _ZTI6dd3560[];
+extern void _ZN6dd35603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd3560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd3560[] = {
+ {&(_ZTV6dd3560[4]), 4,16},
+ {&(_ZTV6dd3560[9]), 9,16},
+ {&(_ZTV6dd3560[14]), 14,16},
+ {&(_tg__ZTV5cc560__6dd3560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd3560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static VTBL_ENTRY alt_thunk_names303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3560 = { "dd3560", // class name
+ bases_dd3560, 3,
+ &(vtc_dd3560[0]), // expected_vtbl_contents
+ &(vtt_dd3560[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3560),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03560 : dd3560 {
+ int e;
+ ~ee03560(); // tgen
+ ee03560(); // tgen
+};
+//SIG(1 ee03560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03560 ::~ee03560(){ note_dtor("ee03560", this);} // tgen
+ee03560 ::ee03560(){ note_ctor("ee03560", this);} // tgen
+
+static void Test_ee03560()
+{
+ extern Class_Descriptor cd_ee03560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03560, buf);
+ ee03560 *dp, &lv = *(dp=new (buf) ee03560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee03560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee03560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(16,12), "ee03560");
+ check_base_class_offset(lv, (dd3560*), 0, "ee03560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03560.e");
+ test_class_info(&lv, &cd_ee03560);
+ dp->~ee03560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03560(Test_ee03560, "ee03560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03560C1Ev();
+extern void _ZN7ee03560D1Ev();
+Name_Map name_map_ee03560[] = {
+ NSPAIR(_ZN7ee03560C1Ev),
+ NSPAIR(_ZN7ee03560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee03560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03560[];
+extern void _ZN6dd35603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee03560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee03560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee03560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee03560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee03560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee03560[] = {
+ {&(_ZTV7ee03560[4]), 4,16},
+ {&(_tg__ZTV6dd3560__7ee03560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee03560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee03560[4]), 4,6},
+ {&(_ZTV7ee03560[9]), 9,16},
+ {&(_ZTV7ee03560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee03560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee03560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03560[];
+extern VTBL_ENTRY _ZTV7ee03560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03560[];
+static VTBL_ENTRY alt_thunk_names304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03560 = { "ee03560", // class name
+ bases_ee03560, 4,
+ &(vtc_ee03560[0]), // expected_vtbl_contents
+ &(vtt_ee03560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03560),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 ee13560 : virtual dd3560 {
+ int e;
+ ~ee13560(); // tgen
+ ee13560(); // tgen
+};
+//SIG(1 ee13560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13560 ::~ee13560(){ note_dtor("ee13560", this);} // tgen
+ee13560 ::ee13560(){ note_ctor("ee13560", this);} // tgen
+
+static void Test_ee13560()
+{
+ extern Class_Descriptor cd_ee13560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13560, buf);
+ ee13560 *dp, &lv = *(dp=new (buf) ee13560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee13560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee13560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(32,16), "ee13560");
+ check_base_class_offset(lv, (dd3560*), ABISELECT(16,8), "ee13560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13560.e");
+ test_class_info(&lv, &cd_ee13560);
+ dp->~ee13560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13560(Test_ee13560, "ee13560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13560C1Ev();
+extern void _ZN7ee13560D1Ev();
+Name_Map name_map_ee13560[] = {
+ NSPAIR(_ZN7ee13560C1Ev),
+ NSPAIR(_ZN7ee13560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee13560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, ABISELECT(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 _ZTI7ee13560[];
+extern void _ZN6dd35603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13560[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee13560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee13560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee13560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee13560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee13560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee13560[] = {
+ {&(_ZTV7ee13560[5]), 5,22},
+ {&(_ZTV7ee13560[10]), 10,22},
+ {&(_ZTV7ee13560[15]), 15,22},
+ {&(_ZTV7ee13560[20]), 20,22},
+ {&(_tg__ZTV6dd3560__7ee13560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee13560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee13560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee13560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee13560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13560[];
+extern VTBL_ENTRY _ZTV7ee13560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13560[];
+static VTBL_ENTRY alt_thunk_names305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13560 = { "ee13560", // class name
+ bases_ee13560, 4,
+ &(vtc_ee13560[0]), // expected_vtbl_contents
+ &(vtt_ee13560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13560),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13560),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 ee23560 : dd3560 {
+ int e;
+ virtual void foo(); // _ZN7ee235603fooEv
+ ~ee23560(); // tgen
+ ee23560(); // tgen
+};
+//SIG(1 ee23560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23560 ::foo(){vfunc_called(this, "_ZN7ee235603fooEv");}
+ee23560 ::~ee23560(){ note_dtor("ee23560", this);} // tgen
+ee23560 ::ee23560(){ note_ctor("ee23560", this);} // tgen
+
+static void Test_ee23560()
+{
+ extern Class_Descriptor cd_ee23560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23560, buf);
+ ee23560 *dp, &lv = *(dp=new (buf) ee23560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee23560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee23560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(16,12), "ee23560");
+ check_base_class_offset(lv, (dd3560*), 0, "ee23560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23560.e");
+ test_class_info(&lv, &cd_ee23560);
+ dp->~ee23560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23560(Test_ee23560, "ee23560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23560C1Ev();
+extern void _ZN7ee23560D1Ev();
+Name_Map name_map_ee23560[] = {
+ NSPAIR(_ZN7ee23560C1Ev),
+ NSPAIR(_ZN7ee23560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee23560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23560[];
+extern void _ZN7ee235603fooEv();
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee235603fooEv,_ZTv0_n16_N7ee235603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235603fooEv,_ZThn20_N7ee235603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23560[0]),
+ (VTBL_ENTRY)&_ZN7ee235603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee235603fooEv,_ZTv0_n16_N7ee235603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee23560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee23560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee23560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee23560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee23560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee23560[] = {
+ {&(_ZTV7ee23560[4]), 4,16},
+ {&(_tg__ZTV6dd3560__7ee23560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee23560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee23560[4]), 4,6},
+ {&(_ZTV7ee23560[9]), 9,16},
+ {&(_ZTV7ee23560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee23560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee23560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23560[];
+extern VTBL_ENTRY _ZTV7ee23560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23560[];
+static VTBL_ENTRY alt_thunk_names306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee235603fooEv,_ZTv0_n16_N7ee235603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235603fooEv,_ZThn20_N7ee235603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23560 = { "ee23560", // class name
+ bases_ee23560, 4,
+ &(vtc_ee23560[0]), // expected_vtbl_contents
+ &(vtt_ee23560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23560),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 ee33560 : virtual dd3560 {
+ int e;
+ virtual void foo(); // _ZN7ee335603fooEv
+ ~ee33560(); // tgen
+ ee33560(); // tgen
+};
+//SIG(1 ee33560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33560 ::foo(){vfunc_called(this, "_ZN7ee335603fooEv");}
+ee33560 ::~ee33560(){ note_dtor("ee33560", this);} // tgen
+ee33560 ::ee33560(){ note_ctor("ee33560", this);} // tgen
+
+static void Test_ee33560()
+{
+ extern Class_Descriptor cd_ee33560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33560, buf);
+ ee33560 *dp, &lv = *(dp=new (buf) ee33560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee33560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee33560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(32,16), "ee33560");
+ check_base_class_offset(lv, (dd3560*), ABISELECT(16,8), "ee33560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33560.e");
+ test_class_info(&lv, &cd_ee33560);
+ dp->~ee33560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33560(Test_ee33560, "ee33560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33560C1Ev();
+extern void _ZN7ee33560D1Ev();
+Name_Map name_map_ee33560[] = {
+ NSPAIR(_ZN7ee33560C1Ev),
+ NSPAIR(_ZN7ee33560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee33560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, ABISELECT(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 _ZTI7ee33560[];
+extern void _ZN7ee335603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335603fooEv,_ZTv0_n20_N7ee335603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335603fooEv,_ZThn8_N7ee335603fooEv)() __attribute__((weak));
+extern void _ZN5cc5603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee335603fooEv,_ZTv0_n16_N7ee335603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335603fooEv,_ZThn24_N7ee335603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33560[0]),
+ (VTBL_ENTRY)&_ZN7ee335603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335603fooEv,_ZTv0_n20_N7ee335603fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee335603fooEv,_ZTv0_n16_N7ee335603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee33560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee33560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee33560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee33560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee33560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee33560[] = {
+ {&(_ZTV7ee33560[5]), 5,23},
+ {&(_ZTV7ee33560[11]), 11,23},
+ {&(_ZTV7ee33560[16]), 16,23},
+ {&(_ZTV7ee33560[21]), 21,23},
+ {&(_tg__ZTV6dd3560__7ee33560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee33560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee33560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee33560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee33560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33560[];
+extern VTBL_ENTRY _ZTV7ee33560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33560[];
+static VTBL_ENTRY alt_thunk_names307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee335603fooEv,_ZTv0_n16_N7ee335603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335603fooEv,_ZThn24_N7ee335603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335603fooEv,_ZTv0_n20_N7ee335603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335603fooEv,_ZThn8_N7ee335603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33560 = { "ee33560", // class name
+ bases_ee33560, 4,
+ &(vtc_ee33560[0]), // expected_vtbl_contents
+ &(vtt_ee33560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33560),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33560),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 ee43560 : dd3560 {
+ int e;
+ virtual void bar(); // _ZN7ee435603barEv
+ ~ee43560(); // tgen
+ ee43560(); // tgen
+};
+//SIG(1 ee43560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43560 ::bar(){vfunc_called(this, "_ZN7ee435603barEv");}
+ee43560 ::~ee43560(){ note_dtor("ee43560", this);} // tgen
+ee43560 ::ee43560(){ note_ctor("ee43560", this);} // tgen
+
+static void Test_ee43560()
+{
+ extern Class_Descriptor cd_ee43560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43560, buf);
+ ee43560 *dp, &lv = *(dp=new (buf) ee43560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee43560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee43560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(16,12), "ee43560");
+ check_base_class_offset(lv, (dd3560*), 0, "ee43560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43560.e");
+ test_class_info(&lv, &cd_ee43560);
+ dp->~ee43560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43560(Test_ee43560, "ee43560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43560C1Ev();
+extern void _ZN7ee43560D1Ev();
+Name_Map name_map_ee43560[] = {
+ NSPAIR(_ZN7ee43560C1Ev),
+ NSPAIR(_ZN7ee43560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee43560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43560[];
+extern void _ZN6dd35603fooEv();
+extern void _ZN7ee435603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435603barEv,_ZTv0_n16_N7ee435603barEv)();
+extern void ABISELECT(_ZThn16_N7ee435603barEv,_ZThn12_N7ee435603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee435603barEv,_ZTv0_n12_N7ee435603barEv)();
+extern void ABISELECT(_ZThn32_N7ee435603barEv,_ZThn20_N7ee435603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+ (VTBL_ENTRY)&_ZN7ee435603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435603barEv,_ZTv0_n16_N7ee435603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee435603barEv,_ZTv0_n12_N7ee435603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee43560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee43560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee43560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee43560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee43560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee43560[] = {
+ {&(_ZTV7ee43560[4]), 4,17},
+ {&(_tg__ZTV6dd3560__7ee43560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee43560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee43560[4]), 4,6},
+ {&(_ZTV7ee43560[10]), 10,17},
+ {&(_ZTV7ee43560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee43560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee43560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43560[];
+extern VTBL_ENTRY _ZTV7ee43560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43560[];
+static VTBL_ENTRY alt_thunk_names308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee435603barEv,_ZTv0_n12_N7ee435603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435603barEv,_ZThn20_N7ee435603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435603barEv,_ZTv0_n16_N7ee435603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435603barEv,_ZThn12_N7ee435603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43560 = { "ee43560", // class name
+ bases_ee43560, 4,
+ &(vtc_ee43560[0]), // expected_vtbl_contents
+ &(vtt_ee43560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43560),8, //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 ee53560 : virtual dd3560 {
+ int e;
+ virtual void bar(); // _ZN7ee535603barEv
+ ~ee53560(); // tgen
+ ee53560(); // tgen
+};
+//SIG(1 ee53560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53560 ::bar(){vfunc_called(this, "_ZN7ee535603barEv");}
+ee53560 ::~ee53560(){ note_dtor("ee53560", this);} // tgen
+ee53560 ::ee53560(){ note_ctor("ee53560", this);} // tgen
+
+static void Test_ee53560()
+{
+ extern Class_Descriptor cd_ee53560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53560, buf);
+ ee53560 *dp, &lv = *(dp=new (buf) ee53560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee53560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee53560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(32,16), "ee53560");
+ check_base_class_offset(lv, (dd3560*), ABISELECT(16,8), "ee53560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53560.e");
+ test_class_info(&lv, &cd_ee53560);
+ dp->~ee53560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53560(Test_ee53560, "ee53560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53560C1Ev();
+extern void _ZN7ee53560D1Ev();
+Name_Map name_map_ee53560[] = {
+ NSPAIR(_ZN7ee53560C1Ev),
+ NSPAIR(_ZN7ee53560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee53560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, ABISELECT(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 _ZTI7ee53560[];
+extern void _ZN7ee535603barEv();
+extern void _ZN6dd35603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535603barEv,_ZTv0_n16_N7ee535603barEv)();
+extern void ABISELECT(_ZThn32_N7ee535603barEv,_ZThn16_N7ee535603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee535603barEv,_ZTv0_n12_N7ee535603barEv)();
+extern void ABISELECT(_ZThn48_N7ee535603barEv,_ZThn24_N7ee535603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53560[0]),
+ (VTBL_ENTRY)&_ZN7ee535603barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535603barEv,_ZTv0_n16_N7ee535603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee535603barEv,_ZTv0_n12_N7ee535603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee53560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee53560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee53560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee53560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee53560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee53560[] = {
+ {&(_ZTV7ee53560[5]), 5,23},
+ {&(_ZTV7ee53560[11]), 11,23},
+ {&(_ZTV7ee53560[16]), 16,23},
+ {&(_ZTV7ee53560[21]), 21,23},
+ {&(_tg__ZTV6dd3560__7ee53560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee53560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee53560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee53560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee53560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53560[];
+extern VTBL_ENTRY _ZTV7ee53560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53560[];
+static VTBL_ENTRY alt_thunk_names309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee535603barEv,_ZTv0_n12_N7ee535603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535603barEv,_ZThn24_N7ee535603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535603barEv,_ZTv0_n16_N7ee535603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535603barEv,_ZThn16_N7ee535603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53560 = { "ee53560", // class name
+ bases_ee53560, 4,
+ &(vtc_ee53560[0]), // expected_vtbl_contents
+ &(vtt_ee53560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53560),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53560),9, //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 ee63560 : dd3560 {
+ int e;
+ virtual void foo(); // _ZN7ee635603fooEv
+ virtual void bar(); // _ZN7ee635603barEv
+ ~ee63560(); // tgen
+ ee63560(); // tgen
+};
+//SIG(1 ee63560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63560 ::foo(){vfunc_called(this, "_ZN7ee635603fooEv");}
+void ee63560 ::bar(){vfunc_called(this, "_ZN7ee635603barEv");}
+ee63560 ::~ee63560(){ note_dtor("ee63560", this);} // tgen
+ee63560 ::ee63560(){ note_ctor("ee63560", this);} // tgen
+
+static void Test_ee63560()
+{
+ extern Class_Descriptor cd_ee63560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63560, buf);
+ ee63560 *dp, &lv = *(dp=new (buf) ee63560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee63560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee63560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(16,12), "ee63560");
+ check_base_class_offset(lv, (dd3560*), 0, "ee63560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63560.e");
+ test_class_info(&lv, &cd_ee63560);
+ dp->~ee63560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63560(Test_ee63560, "ee63560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63560C1Ev();
+extern void _ZN7ee63560D1Ev();
+Name_Map name_map_ee63560[] = {
+ NSPAIR(_ZN7ee63560C1Ev),
+ NSPAIR(_ZN7ee63560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee63560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63560[];
+extern void _ZN7ee635603fooEv();
+extern void _ZN7ee635603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635603barEv,_ZTv0_n16_N7ee635603barEv)();
+extern void ABISELECT(_ZThn16_N7ee635603barEv,_ZThn12_N7ee635603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635603barEv,_ZTv0_n12_N7ee635603barEv)();
+extern void ABISELECT(_ZThn32_N7ee635603barEv,_ZThn20_N7ee635603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635603fooEv,_ZTv0_n16_N7ee635603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635603fooEv,_ZThn20_N7ee635603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63560[0]),
+ (VTBL_ENTRY)&_ZN7ee635603fooEv,
+ (VTBL_ENTRY)&_ZN7ee635603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635603barEv,_ZTv0_n16_N7ee635603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635603barEv,_ZTv0_n12_N7ee635603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635603fooEv,_ZTv0_n16_N7ee635603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee63560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee63560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee63560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee63560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee63560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee63560[] = {
+ {&(_ZTV7ee63560[4]), 4,17},
+ {&(_tg__ZTV6dd3560__7ee63560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee63560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee63560[4]), 4,6},
+ {&(_ZTV7ee63560[10]), 10,17},
+ {&(_ZTV7ee63560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee63560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee63560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63560[];
+extern VTBL_ENTRY _ZTV7ee63560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63560[];
+static VTBL_ENTRY alt_thunk_names310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn20_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635603fooEv,_ZTv0_n16_N7ee635603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635603fooEv,_ZThn20_N7ee635603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635603barEv,_ZTv0_n12_N7ee635603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635603barEv,_ZThn20_N7ee635603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635603barEv,_ZTv0_n16_N7ee635603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635603barEv,_ZThn12_N7ee635603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63560 = { "ee63560", // class name
+ bases_ee63560, 4,
+ &(vtc_ee63560[0]), // expected_vtbl_contents
+ &(vtt_ee63560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63560),8, //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 ee73560 : virtual dd3560 {
+ int e;
+ virtual void foo(); // _ZN7ee735603fooEv
+ virtual void bar(); // _ZN7ee735603barEv
+ ~ee73560(); // tgen
+ ee73560(); // tgen
+};
+//SIG(1 ee73560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73560 ::foo(){vfunc_called(this, "_ZN7ee735603fooEv");}
+void ee73560 ::bar(){vfunc_called(this, "_ZN7ee735603barEv");}
+ee73560 ::~ee73560(){ note_dtor("ee73560", this);} // tgen
+ee73560 ::ee73560(){ note_ctor("ee73560", this);} // tgen
+
+static void Test_ee73560()
+{
+ extern Class_Descriptor cd_ee73560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73560, buf);
+ ee73560 *dp, &lv = *(dp=new (buf) ee73560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee73560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee73560");
+ check_base_class_offset(lv, (cc560*)(dd3560*), ABISELECT(32,16), "ee73560");
+ check_base_class_offset(lv, (dd3560*), ABISELECT(16,8), "ee73560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73560.e");
+ test_class_info(&lv, &cd_ee73560);
+ dp->~ee73560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73560(Test_ee73560, "ee73560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73560C1Ev();
+extern void _ZN7ee73560D1Ev();
+Name_Map name_map_ee73560[] = {
+ NSPAIR(_ZN7ee73560C1Ev),
+ NSPAIR(_ZN7ee73560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd3560;
+extern VTBL_ENTRY _ZTI6dd3560[];
+extern VTBL_ENTRY _ZTV6dd3560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3560[];
+static Base_Class bases_ee73560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd3560, 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 _ZTI7ee73560[];
+extern void _ZN7ee735603fooEv();
+extern void _ZN7ee735603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735603fooEv,_ZTv0_n20_N7ee735603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735603fooEv,_ZThn8_N7ee735603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735603barEv,_ZTv0_n16_N7ee735603barEv)();
+extern void ABISELECT(_ZThn32_N7ee735603barEv,_ZThn16_N7ee735603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735603barEv,_ZTv0_n12_N7ee735603barEv)();
+extern void ABISELECT(_ZThn48_N7ee735603barEv,_ZThn24_N7ee735603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735603fooEv,_ZTv0_n16_N7ee735603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735603fooEv,_ZThn24_N7ee735603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73560[0]),
+ (VTBL_ENTRY)&_ZN7ee735603fooEv,
+ (VTBL_ENTRY)&_ZN7ee735603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735603fooEv,_ZTv0_n20_N7ee735603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735603barEv,_ZTv0_n16_N7ee735603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735603barEv,_ZTv0_n12_N7ee735603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735603fooEv,_ZTv0_n16_N7ee735603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73560[];
+extern void _ZN6dd35603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3560__7ee73560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN6dd35603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd3560__7ee73560[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3560__7ee73560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee73560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee73560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee73560[] = {
+ {&(_ZTV7ee73560[5]), 5,24},
+ {&(_ZTV7ee73560[12]), 12,24},
+ {&(_ZTV7ee73560[17]), 17,24},
+ {&(_ZTV7ee73560[22]), 22,24},
+ {&(_tg__ZTV6dd3560__7ee73560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd3560__7ee73560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd3560__7ee73560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee73560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee73560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73560[];
+extern VTBL_ENTRY _ZTV7ee73560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73560[];
+static VTBL_ENTRY alt_thunk_names311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd35603fooEv,_ZTv0_n16_N6dd35603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35603fooEv,_ZThn16_N6dd35603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735603fooEv,_ZTv0_n16_N7ee735603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735603fooEv,_ZThn24_N7ee735603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735603barEv,_ZTv0_n12_N7ee735603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735603barEv,_ZThn24_N7ee735603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735603barEv,_ZTv0_n16_N7ee735603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735603barEv,_ZThn16_N7ee735603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735603fooEv,_ZTv0_n20_N7ee735603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735603fooEv,_ZThn8_N7ee735603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73560 = { "ee73560", // class name
+ bases_ee73560, 4,
+ &(vtc_ee73560[0]), // expected_vtbl_contents
+ &(vtt_ee73560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73560),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73560),9, //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 dd4560 : cc560 {
+ int d;
+ virtual void bar(); // _ZN6dd45603barEv
+ ~dd4560(); // tgen
+ dd4560(); // tgen
+};
+//SIG(-1 dd4560) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4560 ::bar(){vfunc_called(this, "_ZN6dd45603barEv");}
+dd4560 ::~dd4560(){ note_dtor("dd4560", this);} // tgen
+dd4560 ::dd4560(){ note_ctor("dd4560", this);} // tgen
+
+static void Test_dd4560()
+{
+ extern Class_Descriptor cd_dd4560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4560, buf);
+ dd4560 *dp, &lv = *(dp=new (buf) dd4560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd4560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(16,12), "dd4560");
+ check_base_class_offset(lv, (cc560*), 0, "dd4560");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4560.d");
+ test_class_info(&lv, &cd_dd4560);
+ dp->~dd4560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4560(Test_dd4560, "dd4560", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4560C1Ev();
+extern void _ZN6dd4560D1Ev();
+Name_Map name_map_dd4560[] = {
+ NSPAIR(_ZN6dd4560C1Ev),
+ NSPAIR(_ZN6dd4560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd4560[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4560[];
+extern void _ZN6dd45603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd4560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd4560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd4560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd4560[] = {
+ {&(_ZTV6dd4560[3]), 3,10},
+ {&(_tg__ZTV5cc560__6dd4560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd4560[4]), 4,6},
+ {&(_ZTV6dd4560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static VTBL_ENTRY alt_thunk_names312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4560 = { "dd4560", // class name
+ bases_dd4560, 3,
+ &(vtc_dd4560[0]), // expected_vtbl_contents
+ &(vtt_dd4560[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4560),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04560 : dd4560 {
+ int e;
+ ~ee04560(); // tgen
+ ee04560(); // tgen
+};
+//SIG(1 ee04560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04560 ::~ee04560(){ note_dtor("ee04560", this);} // tgen
+ee04560 ::ee04560(){ note_ctor("ee04560", this);} // tgen
+
+static void Test_ee04560()
+{
+ extern Class_Descriptor cd_ee04560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04560, buf);
+ ee04560 *dp, &lv = *(dp=new (buf) ee04560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee04560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(24,16), "ee04560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), 0, "ee04560");
+ check_base_class_offset(lv, (dd4560*), 0, "ee04560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04560.e");
+ test_class_info(&lv, &cd_ee04560);
+ dp->~ee04560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04560(Test_ee04560, "ee04560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04560C1Ev();
+extern void _ZN7ee04560D1Ev();
+Name_Map name_map_ee04560[] = {
+ NSPAIR(_ZN7ee04560C1Ev),
+ NSPAIR(_ZN7ee04560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee04560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04560[];
+extern void _ZN6dd45603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee04560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee04560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee04560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee04560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee04560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee04560[] = {
+ {&(_ZTV7ee04560[3]), 3,10},
+ {&(_tg__ZTV6dd4560__7ee04560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee04560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee04560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee04560[4]), 4,6},
+ {&(_ZTV7ee04560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04560[];
+extern VTBL_ENTRY _ZTV7ee04560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04560[];
+static VTBL_ENTRY alt_thunk_names313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04560 = { "ee04560", // class name
+ bases_ee04560, 4,
+ &(vtc_ee04560[0]), // expected_vtbl_contents
+ &(vtt_ee04560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14560 : virtual dd4560 {
+ int e;
+ ~ee14560(); // tgen
+ ee14560(); // tgen
+};
+//SIG(1 ee14560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14560 ::~ee14560(){ note_dtor("ee14560", this);} // tgen
+ee14560 ::ee14560(){ note_ctor("ee14560", this);} // tgen
+
+static void Test_ee14560()
+{
+ extern Class_Descriptor cd_ee14560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14560, buf);
+ ee14560 *dp, &lv = *(dp=new (buf) ee14560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee14560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(32,20), "ee14560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), ABISELECT(16,8), "ee14560");
+ check_base_class_offset(lv, (dd4560*), ABISELECT(16,8), "ee14560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14560.e");
+ test_class_info(&lv, &cd_ee14560);
+ dp->~ee14560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14560(Test_ee14560, "ee14560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14560C1Ev();
+extern void _ZN7ee14560D1Ev();
+Name_Map name_map_ee14560[] = {
+ NSPAIR(_ZN7ee14560C1Ev),
+ NSPAIR(_ZN7ee14560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee14560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, ABISELECT(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 _ZTI7ee14560[];
+extern void _ZN6dd45603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee14560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14560[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee14560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee14560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee14560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee14560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee14560[] = {
+ {&(_ZTV7ee14560[4]), 4,15},
+ {&(_ZTV7ee14560[8]), 8,15},
+ {&(_ZTV7ee14560[13]), 13,15},
+ {&(_tg__ZTV6dd4560__7ee14560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee14560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee14560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee14560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14560[];
+extern VTBL_ENTRY _ZTV7ee14560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14560[];
+static VTBL_ENTRY alt_thunk_names314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14560 = { "ee14560", // class name
+ bases_ee14560, 4,
+ &(vtc_ee14560[0]), // expected_vtbl_contents
+ &(vtt_ee14560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14560),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24560 : dd4560 {
+ int e;
+ virtual void foo(); // _ZN7ee245603fooEv
+ ~ee24560(); // tgen
+ ee24560(); // tgen
+};
+//SIG(1 ee24560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24560 ::foo(){vfunc_called(this, "_ZN7ee245603fooEv");}
+ee24560 ::~ee24560(){ note_dtor("ee24560", this);} // tgen
+ee24560 ::ee24560(){ note_ctor("ee24560", this);} // tgen
+
+static void Test_ee24560()
+{
+ extern Class_Descriptor cd_ee24560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24560, buf);
+ ee24560 *dp, &lv = *(dp=new (buf) ee24560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee24560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(24,16), "ee24560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), 0, "ee24560");
+ check_base_class_offset(lv, (dd4560*), 0, "ee24560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24560.e");
+ test_class_info(&lv, &cd_ee24560);
+ dp->~ee24560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24560(Test_ee24560, "ee24560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24560C1Ev();
+extern void _ZN7ee24560D1Ev();
+Name_Map name_map_ee24560[] = {
+ NSPAIR(_ZN7ee24560C1Ev),
+ NSPAIR(_ZN7ee24560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee24560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24560[];
+extern void _ZN6dd45603barEv();
+extern void _ZN7ee245603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee245603fooEv,_ZTv0_n16_N7ee245603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245603fooEv,_ZThn16_N7ee245603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+ (VTBL_ENTRY)&_ZN7ee245603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee245603fooEv,_ZTv0_n16_N7ee245603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee24560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee24560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee24560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee24560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee24560[] = {
+ {&(_ZTV7ee24560[3]), 3,11},
+ {&(_tg__ZTV6dd4560__7ee24560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee24560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee24560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee24560[4]), 4,6},
+ {&(_ZTV7ee24560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24560[];
+extern VTBL_ENTRY _ZTV7ee24560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24560[];
+static VTBL_ENTRY alt_thunk_names315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee245603fooEv,_ZTv0_n16_N7ee245603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245603fooEv,_ZThn16_N7ee245603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24560 = { "ee24560", // class name
+ bases_ee24560, 4,
+ &(vtc_ee24560[0]), // expected_vtbl_contents
+ &(vtt_ee24560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34560 : virtual dd4560 {
+ int e;
+ virtual void foo(); // _ZN7ee345603fooEv
+ ~ee34560(); // tgen
+ ee34560(); // tgen
+};
+//SIG(1 ee34560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34560 ::foo(){vfunc_called(this, "_ZN7ee345603fooEv");}
+ee34560 ::~ee34560(){ note_dtor("ee34560", this);} // tgen
+ee34560 ::ee34560(){ note_ctor("ee34560", this);} // tgen
+
+static void Test_ee34560()
+{
+ extern Class_Descriptor cd_ee34560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34560, buf);
+ ee34560 *dp, &lv = *(dp=new (buf) ee34560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee34560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(32,20), "ee34560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), ABISELECT(16,8), "ee34560");
+ check_base_class_offset(lv, (dd4560*), ABISELECT(16,8), "ee34560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34560.e");
+ test_class_info(&lv, &cd_ee34560);
+ dp->~ee34560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34560(Test_ee34560, "ee34560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34560C1Ev();
+extern void _ZN7ee34560D1Ev();
+Name_Map name_map_ee34560[] = {
+ NSPAIR(_ZN7ee34560C1Ev),
+ NSPAIR(_ZN7ee34560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee34560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, ABISELECT(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 _ZTI7ee34560[];
+extern void _ZN7ee345603fooEv();
+extern void _ZN6dd45603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee345603fooEv,_ZTv0_n16_N7ee345603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345603fooEv,_ZThn20_N7ee345603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34560[0]),
+ (VTBL_ENTRY)&_ZN7ee345603fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee345603fooEv,_ZTv0_n16_N7ee345603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee34560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee34560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee34560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee34560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee34560[] = {
+ {&(_ZTV7ee34560[4]), 4,16},
+ {&(_ZTV7ee34560[9]), 9,16},
+ {&(_ZTV7ee34560[14]), 14,16},
+ {&(_tg__ZTV6dd4560__7ee34560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee34560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee34560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee34560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34560[];
+extern VTBL_ENTRY _ZTV7ee34560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34560[];
+static VTBL_ENTRY alt_thunk_names316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee345603fooEv,_ZTv0_n16_N7ee345603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345603fooEv,_ZThn20_N7ee345603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34560 = { "ee34560", // class name
+ bases_ee34560, 4,
+ &(vtc_ee34560[0]), // expected_vtbl_contents
+ &(vtt_ee34560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44560 : dd4560 {
+ int e;
+ virtual void bar(); // _ZN7ee445603barEv
+ ~ee44560(); // tgen
+ ee44560(); // tgen
+};
+//SIG(1 ee44560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44560 ::bar(){vfunc_called(this, "_ZN7ee445603barEv");}
+ee44560 ::~ee44560(){ note_dtor("ee44560", this);} // tgen
+ee44560 ::ee44560(){ note_ctor("ee44560", this);} // tgen
+
+static void Test_ee44560()
+{
+ extern Class_Descriptor cd_ee44560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44560, buf);
+ ee44560 *dp, &lv = *(dp=new (buf) ee44560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee44560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(24,16), "ee44560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), 0, "ee44560");
+ check_base_class_offset(lv, (dd4560*), 0, "ee44560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44560.e");
+ test_class_info(&lv, &cd_ee44560);
+ dp->~ee44560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44560(Test_ee44560, "ee44560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44560C1Ev();
+extern void _ZN7ee44560D1Ev();
+Name_Map name_map_ee44560[] = {
+ NSPAIR(_ZN7ee44560C1Ev),
+ NSPAIR(_ZN7ee44560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee44560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44560[];
+extern void _ZN7ee445603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee445603barEv,_ZTv0_n12_N7ee445603barEv)();
+extern void ABISELECT(_ZThn24_N7ee445603barEv,_ZThn16_N7ee445603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee44560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44560[0]),
+ (VTBL_ENTRY)&_ZN7ee445603barEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee445603barEv,_ZTv0_n12_N7ee445603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee44560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee44560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee44560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee44560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee44560[] = {
+ {&(_ZTV7ee44560[3]), 3,10},
+ {&(_tg__ZTV6dd4560__7ee44560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee44560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee44560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee44560[4]), 4,6},
+ {&(_ZTV7ee44560[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44560[];
+extern VTBL_ENTRY _ZTV7ee44560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44560[];
+static VTBL_ENTRY alt_thunk_names317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee445603barEv,_ZTv0_n12_N7ee445603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445603barEv,_ZThn16_N7ee445603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44560 = { "ee44560", // class name
+ bases_ee44560, 4,
+ &(vtc_ee44560[0]), // expected_vtbl_contents
+ &(vtt_ee44560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44560),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44560),6, //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 ee54560 : virtual dd4560 {
+ int e;
+ virtual void bar(); // _ZN7ee545603barEv
+ ~ee54560(); // tgen
+ ee54560(); // tgen
+};
+//SIG(1 ee54560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54560 ::bar(){vfunc_called(this, "_ZN7ee545603barEv");}
+ee54560 ::~ee54560(){ note_dtor("ee54560", this);} // tgen
+ee54560 ::ee54560(){ note_ctor("ee54560", this);} // tgen
+
+static void Test_ee54560()
+{
+ extern Class_Descriptor cd_ee54560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54560, buf);
+ ee54560 *dp, &lv = *(dp=new (buf) ee54560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee54560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(32,20), "ee54560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), ABISELECT(16,8), "ee54560");
+ check_base_class_offset(lv, (dd4560*), ABISELECT(16,8), "ee54560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54560.e");
+ test_class_info(&lv, &cd_ee54560);
+ dp->~ee54560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54560(Test_ee54560, "ee54560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54560C1Ev();
+extern void _ZN7ee54560D1Ev();
+Name_Map name_map_ee54560[] = {
+ NSPAIR(_ZN7ee54560C1Ev),
+ NSPAIR(_ZN7ee54560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee54560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, ABISELECT(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 _ZTI7ee54560[];
+extern void _ZN7ee545603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545603barEv,_ZTv0_n16_N7ee545603barEv)();
+extern void ABISELECT(_ZThn16_N7ee545603barEv,_ZThn8_N7ee545603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee545603barEv,_ZTv0_n12_N7ee545603barEv)();
+extern void ABISELECT(_ZThn32_N7ee545603barEv,_ZThn20_N7ee545603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee54560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54560[0]),
+ (VTBL_ENTRY)&_ZN7ee545603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545603barEv,_ZTv0_n16_N7ee545603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee545603barEv,_ZTv0_n12_N7ee545603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee54560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee54560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee54560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee54560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee54560[] = {
+ {&(_ZTV7ee54560[4]), 4,16},
+ {&(_ZTV7ee54560[9]), 9,16},
+ {&(_ZTV7ee54560[14]), 14,16},
+ {&(_tg__ZTV6dd4560__7ee54560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee54560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee54560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee54560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54560[];
+extern VTBL_ENTRY _ZTV7ee54560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54560[];
+static VTBL_ENTRY alt_thunk_names318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee545603barEv,_ZTv0_n12_N7ee545603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545603barEv,_ZThn20_N7ee545603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545603barEv,_ZTv0_n16_N7ee545603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545603barEv,_ZThn8_N7ee545603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54560 = { "ee54560", // class name
+ bases_ee54560, 4,
+ &(vtc_ee54560[0]), // expected_vtbl_contents
+ &(vtt_ee54560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54560),7, //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 ee64560 : dd4560 {
+ int e;
+ virtual void foo(); // _ZN7ee645603fooEv
+ virtual void bar(); // _ZN7ee645603barEv
+ ~ee64560(); // tgen
+ ee64560(); // tgen
+};
+//SIG(1 ee64560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64560 ::foo(){vfunc_called(this, "_ZN7ee645603fooEv");}
+void ee64560 ::bar(){vfunc_called(this, "_ZN7ee645603barEv");}
+ee64560 ::~ee64560(){ note_dtor("ee64560", this);} // tgen
+ee64560 ::ee64560(){ note_ctor("ee64560", this);} // tgen
+
+static void Test_ee64560()
+{
+ extern Class_Descriptor cd_ee64560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64560, buf);
+ ee64560 *dp, &lv = *(dp=new (buf) ee64560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee64560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(24,16), "ee64560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), 0, "ee64560");
+ check_base_class_offset(lv, (dd4560*), 0, "ee64560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64560.e");
+ test_class_info(&lv, &cd_ee64560);
+ dp->~ee64560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64560(Test_ee64560, "ee64560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64560C1Ev();
+extern void _ZN7ee64560D1Ev();
+Name_Map name_map_ee64560[] = {
+ NSPAIR(_ZN7ee64560C1Ev),
+ NSPAIR(_ZN7ee64560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee64560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64560[];
+extern void _ZN7ee645603barEv();
+extern void _ZN7ee645603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645603barEv,_ZTv0_n12_N7ee645603barEv)();
+extern void ABISELECT(_ZThn24_N7ee645603barEv,_ZThn16_N7ee645603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645603fooEv,_ZTv0_n16_N7ee645603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645603fooEv,_ZThn16_N7ee645603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64560[0]),
+ (VTBL_ENTRY)&_ZN7ee645603barEv,
+ (VTBL_ENTRY)&_ZN7ee645603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645603barEv,_ZTv0_n12_N7ee645603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645603fooEv,_ZTv0_n16_N7ee645603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee64560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee64560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee64560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee64560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee64560[] = {
+ {&(_ZTV7ee64560[3]), 3,11},
+ {&(_tg__ZTV6dd4560__7ee64560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee64560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee64560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee64560[4]), 4,6},
+ {&(_ZTV7ee64560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64560[];
+extern VTBL_ENTRY _ZTV7ee64560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64560[];
+static VTBL_ENTRY alt_thunk_names319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45603barEv,_ZThn16_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645603fooEv,_ZTv0_n16_N7ee645603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645603fooEv,_ZThn16_N7ee645603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645603barEv,_ZTv0_n12_N7ee645603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645603barEv,_ZThn16_N7ee645603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64560 = { "ee64560", // class name
+ bases_ee64560, 4,
+ &(vtc_ee64560[0]), // expected_vtbl_contents
+ &(vtt_ee64560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64560),6, //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 ee74560 : virtual dd4560 {
+ int e;
+ virtual void foo(); // _ZN7ee745603fooEv
+ virtual void bar(); // _ZN7ee745603barEv
+ ~ee74560(); // tgen
+ ee74560(); // tgen
+};
+//SIG(1 ee74560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74560 ::foo(){vfunc_called(this, "_ZN7ee745603fooEv");}
+void ee74560 ::bar(){vfunc_called(this, "_ZN7ee745603barEv");}
+ee74560 ::~ee74560(){ note_dtor("ee74560", this);} // tgen
+ee74560 ::ee74560(){ note_ctor("ee74560", this);} // tgen
+
+static void Test_ee74560()
+{
+ extern Class_Descriptor cd_ee74560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74560, buf);
+ ee74560 *dp, &lv = *(dp=new (buf) ee74560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee74560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd4560*), ABISELECT(32,20), "ee74560");
+ check_base_class_offset(lv, (cc560*)(dd4560*), ABISELECT(16,8), "ee74560");
+ check_base_class_offset(lv, (dd4560*), ABISELECT(16,8), "ee74560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74560.e");
+ test_class_info(&lv, &cd_ee74560);
+ dp->~ee74560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74560(Test_ee74560, "ee74560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74560C1Ev();
+extern void _ZN7ee74560D1Ev();
+Name_Map name_map_ee74560[] = {
+ NSPAIR(_ZN7ee74560C1Ev),
+ NSPAIR(_ZN7ee74560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd4560;
+extern VTBL_ENTRY _ZTI6dd4560[];
+extern VTBL_ENTRY _ZTV6dd4560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4560[];
+static Base_Class bases_ee74560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4560, 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 _ZTI7ee74560[];
+extern void _ZN7ee745603fooEv();
+extern void _ZN7ee745603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745603barEv,_ZTv0_n16_N7ee745603barEv)();
+extern void ABISELECT(_ZThn16_N7ee745603barEv,_ZThn8_N7ee745603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745603barEv,_ZTv0_n12_N7ee745603barEv)();
+extern void ABISELECT(_ZThn32_N7ee745603barEv,_ZThn20_N7ee745603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745603fooEv,_ZTv0_n16_N7ee745603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745603fooEv,_ZThn20_N7ee745603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74560[0]),
+ (VTBL_ENTRY)&_ZN7ee745603fooEv,
+ (VTBL_ENTRY)&_ZN7ee745603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745603barEv,_ZTv0_n16_N7ee745603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745603barEv,_ZTv0_n12_N7ee745603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745603fooEv,_ZTv0_n16_N7ee745603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74560[];
+extern void _ZN6dd45603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4560__7ee74560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&_ZN6dd45603barEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd4560__7ee74560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd4560__7ee74560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv)();
+extern void ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4560__7ee74560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee74560[] = {
+ {&(_ZTV7ee74560[4]), 4,17},
+ {&(_ZTV7ee74560[10]), 10,17},
+ {&(_ZTV7ee74560[15]), 15,17},
+ {&(_tg__ZTV6dd4560__7ee74560[3]), 3,4},
+ {&(_tg__ZTV5cc5606dd4560__7ee74560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd4560__7ee74560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4560__7ee74560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74560[];
+extern VTBL_ENTRY _ZTV7ee74560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74560[];
+static VTBL_ENTRY alt_thunk_names320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd45603barEv,_ZTv0_n12_N6dd45603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45603barEv,_ZThn12_N6dd45603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745603fooEv,_ZTv0_n16_N7ee745603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745603fooEv,_ZThn20_N7ee745603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745603barEv,_ZTv0_n12_N7ee745603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745603barEv,_ZThn20_N7ee745603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745603barEv,_ZTv0_n16_N7ee745603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745603barEv,_ZThn8_N7ee745603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74560 = { "ee74560", // class name
+ bases_ee74560, 4,
+ &(vtc_ee74560[0]), // expected_vtbl_contents
+ &(vtt_ee74560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5560 : virtual cc560 {
+ int d;
+ virtual void bar(); // _ZN6dd55603barEv
+ ~dd5560(); // tgen
+ dd5560(); // tgen
+};
+//SIG(-1 dd5560) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5560 ::bar(){vfunc_called(this, "_ZN6dd55603barEv");}
+dd5560 ::~dd5560(){ note_dtor("dd5560", this);} // tgen
+dd5560 ::dd5560(){ note_ctor("dd5560", this);} // tgen
+
+static void Test_dd5560()
+{
+ extern Class_Descriptor cd_dd5560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5560, buf);
+ dd5560 *dp, &lv = *(dp=new (buf) dd5560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd5560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,16), "dd5560");
+ check_base_class_offset(lv, (cc560*), ABISELECT(16,8), "dd5560");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5560.d");
+ test_class_info(&lv, &cd_dd5560);
+ dp->~dd5560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5560(Test_dd5560, "dd5560", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5560C1Ev();
+extern void _ZN6dd5560D1Ev();
+Name_Map name_map_dd5560[] = {
+ NSPAIR(_ZN6dd5560C1Ev),
+ NSPAIR(_ZN6dd5560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd5560[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(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 _ZTI6dd5560[];
+extern void _ZN6dd55603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_dd5560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd5560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd5560[] = {
+ {&(_ZTV6dd5560[4]), 4,16},
+ {&(_ZTV6dd5560[9]), 9,16},
+ {&(_ZTV6dd5560[14]), 14,16},
+ {&(_tg__ZTV5cc560__6dd5560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd5560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static VTBL_ENTRY alt_thunk_names321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5560 = { "dd5560", // class name
+ bases_dd5560, 3,
+ &(vtc_dd5560[0]), // expected_vtbl_contents
+ &(vtt_dd5560[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5560),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05560 : dd5560 {
+ int e;
+ ~ee05560(); // tgen
+ ee05560(); // tgen
+};
+//SIG(1 ee05560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05560 ::~ee05560(){ note_dtor("ee05560", this);} // tgen
+ee05560 ::ee05560(){ note_ctor("ee05560", this);} // tgen
+
+static void Test_ee05560()
+{
+ extern Class_Descriptor cd_ee05560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05560, buf);
+ ee05560 *dp, &lv = *(dp=new (buf) ee05560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee05560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee05560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(16,12), "ee05560");
+ check_base_class_offset(lv, (dd5560*), 0, "ee05560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05560.e");
+ test_class_info(&lv, &cd_ee05560);
+ dp->~ee05560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05560(Test_ee05560, "ee05560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05560C1Ev();
+extern void _ZN7ee05560D1Ev();
+Name_Map name_map_ee05560[] = {
+ NSPAIR(_ZN7ee05560C1Ev),
+ NSPAIR(_ZN7ee05560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee05560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05560[];
+extern void _ZN6dd55603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee05560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee05560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee05560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee05560[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee05560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee05560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee05560[] = {
+ {&(_ZTV7ee05560[4]), 4,16},
+ {&(_tg__ZTV6dd5560__7ee05560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee05560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee05560[4]), 4,6},
+ {&(_ZTV7ee05560[9]), 9,16},
+ {&(_ZTV7ee05560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee05560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee05560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05560[];
+extern VTBL_ENTRY _ZTV7ee05560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05560[];
+static VTBL_ENTRY alt_thunk_names322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05560 = { "ee05560", // class name
+ bases_ee05560, 4,
+ &(vtc_ee05560[0]), // expected_vtbl_contents
+ &(vtt_ee05560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05560),8, //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 ee15560 : virtual dd5560 {
+ int e;
+ ~ee15560(); // tgen
+ ee15560(); // tgen
+};
+//SIG(1 ee15560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15560 ::~ee15560(){ note_dtor("ee15560", this);} // tgen
+ee15560 ::ee15560(){ note_ctor("ee15560", this);} // tgen
+
+static void Test_ee15560()
+{
+ extern Class_Descriptor cd_ee15560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15560, buf);
+ ee15560 *dp, &lv = *(dp=new (buf) ee15560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee15560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee15560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(32,16), "ee15560");
+ check_base_class_offset(lv, (dd5560*), ABISELECT(16,8), "ee15560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15560.e");
+ test_class_info(&lv, &cd_ee15560);
+ dp->~ee15560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15560(Test_ee15560, "ee15560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15560C1Ev();
+extern void _ZN7ee15560D1Ev();
+Name_Map name_map_ee15560[] = {
+ NSPAIR(_ZN7ee15560C1Ev),
+ NSPAIR(_ZN7ee15560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee15560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, ABISELECT(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 _ZTI7ee15560[];
+extern void _ZN6dd55603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee15560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15560[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee15560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee15560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee15560[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee15560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee15560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee15560[] = {
+ {&(_ZTV7ee15560[5]), 5,22},
+ {&(_ZTV7ee15560[10]), 10,22},
+ {&(_ZTV7ee15560[15]), 15,22},
+ {&(_ZTV7ee15560[20]), 20,22},
+ {&(_tg__ZTV6dd5560__7ee15560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee15560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee15560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee15560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee15560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15560[];
+extern VTBL_ENTRY _ZTV7ee15560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15560[];
+static VTBL_ENTRY alt_thunk_names323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15560 = { "ee15560", // class name
+ bases_ee15560, 4,
+ &(vtc_ee15560[0]), // expected_vtbl_contents
+ &(vtt_ee15560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15560),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15560),9, //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 ee25560 : dd5560 {
+ int e;
+ virtual void foo(); // _ZN7ee255603fooEv
+ ~ee25560(); // tgen
+ ee25560(); // tgen
+};
+//SIG(1 ee25560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25560 ::foo(){vfunc_called(this, "_ZN7ee255603fooEv");}
+ee25560 ::~ee25560(){ note_dtor("ee25560", this);} // tgen
+ee25560 ::ee25560(){ note_ctor("ee25560", this);} // tgen
+
+static void Test_ee25560()
+{
+ extern Class_Descriptor cd_ee25560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25560, buf);
+ ee25560 *dp, &lv = *(dp=new (buf) ee25560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee25560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee25560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(16,12), "ee25560");
+ check_base_class_offset(lv, (dd5560*), 0, "ee25560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25560.e");
+ test_class_info(&lv, &cd_ee25560);
+ dp->~ee25560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25560(Test_ee25560, "ee25560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25560C1Ev();
+extern void _ZN7ee25560D1Ev();
+Name_Map name_map_ee25560[] = {
+ NSPAIR(_ZN7ee25560C1Ev),
+ NSPAIR(_ZN7ee25560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee25560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25560[];
+extern void _ZN6dd55603barEv();
+extern void _ZN7ee255603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee255603fooEv,_ZTv0_n16_N7ee255603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255603fooEv,_ZThn20_N7ee255603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+ (VTBL_ENTRY)&_ZN7ee255603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee255603fooEv,_ZTv0_n16_N7ee255603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee25560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee25560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee25560[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee25560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee25560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee25560[] = {
+ {&(_ZTV7ee25560[4]), 4,17},
+ {&(_tg__ZTV6dd5560__7ee25560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee25560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee25560[4]), 4,6},
+ {&(_ZTV7ee25560[10]), 10,17},
+ {&(_ZTV7ee25560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee25560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee25560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25560[];
+extern VTBL_ENTRY _ZTV7ee25560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25560[];
+static VTBL_ENTRY alt_thunk_names324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee255603fooEv,_ZTv0_n16_N7ee255603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255603fooEv,_ZThn20_N7ee255603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25560 = { "ee25560", // class name
+ bases_ee25560, 4,
+ &(vtc_ee25560[0]), // expected_vtbl_contents
+ &(vtt_ee25560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25560),8, //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 ee35560 : virtual dd5560 {
+ int e;
+ virtual void foo(); // _ZN7ee355603fooEv
+ ~ee35560(); // tgen
+ ee35560(); // tgen
+};
+//SIG(1 ee35560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35560 ::foo(){vfunc_called(this, "_ZN7ee355603fooEv");}
+ee35560 ::~ee35560(){ note_dtor("ee35560", this);} // tgen
+ee35560 ::ee35560(){ note_ctor("ee35560", this);} // tgen
+
+static void Test_ee35560()
+{
+ extern Class_Descriptor cd_ee35560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35560, buf);
+ ee35560 *dp, &lv = *(dp=new (buf) ee35560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee35560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee35560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(32,16), "ee35560");
+ check_base_class_offset(lv, (dd5560*), ABISELECT(16,8), "ee35560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35560.e");
+ test_class_info(&lv, &cd_ee35560);
+ dp->~ee35560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35560(Test_ee35560, "ee35560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35560C1Ev();
+extern void _ZN7ee35560D1Ev();
+Name_Map name_map_ee35560[] = {
+ NSPAIR(_ZN7ee35560C1Ev),
+ NSPAIR(_ZN7ee35560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee35560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, ABISELECT(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 _ZTI7ee35560[];
+extern void _ZN7ee355603fooEv();
+extern void _ZN6dd55603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee355603fooEv,_ZTv0_n16_N7ee355603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355603fooEv,_ZThn24_N7ee355603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35560[0]),
+ (VTBL_ENTRY)&_ZN7ee355603fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee355603fooEv,_ZTv0_n16_N7ee355603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee35560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee35560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee35560[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee35560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee35560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee35560[] = {
+ {&(_ZTV7ee35560[5]), 5,23},
+ {&(_ZTV7ee35560[11]), 11,23},
+ {&(_ZTV7ee35560[16]), 16,23},
+ {&(_ZTV7ee35560[21]), 21,23},
+ {&(_tg__ZTV6dd5560__7ee35560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee35560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee35560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee35560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee35560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35560[];
+extern VTBL_ENTRY _ZTV7ee35560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35560[];
+static VTBL_ENTRY alt_thunk_names325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee355603fooEv,_ZTv0_n16_N7ee355603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355603fooEv,_ZThn24_N7ee355603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35560 = { "ee35560", // class name
+ bases_ee35560, 4,
+ &(vtc_ee35560[0]), // expected_vtbl_contents
+ &(vtt_ee35560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35560),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35560),9, //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 ee45560 : dd5560 {
+ int e;
+ virtual void bar(); // _ZN7ee455603barEv
+ ~ee45560(); // tgen
+ ee45560(); // tgen
+};
+//SIG(1 ee45560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45560 ::bar(){vfunc_called(this, "_ZN7ee455603barEv");}
+ee45560 ::~ee45560(){ note_dtor("ee45560", this);} // tgen
+ee45560 ::ee45560(){ note_ctor("ee45560", this);} // tgen
+
+static void Test_ee45560()
+{
+ extern Class_Descriptor cd_ee45560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45560, buf);
+ ee45560 *dp, &lv = *(dp=new (buf) ee45560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee45560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee45560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(16,12), "ee45560");
+ check_base_class_offset(lv, (dd5560*), 0, "ee45560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45560.e");
+ test_class_info(&lv, &cd_ee45560);
+ dp->~ee45560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45560(Test_ee45560, "ee45560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45560C1Ev();
+extern void _ZN7ee45560D1Ev();
+Name_Map name_map_ee45560[] = {
+ NSPAIR(_ZN7ee45560C1Ev),
+ NSPAIR(_ZN7ee45560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee45560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45560[];
+extern void _ZN7ee455603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455603barEv,_ZTv0_n16_N7ee455603barEv)();
+extern void ABISELECT(_ZThn16_N7ee455603barEv,_ZThn12_N7ee455603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee455603barEv,_ZTv0_n12_N7ee455603barEv)();
+extern void ABISELECT(_ZThn32_N7ee455603barEv,_ZThn20_N7ee455603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee45560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45560[0]),
+ (VTBL_ENTRY)&_ZN7ee455603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455603barEv,_ZTv0_n16_N7ee455603barEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee455603barEv,_ZTv0_n12_N7ee455603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee45560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee45560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee45560[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee45560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee45560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee45560[] = {
+ {&(_ZTV7ee45560[4]), 4,16},
+ {&(_tg__ZTV6dd5560__7ee45560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee45560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee45560[4]), 4,6},
+ {&(_ZTV7ee45560[9]), 9,16},
+ {&(_ZTV7ee45560[14]), 14,16},
+ {&(_tg__ZTV5cc560__7ee45560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee45560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45560[];
+extern VTBL_ENTRY _ZTV7ee45560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45560[];
+static VTBL_ENTRY alt_thunk_names326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee455603barEv,_ZTv0_n12_N7ee455603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455603barEv,_ZThn20_N7ee455603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455603barEv,_ZTv0_n16_N7ee455603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455603barEv,_ZThn12_N7ee455603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45560 = { "ee45560", // class name
+ bases_ee45560, 4,
+ &(vtc_ee45560[0]), // expected_vtbl_contents
+ &(vtt_ee45560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45560),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45560),8, //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 ee55560 : virtual dd5560 {
+ int e;
+ virtual void bar(); // _ZN7ee555603barEv
+ ~ee55560(); // tgen
+ ee55560(); // tgen
+};
+//SIG(1 ee55560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55560 ::bar(){vfunc_called(this, "_ZN7ee555603barEv");}
+ee55560 ::~ee55560(){ note_dtor("ee55560", this);} // tgen
+ee55560 ::ee55560(){ note_ctor("ee55560", this);} // tgen
+
+static void Test_ee55560()
+{
+ extern Class_Descriptor cd_ee55560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55560, buf);
+ ee55560 *dp, &lv = *(dp=new (buf) ee55560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee55560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee55560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(32,16), "ee55560");
+ check_base_class_offset(lv, (dd5560*), ABISELECT(16,8), "ee55560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55560.e");
+ test_class_info(&lv, &cd_ee55560);
+ dp->~ee55560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55560(Test_ee55560, "ee55560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55560C1Ev();
+extern void _ZN7ee55560D1Ev();
+Name_Map name_map_ee55560[] = {
+ NSPAIR(_ZN7ee55560C1Ev),
+ NSPAIR(_ZN7ee55560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee55560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, ABISELECT(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 _ZTI7ee55560[];
+extern void _ZN7ee555603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555603barEv,_ZTv0_n20_N7ee555603barEv)();
+extern void ABISELECT(_ZThn16_N7ee555603barEv,_ZThn8_N7ee555603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555603barEv,_ZTv0_n16_N7ee555603barEv)();
+extern void ABISELECT(_ZThn32_N7ee555603barEv,_ZThn16_N7ee555603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee555603barEv,_ZTv0_n12_N7ee555603barEv)();
+extern void ABISELECT(_ZThn48_N7ee555603barEv,_ZThn24_N7ee555603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_ee55560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55560[0]),
+ (VTBL_ENTRY)&_ZN7ee555603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555603barEv,_ZTv0_n20_N7ee555603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555603barEv,_ZTv0_n16_N7ee555603barEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee555603barEv,_ZTv0_n12_N7ee555603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee55560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee55560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee55560[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee55560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee55560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee55560[] = {
+ {&(_ZTV7ee55560[5]), 5,23},
+ {&(_ZTV7ee55560[11]), 11,23},
+ {&(_ZTV7ee55560[16]), 16,23},
+ {&(_ZTV7ee55560[21]), 21,23},
+ {&(_tg__ZTV6dd5560__7ee55560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee55560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee55560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee55560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee55560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55560[];
+extern VTBL_ENTRY _ZTV7ee55560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55560[];
+static VTBL_ENTRY alt_thunk_names327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee555603barEv,_ZTv0_n12_N7ee555603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555603barEv,_ZThn24_N7ee555603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555603barEv,_ZTv0_n16_N7ee555603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555603barEv,_ZThn16_N7ee555603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555603barEv,_ZTv0_n20_N7ee555603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555603barEv,_ZThn8_N7ee555603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55560 = { "ee55560", // class name
+ bases_ee55560, 4,
+ &(vtc_ee55560[0]), // expected_vtbl_contents
+ &(vtt_ee55560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55560),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55560),9, //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 ee65560 : dd5560 {
+ int e;
+ virtual void foo(); // _ZN7ee655603fooEv
+ virtual void bar(); // _ZN7ee655603barEv
+ ~ee65560(); // tgen
+ ee65560(); // tgen
+};
+//SIG(1 ee65560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65560 ::foo(){vfunc_called(this, "_ZN7ee655603fooEv");}
+void ee65560 ::bar(){vfunc_called(this, "_ZN7ee655603barEv");}
+ee65560 ::~ee65560(){ note_dtor("ee65560", this);} // tgen
+ee65560 ::ee65560(){ note_ctor("ee65560", this);} // tgen
+
+static void Test_ee65560()
+{
+ extern Class_Descriptor cd_ee65560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65560, buf);
+ ee65560 *dp, &lv = *(dp=new (buf) ee65560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee65560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee65560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(16,12), "ee65560");
+ check_base_class_offset(lv, (dd5560*), 0, "ee65560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65560.e");
+ test_class_info(&lv, &cd_ee65560);
+ dp->~ee65560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65560(Test_ee65560, "ee65560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65560C1Ev();
+extern void _ZN7ee65560D1Ev();
+Name_Map name_map_ee65560[] = {
+ NSPAIR(_ZN7ee65560C1Ev),
+ NSPAIR(_ZN7ee65560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee65560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65560[];
+extern void _ZN7ee655603barEv();
+extern void _ZN7ee655603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655603barEv,_ZTv0_n16_N7ee655603barEv)();
+extern void ABISELECT(_ZThn16_N7ee655603barEv,_ZThn12_N7ee655603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655603barEv,_ZTv0_n12_N7ee655603barEv)();
+extern void ABISELECT(_ZThn32_N7ee655603barEv,_ZThn20_N7ee655603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655603fooEv,_ZTv0_n16_N7ee655603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655603fooEv,_ZThn20_N7ee655603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65560[0]),
+ (VTBL_ENTRY)&_ZN7ee655603barEv,
+ (VTBL_ENTRY)&_ZN7ee655603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655603barEv,_ZTv0_n16_N7ee655603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655603barEv,_ZTv0_n12_N7ee655603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655603fooEv,_ZTv0_n16_N7ee655603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee65560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee65560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee65560[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee65560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee65560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee65560[] = {
+ {&(_ZTV7ee65560[4]), 4,17},
+ {&(_tg__ZTV6dd5560__7ee65560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee65560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee65560[4]), 4,6},
+ {&(_ZTV7ee65560[10]), 10,17},
+ {&(_ZTV7ee65560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee65560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee65560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65560[];
+extern VTBL_ENTRY _ZTV7ee65560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65560[];
+static VTBL_ENTRY alt_thunk_names328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn20_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn12_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655603fooEv,_ZTv0_n16_N7ee655603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655603fooEv,_ZThn20_N7ee655603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655603barEv,_ZTv0_n12_N7ee655603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655603barEv,_ZThn20_N7ee655603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655603barEv,_ZTv0_n16_N7ee655603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655603barEv,_ZThn12_N7ee655603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65560 = { "ee65560", // class name
+ bases_ee65560, 4,
+ &(vtc_ee65560[0]), // expected_vtbl_contents
+ &(vtt_ee65560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65560),8, //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 ee75560 : virtual dd5560 {
+ int e;
+ virtual void foo(); // _ZN7ee755603fooEv
+ virtual void bar(); // _ZN7ee755603barEv
+ ~ee75560(); // tgen
+ ee75560(); // tgen
+};
+//SIG(1 ee75560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75560 ::foo(){vfunc_called(this, "_ZN7ee755603fooEv");}
+void ee75560 ::bar(){vfunc_called(this, "_ZN7ee755603barEv");}
+ee75560 ::~ee75560(){ note_dtor("ee75560", this);} // tgen
+ee75560 ::ee75560(){ note_ctor("ee75560", this);} // tgen
+
+static void Test_ee75560()
+{
+ extern Class_Descriptor cd_ee75560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75560, buf);
+ ee75560 *dp, &lv = *(dp=new (buf) ee75560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee75560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee75560");
+ check_base_class_offset(lv, (cc560*)(dd5560*), ABISELECT(32,16), "ee75560");
+ check_base_class_offset(lv, (dd5560*), ABISELECT(16,8), "ee75560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75560.e");
+ test_class_info(&lv, &cd_ee75560);
+ dp->~ee75560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75560(Test_ee75560, "ee75560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75560C1Ev();
+extern void _ZN7ee75560D1Ev();
+Name_Map name_map_ee75560[] = {
+ NSPAIR(_ZN7ee75560C1Ev),
+ NSPAIR(_ZN7ee75560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd5560;
+extern VTBL_ENTRY _ZTI6dd5560[];
+extern VTBL_ENTRY _ZTV6dd5560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5560[];
+static Base_Class bases_ee75560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd5560, 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 _ZTI7ee75560[];
+extern void _ZN7ee755603fooEv();
+extern void _ZN7ee755603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755603barEv,_ZTv0_n20_N7ee755603barEv)();
+extern void ABISELECT(_ZThn16_N7ee755603barEv,_ZThn8_N7ee755603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755603barEv,_ZTv0_n16_N7ee755603barEv)();
+extern void ABISELECT(_ZThn32_N7ee755603barEv,_ZThn16_N7ee755603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755603barEv,_ZTv0_n12_N7ee755603barEv)();
+extern void ABISELECT(_ZThn48_N7ee755603barEv,_ZThn24_N7ee755603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755603fooEv,_ZTv0_n16_N7ee755603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755603fooEv,_ZThn24_N7ee755603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75560[0]),
+ (VTBL_ENTRY)&_ZN7ee755603fooEv,
+ (VTBL_ENTRY)&_ZN7ee755603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755603barEv,_ZTv0_n20_N7ee755603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755603barEv,_ZTv0_n16_N7ee755603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755603barEv,_ZTv0_n12_N7ee755603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755603fooEv,_ZTv0_n16_N7ee755603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75560[];
+extern void _ZN6dd55603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5560__7ee75560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&_ZN6dd55603barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv)();
+extern void ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd5560__7ee75560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv)();
+extern void ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5560__7ee75560[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee75560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee75560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee75560[] = {
+ {&(_ZTV7ee75560[5]), 5,24},
+ {&(_ZTV7ee75560[12]), 12,24},
+ {&(_ZTV7ee75560[17]), 17,24},
+ {&(_ZTV7ee75560[22]), 22,24},
+ {&(_tg__ZTV6dd5560__7ee75560[4]), 4,5},
+ {&(_tg__ZTV5cc560__6dd5560__7ee75560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd5560__7ee75560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee75560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee75560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75560[];
+extern VTBL_ENTRY _ZTV7ee75560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75560[];
+static VTBL_ENTRY alt_thunk_names329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd55603barEv,_ZTv0_n12_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55603barEv,_ZThn16_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55603barEv,_ZTv0_n16_N6dd55603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55603barEv,_ZThn8_N6dd55603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755603fooEv,_ZTv0_n16_N7ee755603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755603fooEv,_ZThn24_N7ee755603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755603barEv,_ZTv0_n12_N7ee755603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755603barEv,_ZThn24_N7ee755603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755603barEv,_ZTv0_n16_N7ee755603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755603barEv,_ZThn16_N7ee755603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755603barEv,_ZTv0_n20_N7ee755603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755603barEv,_ZThn8_N7ee755603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75560 = { "ee75560", // class name
+ bases_ee75560, 4,
+ &(vtc_ee75560[0]), // expected_vtbl_contents
+ &(vtt_ee75560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75560),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75560),9, //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 dd6560 : cc560 {
+ int d;
+ virtual void bar(); // _ZN6dd65603barEv
+ virtual void foo(); // _ZN6dd65603fooEv
+ ~dd6560(); // tgen
+ dd6560(); // tgen
+};
+//SIG(-1 dd6560) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6560 ::bar(){vfunc_called(this, "_ZN6dd65603barEv");}
+void dd6560 ::foo(){vfunc_called(this, "_ZN6dd65603fooEv");}
+dd6560 ::~dd6560(){ note_dtor("dd6560", this);} // tgen
+dd6560 ::dd6560(){ note_ctor("dd6560", this);} // tgen
+
+static void Test_dd6560()
+{
+ extern Class_Descriptor cd_dd6560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6560, buf);
+ dd6560 *dp, &lv = *(dp=new (buf) dd6560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd6560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(16,12), "dd6560");
+ check_base_class_offset(lv, (cc560*), 0, "dd6560");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6560.d");
+ test_class_info(&lv, &cd_dd6560);
+ dp->~dd6560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6560(Test_dd6560, "dd6560", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6560C1Ev();
+extern void _ZN6dd6560D1Ev();
+Name_Map name_map_dd6560[] = {
+ NSPAIR(_ZN6dd6560C1Ev),
+ NSPAIR(_ZN6dd6560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd6560[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd6560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd6560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd6560[] = {
+ {&(_ZTV6dd6560[3]), 3,11},
+ {&(_tg__ZTV5cc560__6dd6560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd6560[4]), 4,6},
+ {&(_ZTV6dd6560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static VTBL_ENTRY alt_thunk_names330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6560 = { "dd6560", // class name
+ bases_dd6560, 3,
+ &(vtc_dd6560[0]), // expected_vtbl_contents
+ &(vtt_dd6560[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6560),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06560 : dd6560 {
+ int e;
+ ~ee06560(); // tgen
+ ee06560(); // tgen
+};
+//SIG(1 ee06560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06560 ::~ee06560(){ note_dtor("ee06560", this);} // tgen
+ee06560 ::ee06560(){ note_ctor("ee06560", this);} // tgen
+
+static void Test_ee06560()
+{
+ extern Class_Descriptor cd_ee06560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06560, buf);
+ ee06560 *dp, &lv = *(dp=new (buf) ee06560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee06560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(24,16), "ee06560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), 0, "ee06560");
+ check_base_class_offset(lv, (dd6560*), 0, "ee06560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06560.e");
+ test_class_info(&lv, &cd_ee06560);
+ dp->~ee06560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06560(Test_ee06560, "ee06560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06560C1Ev();
+extern void _ZN7ee06560D1Ev();
+Name_Map name_map_ee06560[] = {
+ NSPAIR(_ZN7ee06560C1Ev),
+ NSPAIR(_ZN7ee06560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee06560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee06560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee06560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee06560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee06560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee06560[] = {
+ {&(_ZTV7ee06560[3]), 3,11},
+ {&(_tg__ZTV6dd6560__7ee06560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee06560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee06560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee06560[4]), 4,6},
+ {&(_ZTV7ee06560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06560[];
+extern VTBL_ENTRY _ZTV7ee06560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06560[];
+static VTBL_ENTRY alt_thunk_names331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06560 = { "ee06560", // class name
+ bases_ee06560, 4,
+ &(vtc_ee06560[0]), // expected_vtbl_contents
+ &(vtt_ee06560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06560),6, //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 ee16560 : virtual dd6560 {
+ int e;
+ ~ee16560(); // tgen
+ ee16560(); // tgen
+};
+//SIG(1 ee16560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16560 ::~ee16560(){ note_dtor("ee16560", this);} // tgen
+ee16560 ::ee16560(){ note_ctor("ee16560", this);} // tgen
+
+static void Test_ee16560()
+{
+ extern Class_Descriptor cd_ee16560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16560, buf);
+ ee16560 *dp, &lv = *(dp=new (buf) ee16560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee16560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(32,20), "ee16560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), ABISELECT(16,8), "ee16560");
+ check_base_class_offset(lv, (dd6560*), ABISELECT(16,8), "ee16560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16560.e");
+ test_class_info(&lv, &cd_ee16560);
+ dp->~ee16560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16560(Test_ee16560, "ee16560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16560C1Ev();
+extern void _ZN7ee16560D1Ev();
+Name_Map name_map_ee16560[] = {
+ NSPAIR(_ZN7ee16560C1Ev),
+ NSPAIR(_ZN7ee16560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee16560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, 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 _ZTI7ee16560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16560[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee16560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee16560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee16560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee16560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee16560[] = {
+ {&(_ZTV7ee16560[4]), 4,17},
+ {&(_ZTV7ee16560[9]), 9,17},
+ {&(_ZTV7ee16560[15]), 15,17},
+ {&(_tg__ZTV6dd6560__7ee16560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee16560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee16560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee16560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16560[];
+extern VTBL_ENTRY _ZTV7ee16560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16560[];
+static VTBL_ENTRY alt_thunk_names332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16560 = { "ee16560", // class name
+ bases_ee16560, 4,
+ &(vtc_ee16560[0]), // expected_vtbl_contents
+ &(vtt_ee16560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26560 : dd6560 {
+ int e;
+ virtual void foo(); // _ZN7ee265603fooEv
+ ~ee26560(); // tgen
+ ee26560(); // tgen
+};
+//SIG(1 ee26560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26560 ::foo(){vfunc_called(this, "_ZN7ee265603fooEv");}
+ee26560 ::~ee26560(){ note_dtor("ee26560", this);} // tgen
+ee26560 ::ee26560(){ note_ctor("ee26560", this);} // tgen
+
+static void Test_ee26560()
+{
+ extern Class_Descriptor cd_ee26560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26560, buf);
+ ee26560 *dp, &lv = *(dp=new (buf) ee26560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee26560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(24,16), "ee26560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), 0, "ee26560");
+ check_base_class_offset(lv, (dd6560*), 0, "ee26560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26560.e");
+ test_class_info(&lv, &cd_ee26560);
+ dp->~ee26560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26560(Test_ee26560, "ee26560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26560C1Ev();
+extern void _ZN7ee26560D1Ev();
+Name_Map name_map_ee26560[] = {
+ NSPAIR(_ZN7ee26560C1Ev),
+ NSPAIR(_ZN7ee26560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee26560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN7ee265603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee265603fooEv,_ZTv0_n16_N7ee265603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265603fooEv,_ZThn16_N7ee265603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN7ee265603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee265603fooEv,_ZTv0_n16_N7ee265603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee26560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee26560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee26560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee26560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee26560[] = {
+ {&(_ZTV7ee26560[3]), 3,11},
+ {&(_tg__ZTV6dd6560__7ee26560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee26560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee26560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee26560[4]), 4,6},
+ {&(_ZTV7ee26560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26560[];
+extern VTBL_ENTRY _ZTV7ee26560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26560[];
+static VTBL_ENTRY alt_thunk_names333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee265603fooEv,_ZTv0_n16_N7ee265603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265603fooEv,_ZThn16_N7ee265603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26560 = { "ee26560", // class name
+ bases_ee26560, 4,
+ &(vtc_ee26560[0]), // expected_vtbl_contents
+ &(vtt_ee26560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36560 : virtual dd6560 {
+ int e;
+ virtual void foo(); // _ZN7ee365603fooEv
+ ~ee36560(); // tgen
+ ee36560(); // tgen
+};
+//SIG(1 ee36560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36560 ::foo(){vfunc_called(this, "_ZN7ee365603fooEv");}
+ee36560 ::~ee36560(){ note_dtor("ee36560", this);} // tgen
+ee36560 ::ee36560(){ note_ctor("ee36560", this);} // tgen
+
+static void Test_ee36560()
+{
+ extern Class_Descriptor cd_ee36560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36560, buf);
+ ee36560 *dp, &lv = *(dp=new (buf) ee36560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee36560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(32,20), "ee36560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), ABISELECT(16,8), "ee36560");
+ check_base_class_offset(lv, (dd6560*), ABISELECT(16,8), "ee36560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36560.e");
+ test_class_info(&lv, &cd_ee36560);
+ dp->~ee36560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36560(Test_ee36560, "ee36560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36560C1Ev();
+extern void _ZN7ee36560D1Ev();
+Name_Map name_map_ee36560[] = {
+ NSPAIR(_ZN7ee36560C1Ev),
+ NSPAIR(_ZN7ee36560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee36560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, ABISELECT(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 _ZTI7ee36560[];
+extern void _ZN7ee365603fooEv();
+extern void _ZN6dd65603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365603fooEv,_ZTv0_n20_N7ee365603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365603fooEv,_ZThn8_N7ee365603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee365603fooEv,_ZTv0_n16_N7ee365603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365603fooEv,_ZThn20_N7ee365603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36560[0]),
+ (VTBL_ENTRY)&_ZN7ee365603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365603fooEv,_ZTv0_n20_N7ee365603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee365603fooEv,_ZTv0_n16_N7ee365603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee36560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee36560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee36560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee36560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee36560[] = {
+ {&(_ZTV7ee36560[4]), 4,18},
+ {&(_ZTV7ee36560[10]), 10,18},
+ {&(_ZTV7ee36560[16]), 16,18},
+ {&(_tg__ZTV6dd6560__7ee36560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee36560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee36560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee36560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36560[];
+extern VTBL_ENTRY _ZTV7ee36560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36560[];
+static VTBL_ENTRY alt_thunk_names334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee365603fooEv,_ZTv0_n16_N7ee365603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365603fooEv,_ZThn20_N7ee365603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365603fooEv,_ZTv0_n20_N7ee365603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365603fooEv,_ZThn8_N7ee365603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36560 = { "ee36560", // class name
+ bases_ee36560, 4,
+ &(vtc_ee36560[0]), // expected_vtbl_contents
+ &(vtt_ee36560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36560),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46560 : dd6560 {
+ int e;
+ virtual void bar(); // _ZN7ee465603barEv
+ ~ee46560(); // tgen
+ ee46560(); // tgen
+};
+//SIG(1 ee46560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46560 ::bar(){vfunc_called(this, "_ZN7ee465603barEv");}
+ee46560 ::~ee46560(){ note_dtor("ee46560", this);} // tgen
+ee46560 ::ee46560(){ note_ctor("ee46560", this);} // tgen
+
+static void Test_ee46560()
+{
+ extern Class_Descriptor cd_ee46560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46560, buf);
+ ee46560 *dp, &lv = *(dp=new (buf) ee46560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee46560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(24,16), "ee46560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), 0, "ee46560");
+ check_base_class_offset(lv, (dd6560*), 0, "ee46560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46560.e");
+ test_class_info(&lv, &cd_ee46560);
+ dp->~ee46560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46560(Test_ee46560, "ee46560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46560C1Ev();
+extern void _ZN7ee46560D1Ev();
+Name_Map name_map_ee46560[] = {
+ NSPAIR(_ZN7ee46560C1Ev),
+ NSPAIR(_ZN7ee46560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee46560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46560[];
+extern void _ZN7ee465603barEv();
+extern void _ZN6dd65603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee465603barEv,_ZTv0_n12_N7ee465603barEv)();
+extern void ABISELECT(_ZThn24_N7ee465603barEv,_ZThn16_N7ee465603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46560[0]),
+ (VTBL_ENTRY)&_ZN7ee465603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee465603barEv,_ZTv0_n12_N7ee465603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee46560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee46560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee46560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee46560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee46560[] = {
+ {&(_ZTV7ee46560[3]), 3,11},
+ {&(_tg__ZTV6dd6560__7ee46560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee46560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee46560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee46560[4]), 4,6},
+ {&(_ZTV7ee46560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46560[];
+extern VTBL_ENTRY _ZTV7ee46560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46560[];
+static VTBL_ENTRY alt_thunk_names335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee465603barEv,_ZTv0_n12_N7ee465603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465603barEv,_ZThn16_N7ee465603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46560 = { "ee46560", // class name
+ bases_ee46560, 4,
+ &(vtc_ee46560[0]), // expected_vtbl_contents
+ &(vtt_ee46560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56560 : virtual dd6560 {
+ int e;
+ virtual void bar(); // _ZN7ee565603barEv
+ ~ee56560(); // tgen
+ ee56560(); // tgen
+};
+//SIG(1 ee56560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56560 ::bar(){vfunc_called(this, "_ZN7ee565603barEv");}
+ee56560 ::~ee56560(){ note_dtor("ee56560", this);} // tgen
+ee56560 ::ee56560(){ note_ctor("ee56560", this);} // tgen
+
+static void Test_ee56560()
+{
+ extern Class_Descriptor cd_ee56560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56560, buf);
+ ee56560 *dp, &lv = *(dp=new (buf) ee56560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee56560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(32,20), "ee56560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), ABISELECT(16,8), "ee56560");
+ check_base_class_offset(lv, (dd6560*), ABISELECT(16,8), "ee56560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56560.e");
+ test_class_info(&lv, &cd_ee56560);
+ dp->~ee56560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56560(Test_ee56560, "ee56560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56560C1Ev();
+extern void _ZN7ee56560D1Ev();
+Name_Map name_map_ee56560[] = {
+ NSPAIR(_ZN7ee56560C1Ev),
+ NSPAIR(_ZN7ee56560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee56560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, ABISELECT(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 _ZTI7ee56560[];
+extern void _ZN7ee565603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565603barEv,_ZTv0_n16_N7ee565603barEv)();
+extern void ABISELECT(_ZThn16_N7ee565603barEv,_ZThn8_N7ee565603barEv)() __attribute__((weak));
+extern void _ZN6dd65603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee565603barEv,_ZTv0_n12_N7ee565603barEv)();
+extern void ABISELECT(_ZThn32_N7ee565603barEv,_ZThn20_N7ee565603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56560[0]),
+ (VTBL_ENTRY)&_ZN7ee565603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565603barEv,_ZTv0_n16_N7ee565603barEv),
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee565603barEv,_ZTv0_n12_N7ee565603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee56560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee56560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee56560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee56560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee56560[] = {
+ {&(_ZTV7ee56560[4]), 4,18},
+ {&(_ZTV7ee56560[10]), 10,18},
+ {&(_ZTV7ee56560[16]), 16,18},
+ {&(_tg__ZTV6dd6560__7ee56560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee56560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee56560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee56560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56560[];
+extern VTBL_ENTRY _ZTV7ee56560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56560[];
+static VTBL_ENTRY alt_thunk_names336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee565603barEv,_ZTv0_n12_N7ee565603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565603barEv,_ZThn20_N7ee565603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565603barEv,_ZTv0_n16_N7ee565603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565603barEv,_ZThn8_N7ee565603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56560 = { "ee56560", // class name
+ bases_ee56560, 4,
+ &(vtc_ee56560[0]), // expected_vtbl_contents
+ &(vtt_ee56560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56560),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66560 : dd6560 {
+ int e;
+ virtual void foo(); // _ZN7ee665603fooEv
+ virtual void bar(); // _ZN7ee665603barEv
+ ~ee66560(); // tgen
+ ee66560(); // tgen
+};
+//SIG(1 ee66560) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66560 ::foo(){vfunc_called(this, "_ZN7ee665603fooEv");}
+void ee66560 ::bar(){vfunc_called(this, "_ZN7ee665603barEv");}
+ee66560 ::~ee66560(){ note_dtor("ee66560", this);} // tgen
+ee66560 ::ee66560(){ note_ctor("ee66560", this);} // tgen
+
+static void Test_ee66560()
+{
+ extern Class_Descriptor cd_ee66560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66560, buf);
+ ee66560 *dp, &lv = *(dp=new (buf) ee66560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee66560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(24,16), "ee66560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), 0, "ee66560");
+ check_base_class_offset(lv, (dd6560*), 0, "ee66560");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66560.e");
+ test_class_info(&lv, &cd_ee66560);
+ dp->~ee66560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66560(Test_ee66560, "ee66560", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66560C1Ev();
+extern void _ZN7ee66560D1Ev();
+Name_Map name_map_ee66560[] = {
+ NSPAIR(_ZN7ee66560C1Ev),
+ NSPAIR(_ZN7ee66560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee66560[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66560[];
+extern void _ZN7ee665603barEv();
+extern void _ZN7ee665603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665603barEv,_ZTv0_n12_N7ee665603barEv)();
+extern void ABISELECT(_ZThn24_N7ee665603barEv,_ZThn16_N7ee665603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665603fooEv,_ZTv0_n16_N7ee665603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665603fooEv,_ZThn16_N7ee665603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66560[0]),
+ (VTBL_ENTRY)&_ZN7ee665603barEv,
+ (VTBL_ENTRY)&_ZN7ee665603fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665603barEv,_ZTv0_n12_N7ee665603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665603fooEv,_ZTv0_n16_N7ee665603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee66560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee66560[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee66560[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee66560[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee66560[] = {
+ {&(_ZTV7ee66560[3]), 3,11},
+ {&(_tg__ZTV6dd6560__7ee66560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee66560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee66560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee66560[4]), 4,6},
+ {&(_ZTV7ee66560[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66560[];
+extern VTBL_ENTRY _ZTV7ee66560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66560[];
+static VTBL_ENTRY alt_thunk_names337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603fooEv,_ZThn16_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65603barEv,_ZThn16_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5603barEv,_ZThn16_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665603fooEv,_ZTv0_n16_N7ee665603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665603fooEv,_ZThn16_N7ee665603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665603barEv,_ZTv0_n12_N7ee665603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665603barEv,_ZThn16_N7ee665603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66560 = { "ee66560", // class name
+ bases_ee66560, 4,
+ &(vtc_ee66560[0]), // expected_vtbl_contents
+ &(vtt_ee66560[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66560),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66560),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76560 : virtual dd6560 {
+ int e;
+ virtual void foo(); // _ZN7ee765603fooEv
+ virtual void bar(); // _ZN7ee765603barEv
+ ~ee76560(); // tgen
+ ee76560(); // tgen
+};
+//SIG(1 ee76560) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76560 ::foo(){vfunc_called(this, "_ZN7ee765603fooEv");}
+void ee76560 ::bar(){vfunc_called(this, "_ZN7ee765603barEv");}
+ee76560 ::~ee76560(){ note_dtor("ee76560", this);} // tgen
+ee76560 ::ee76560(){ note_ctor("ee76560", this);} // tgen
+
+static void Test_ee76560()
+{
+ extern Class_Descriptor cd_ee76560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76560, buf);
+ ee76560 *dp, &lv = *(dp=new (buf) ee76560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee76560");
+ check_base_class_offset(lv, (bb60*)(cc560*)(dd6560*), ABISELECT(32,20), "ee76560");
+ check_base_class_offset(lv, (cc560*)(dd6560*), ABISELECT(16,8), "ee76560");
+ check_base_class_offset(lv, (dd6560*), ABISELECT(16,8), "ee76560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76560.e");
+ test_class_info(&lv, &cd_ee76560);
+ dp->~ee76560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76560(Test_ee76560, "ee76560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76560C1Ev();
+extern void _ZN7ee76560D1Ev();
+Name_Map name_map_ee76560[] = {
+ NSPAIR(_ZN7ee76560C1Ev),
+ NSPAIR(_ZN7ee76560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd6560;
+extern VTBL_ENTRY _ZTI6dd6560[];
+extern VTBL_ENTRY _ZTV6dd6560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6560[];
+static Base_Class bases_ee76560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6560, ABISELECT(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 _ZTI7ee76560[];
+extern void _ZN7ee765603fooEv();
+extern void _ZN7ee765603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765603barEv,_ZTv0_n16_N7ee765603barEv)();
+extern void ABISELECT(_ZThn16_N7ee765603barEv,_ZThn8_N7ee765603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765603fooEv,_ZTv0_n20_N7ee765603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765603fooEv,_ZThn8_N7ee765603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765603barEv,_ZTv0_n12_N7ee765603barEv)();
+extern void ABISELECT(_ZThn32_N7ee765603barEv,_ZThn20_N7ee765603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765603fooEv,_ZTv0_n16_N7ee765603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765603fooEv,_ZThn20_N7ee765603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76560[0]),
+ (VTBL_ENTRY)&_ZN7ee765603fooEv,
+ (VTBL_ENTRY)&_ZN7ee765603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765603barEv,_ZTv0_n16_N7ee765603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765603fooEv,_ZTv0_n20_N7ee765603fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765603barEv,_ZTv0_n12_N7ee765603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765603fooEv,_ZTv0_n16_N7ee765603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76560[];
+extern void _ZN6dd65603barEv();
+extern void _ZN6dd65603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6560__7ee76560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&_ZN6dd65603barEv,
+ (VTBL_ENTRY)&_ZN6dd65603fooEv,
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc5606dd6560__7ee76560[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc5606dd6560__7ee76560[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv)();
+extern void ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6560__7ee76560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv),
+};
+static VTT_ENTRY vtt_ee76560[] = {
+ {&(_ZTV7ee76560[4]), 4,19},
+ {&(_ZTV7ee76560[11]), 11,19},
+ {&(_ZTV7ee76560[17]), 17,19},
+ {&(_tg__ZTV6dd6560__7ee76560[3]), 3,5},
+ {&(_tg__ZTV5cc5606dd6560__7ee76560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc5606dd6560__7ee76560[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6560__7ee76560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76560[];
+extern VTBL_ENTRY _ZTV7ee76560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76560[];
+static VTBL_ENTRY alt_thunk_names338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65603fooEv,_ZTv0_n16_N6dd65603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603fooEv,_ZThn12_N6dd65603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65603barEv,_ZTv0_n12_N6dd65603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65603barEv,_ZThn12_N6dd65603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn12_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765603fooEv,_ZTv0_n16_N7ee765603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765603fooEv,_ZThn20_N7ee765603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765603barEv,_ZTv0_n12_N7ee765603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765603barEv,_ZThn20_N7ee765603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765603fooEv,_ZTv0_n20_N7ee765603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765603fooEv,_ZThn8_N7ee765603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765603barEv,_ZTv0_n16_N7ee765603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765603barEv,_ZThn8_N7ee765603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76560 = { "ee76560", // class name
+ bases_ee76560, 4,
+ &(vtc_ee76560[0]), // expected_vtbl_contents
+ &(vtt_ee76560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76560),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76560),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7560 : virtual cc560 {
+ int d;
+ virtual void bar(); // _ZN6dd75603barEv
+ virtual void foo(); // _ZN6dd75603fooEv
+ ~dd7560(); // tgen
+ dd7560(); // tgen
+};
+//SIG(-1 dd7560) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7560 ::bar(){vfunc_called(this, "_ZN6dd75603barEv");}
+void dd7560 ::foo(){vfunc_called(this, "_ZN6dd75603fooEv");}
+dd7560 ::~dd7560(){ note_dtor("dd7560", this);} // tgen
+dd7560 ::dd7560(){ note_ctor("dd7560", this);} // tgen
+
+static void Test_dd7560()
+{
+ extern Class_Descriptor cd_dd7560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7560, buf);
+ dd7560 *dp, &lv = *(dp=new (buf) dd7560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd7560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,16), "dd7560");
+ check_base_class_offset(lv, (cc560*), ABISELECT(16,8), "dd7560");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7560.d");
+ test_class_info(&lv, &cd_dd7560);
+ dp->~dd7560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7560(Test_dd7560, "dd7560", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7560C1Ev();
+extern void _ZN6dd7560D1Ev();
+Name_Map name_map_dd7560[] = {
+ NSPAIR(_ZN6dd7560C1Ev),
+ NSPAIR(_ZN6dd7560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+static Base_Class bases_dd7560[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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 _ZTI6dd7560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__6dd7560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_dd7560[] = {
+ {&(_ZTV6dd7560[4]), 4,17},
+ {&(_ZTV6dd7560[10]), 10,17},
+ {&(_ZTV6dd7560[15]), 15,17},
+ {&(_tg__ZTV5cc560__6dd7560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__6dd7560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static VTBL_ENTRY alt_thunk_names339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7560 = { "dd7560", // class name
+ bases_dd7560, 3,
+ &(vtc_dd7560[0]), // expected_vtbl_contents
+ &(vtt_dd7560[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7560),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07560 : dd7560 {
+ int e;
+ ~ee07560(); // tgen
+ ee07560(); // tgen
+};
+//SIG(1 ee07560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07560 ::~ee07560(){ note_dtor("ee07560", this);} // tgen
+ee07560 ::ee07560(){ note_ctor("ee07560", this);} // tgen
+
+static void Test_ee07560()
+{
+ extern Class_Descriptor cd_ee07560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07560, buf);
+ ee07560 *dp, &lv = *(dp=new (buf) ee07560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee07560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee07560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(16,12), "ee07560");
+ check_base_class_offset(lv, (dd7560*), 0, "ee07560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07560.e");
+ test_class_info(&lv, &cd_ee07560);
+ dp->~ee07560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07560(Test_ee07560, "ee07560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07560C1Ev();
+extern void _ZN7ee07560D1Ev();
+Name_Map name_map_ee07560[] = {
+ NSPAIR(_ZN7ee07560C1Ev),
+ NSPAIR(_ZN7ee07560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee07560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee07560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee07560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee07560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee07560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee07560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee07560[] = {
+ {&(_ZTV7ee07560[4]), 4,17},
+ {&(_tg__ZTV6dd7560__7ee07560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee07560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee07560[4]), 4,6},
+ {&(_ZTV7ee07560[10]), 10,17},
+ {&(_ZTV7ee07560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee07560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee07560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07560[];
+extern VTBL_ENTRY _ZTV7ee07560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07560[];
+static VTBL_ENTRY alt_thunk_names340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07560 = { "ee07560", // class name
+ bases_ee07560, 4,
+ &(vtc_ee07560[0]), // expected_vtbl_contents
+ &(vtt_ee07560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07560),8, //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 ee17560 : virtual dd7560 {
+ int e;
+ ~ee17560(); // tgen
+ ee17560(); // tgen
+};
+//SIG(1 ee17560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17560 ::~ee17560(){ note_dtor("ee17560", this);} // tgen
+ee17560 ::ee17560(){ note_ctor("ee17560", this);} // tgen
+
+static void Test_ee17560()
+{
+ extern Class_Descriptor cd_ee17560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17560, buf);
+ ee17560 *dp, &lv = *(dp=new (buf) ee17560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee17560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee17560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(32,16), "ee17560");
+ check_base_class_offset(lv, (dd7560*), ABISELECT(16,8), "ee17560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17560.e");
+ test_class_info(&lv, &cd_ee17560);
+ dp->~ee17560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17560(Test_ee17560, "ee17560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17560C1Ev();
+extern void _ZN7ee17560D1Ev();
+Name_Map name_map_ee17560[] = {
+ NSPAIR(_ZN7ee17560C1Ev),
+ NSPAIR(_ZN7ee17560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee17560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 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 _ZTI7ee17560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17560[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee17560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee17560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee17560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee17560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee17560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee17560[] = {
+ {&(_ZTV7ee17560[5]), 5,24},
+ {&(_ZTV7ee17560[11]), 11,24},
+ {&(_ZTV7ee17560[17]), 17,24},
+ {&(_ZTV7ee17560[22]), 22,24},
+ {&(_tg__ZTV6dd7560__7ee17560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee17560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee17560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee17560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee17560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17560[];
+extern VTBL_ENTRY _ZTV7ee17560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17560[];
+static VTBL_ENTRY alt_thunk_names341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17560 = { "ee17560", // class name
+ bases_ee17560, 4,
+ &(vtc_ee17560[0]), // expected_vtbl_contents
+ &(vtt_ee17560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17560),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17560),9, //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 ee27560 : dd7560 {
+ int e;
+ virtual void foo(); // _ZN7ee275603fooEv
+ ~ee27560(); // tgen
+ ee27560(); // tgen
+};
+//SIG(1 ee27560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27560 ::foo(){vfunc_called(this, "_ZN7ee275603fooEv");}
+ee27560 ::~ee27560(){ note_dtor("ee27560", this);} // tgen
+ee27560 ::ee27560(){ note_ctor("ee27560", this);} // tgen
+
+static void Test_ee27560()
+{
+ extern Class_Descriptor cd_ee27560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27560, buf);
+ ee27560 *dp, &lv = *(dp=new (buf) ee27560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee27560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee27560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(16,12), "ee27560");
+ check_base_class_offset(lv, (dd7560*), 0, "ee27560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27560.e");
+ test_class_info(&lv, &cd_ee27560);
+ dp->~ee27560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27560(Test_ee27560, "ee27560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27560C1Ev();
+extern void _ZN7ee27560D1Ev();
+Name_Map name_map_ee27560[] = {
+ NSPAIR(_ZN7ee27560C1Ev),
+ NSPAIR(_ZN7ee27560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee27560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN7ee275603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee275603fooEv,_ZTv0_n16_N7ee275603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275603fooEv,_ZThn20_N7ee275603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN7ee275603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee275603fooEv,_ZTv0_n16_N7ee275603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee27560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee27560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee27560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee27560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee27560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee27560[] = {
+ {&(_ZTV7ee27560[4]), 4,17},
+ {&(_tg__ZTV6dd7560__7ee27560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee27560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee27560[4]), 4,6},
+ {&(_ZTV7ee27560[10]), 10,17},
+ {&(_ZTV7ee27560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee27560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee27560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27560[];
+extern VTBL_ENTRY _ZTV7ee27560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27560[];
+static VTBL_ENTRY alt_thunk_names342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee275603fooEv,_ZTv0_n16_N7ee275603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275603fooEv,_ZThn20_N7ee275603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27560 = { "ee27560", // class name
+ bases_ee27560, 4,
+ &(vtc_ee27560[0]), // expected_vtbl_contents
+ &(vtt_ee27560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27560),8, //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 ee37560 : virtual dd7560 {
+ int e;
+ virtual void foo(); // _ZN7ee375603fooEv
+ ~ee37560(); // tgen
+ ee37560(); // tgen
+};
+//SIG(1 ee37560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37560 ::foo(){vfunc_called(this, "_ZN7ee375603fooEv");}
+ee37560 ::~ee37560(){ note_dtor("ee37560", this);} // tgen
+ee37560 ::ee37560(){ note_ctor("ee37560", this);} // tgen
+
+static void Test_ee37560()
+{
+ extern Class_Descriptor cd_ee37560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37560, buf);
+ ee37560 *dp, &lv = *(dp=new (buf) ee37560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee37560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee37560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(32,16), "ee37560");
+ check_base_class_offset(lv, (dd7560*), ABISELECT(16,8), "ee37560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37560.e");
+ test_class_info(&lv, &cd_ee37560);
+ dp->~ee37560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37560(Test_ee37560, "ee37560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37560C1Ev();
+extern void _ZN7ee37560D1Ev();
+Name_Map name_map_ee37560[] = {
+ NSPAIR(_ZN7ee37560C1Ev),
+ NSPAIR(_ZN7ee37560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee37560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 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 _ZTI7ee37560[];
+extern void _ZN7ee375603fooEv();
+extern void _ZN6dd75603barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375603fooEv,_ZTv0_n24_N7ee375603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375603fooEv,_ZThn8_N7ee375603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee375603fooEv,_ZTv0_n16_N7ee375603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375603fooEv,_ZThn24_N7ee375603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37560[0]),
+ (VTBL_ENTRY)&_ZN7ee375603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375603fooEv,_ZTv0_n24_N7ee375603fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee375603fooEv,_ZTv0_n16_N7ee375603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee37560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee37560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee37560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee37560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee37560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee37560[] = {
+ {&(_ZTV7ee37560[5]), 5,25},
+ {&(_ZTV7ee37560[12]), 12,25},
+ {&(_ZTV7ee37560[18]), 18,25},
+ {&(_ZTV7ee37560[23]), 23,25},
+ {&(_tg__ZTV6dd7560__7ee37560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee37560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee37560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee37560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee37560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37560[];
+extern VTBL_ENTRY _ZTV7ee37560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37560[];
+static VTBL_ENTRY alt_thunk_names343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee375603fooEv,_ZTv0_n16_N7ee375603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375603fooEv,_ZThn24_N7ee375603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375603fooEv,_ZTv0_n24_N7ee375603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375603fooEv,_ZThn8_N7ee375603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37560 = { "ee37560", // class name
+ bases_ee37560, 4,
+ &(vtc_ee37560[0]), // expected_vtbl_contents
+ &(vtt_ee37560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37560),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37560),9, //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 ee47560 : dd7560 {
+ int e;
+ virtual void bar(); // _ZN7ee475603barEv
+ ~ee47560(); // tgen
+ ee47560(); // tgen
+};
+//SIG(1 ee47560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47560 ::bar(){vfunc_called(this, "_ZN7ee475603barEv");}
+ee47560 ::~ee47560(){ note_dtor("ee47560", this);} // tgen
+ee47560 ::ee47560(){ note_ctor("ee47560", this);} // tgen
+
+static void Test_ee47560()
+{
+ extern Class_Descriptor cd_ee47560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47560, buf);
+ ee47560 *dp, &lv = *(dp=new (buf) ee47560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee47560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee47560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(16,12), "ee47560");
+ check_base_class_offset(lv, (dd7560*), 0, "ee47560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47560.e");
+ test_class_info(&lv, &cd_ee47560);
+ dp->~ee47560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47560(Test_ee47560, "ee47560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47560C1Ev();
+extern void _ZN7ee47560D1Ev();
+Name_Map name_map_ee47560[] = {
+ NSPAIR(_ZN7ee47560C1Ev),
+ NSPAIR(_ZN7ee47560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee47560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47560[];
+extern void _ZN7ee475603barEv();
+extern void _ZN6dd75603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475603barEv,_ZTv0_n16_N7ee475603barEv)();
+extern void ABISELECT(_ZThn16_N7ee475603barEv,_ZThn12_N7ee475603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee475603barEv,_ZTv0_n12_N7ee475603barEv)();
+extern void ABISELECT(_ZThn32_N7ee475603barEv,_ZThn20_N7ee475603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47560[0]),
+ (VTBL_ENTRY)&_ZN7ee475603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475603barEv,_ZTv0_n16_N7ee475603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee475603barEv,_ZTv0_n12_N7ee475603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee47560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee47560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee47560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee47560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee47560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee47560[] = {
+ {&(_ZTV7ee47560[4]), 4,17},
+ {&(_tg__ZTV6dd7560__7ee47560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee47560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee47560[4]), 4,6},
+ {&(_ZTV7ee47560[10]), 10,17},
+ {&(_ZTV7ee47560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee47560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee47560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47560[];
+extern VTBL_ENTRY _ZTV7ee47560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47560[];
+static VTBL_ENTRY alt_thunk_names344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee475603barEv,_ZTv0_n12_N7ee475603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475603barEv,_ZThn20_N7ee475603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475603barEv,_ZTv0_n16_N7ee475603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475603barEv,_ZThn12_N7ee475603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47560 = { "ee47560", // class name
+ bases_ee47560, 4,
+ &(vtc_ee47560[0]), // expected_vtbl_contents
+ &(vtt_ee47560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47560),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57560 : virtual dd7560 {
+ int e;
+ virtual void bar(); // _ZN7ee575603barEv
+ ~ee57560(); // tgen
+ ee57560(); // tgen
+};
+//SIG(1 ee57560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57560 ::bar(){vfunc_called(this, "_ZN7ee575603barEv");}
+ee57560 ::~ee57560(){ note_dtor("ee57560", this);} // tgen
+ee57560 ::ee57560(){ note_ctor("ee57560", this);} // tgen
+
+static void Test_ee57560()
+{
+ extern Class_Descriptor cd_ee57560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57560, buf);
+ ee57560 *dp, &lv = *(dp=new (buf) ee57560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee57560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee57560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(32,16), "ee57560");
+ check_base_class_offset(lv, (dd7560*), ABISELECT(16,8), "ee57560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57560.e");
+ test_class_info(&lv, &cd_ee57560);
+ dp->~ee57560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57560(Test_ee57560, "ee57560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57560C1Ev();
+extern void _ZN7ee57560D1Ev();
+Name_Map name_map_ee57560[] = {
+ NSPAIR(_ZN7ee57560C1Ev),
+ NSPAIR(_ZN7ee57560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee57560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 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 _ZTI7ee57560[];
+extern void _ZN7ee575603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575603barEv,_ZTv0_n20_N7ee575603barEv)();
+extern void ABISELECT(_ZThn16_N7ee575603barEv,_ZThn8_N7ee575603barEv)() __attribute__((weak));
+extern void _ZN6dd75603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575603barEv,_ZTv0_n16_N7ee575603barEv)();
+extern void ABISELECT(_ZThn32_N7ee575603barEv,_ZThn16_N7ee575603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee575603barEv,_ZTv0_n12_N7ee575603barEv)();
+extern void ABISELECT(_ZThn48_N7ee575603barEv,_ZThn24_N7ee575603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57560[0]),
+ (VTBL_ENTRY)&_ZN7ee575603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575603barEv,_ZTv0_n20_N7ee575603barEv),
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575603barEv,_ZTv0_n16_N7ee575603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee575603barEv,_ZTv0_n12_N7ee575603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee57560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee57560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee57560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee57560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee57560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee57560[] = {
+ {&(_ZTV7ee57560[5]), 5,25},
+ {&(_ZTV7ee57560[12]), 12,25},
+ {&(_ZTV7ee57560[18]), 18,25},
+ {&(_ZTV7ee57560[23]), 23,25},
+ {&(_tg__ZTV6dd7560__7ee57560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee57560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee57560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee57560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee57560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57560[];
+extern VTBL_ENTRY _ZTV7ee57560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57560[];
+static VTBL_ENTRY alt_thunk_names345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee575603barEv,_ZTv0_n12_N7ee575603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575603barEv,_ZThn24_N7ee575603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575603barEv,_ZTv0_n16_N7ee575603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575603barEv,_ZThn16_N7ee575603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575603barEv,_ZTv0_n20_N7ee575603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575603barEv,_ZThn8_N7ee575603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57560 = { "ee57560", // class name
+ bases_ee57560, 4,
+ &(vtc_ee57560[0]), // expected_vtbl_contents
+ &(vtt_ee57560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57560),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57560),9, //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 ee67560 : dd7560 {
+ int e;
+ virtual void foo(); // _ZN7ee675603fooEv
+ virtual void bar(); // _ZN7ee675603barEv
+ ~ee67560(); // tgen
+ ee67560(); // tgen
+};
+//SIG(1 ee67560) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67560 ::foo(){vfunc_called(this, "_ZN7ee675603fooEv");}
+void ee67560 ::bar(){vfunc_called(this, "_ZN7ee675603barEv");}
+ee67560 ::~ee67560(){ note_dtor("ee67560", this);} // tgen
+ee67560 ::ee67560(){ note_ctor("ee67560", this);} // tgen
+
+static void Test_ee67560()
+{
+ extern Class_Descriptor cd_ee67560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67560, buf);
+ ee67560 *dp, &lv = *(dp=new (buf) ee67560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee67560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(32,20), "ee67560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(16,12), "ee67560");
+ check_base_class_offset(lv, (dd7560*), 0, "ee67560");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67560.e");
+ test_class_info(&lv, &cd_ee67560);
+ dp->~ee67560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67560(Test_ee67560, "ee67560", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67560C1Ev();
+extern void _ZN7ee67560D1Ev();
+Name_Map name_map_ee67560[] = {
+ NSPAIR(_ZN7ee67560C1Ev),
+ NSPAIR(_ZN7ee67560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee67560[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67560[];
+extern void _ZN7ee675603barEv();
+extern void _ZN7ee675603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675603barEv,_ZTv0_n16_N7ee675603barEv)();
+extern void ABISELECT(_ZThn16_N7ee675603barEv,_ZThn12_N7ee675603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675603barEv,_ZTv0_n12_N7ee675603barEv)();
+extern void ABISELECT(_ZThn32_N7ee675603barEv,_ZThn20_N7ee675603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675603fooEv,_ZTv0_n16_N7ee675603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675603fooEv,_ZThn20_N7ee675603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67560[0]),
+ (VTBL_ENTRY)&_ZN7ee675603barEv,
+ (VTBL_ENTRY)&_ZN7ee675603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675603barEv,_ZTv0_n16_N7ee675603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675603barEv,_ZTv0_n12_N7ee675603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675603fooEv,_ZTv0_n16_N7ee675603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee67560[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee67560[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee67560[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee67560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee67560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee67560[] = {
+ {&(_ZTV7ee67560[4]), 4,17},
+ {&(_tg__ZTV6dd7560__7ee67560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee67560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee67560[4]), 4,6},
+ {&(_ZTV7ee67560[10]), 10,17},
+ {&(_ZTV7ee67560[15]), 15,17},
+ {&(_tg__ZTV5cc560__7ee67560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee67560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67560[];
+extern VTBL_ENTRY _ZTV7ee67560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67560[];
+static VTBL_ENTRY alt_thunk_names346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn20_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn20_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn12_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675603fooEv,_ZTv0_n16_N7ee675603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675603fooEv,_ZThn20_N7ee675603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675603barEv,_ZTv0_n12_N7ee675603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675603barEv,_ZThn20_N7ee675603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675603barEv,_ZTv0_n16_N7ee675603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675603barEv,_ZThn12_N7ee675603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67560 = { "ee67560", // class name
+ bases_ee67560, 4,
+ &(vtc_ee67560[0]), // expected_vtbl_contents
+ &(vtt_ee67560[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67560),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67560),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67560),8, //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 ee77560 : virtual dd7560 {
+ int e;
+ virtual void foo(); // _ZN7ee775603fooEv
+ virtual void bar(); // _ZN7ee775603barEv
+ ~ee77560(); // tgen
+ ee77560(); // tgen
+};
+//SIG(1 ee77560) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77560 ::foo(){vfunc_called(this, "_ZN7ee775603fooEv");}
+void ee77560 ::bar(){vfunc_called(this, "_ZN7ee775603barEv");}
+ee77560 ::~ee77560(){ note_dtor("ee77560", this);} // tgen
+ee77560 ::ee77560(){ note_ctor("ee77560", this);} // tgen
+
+static void Test_ee77560()
+{
+ extern Class_Descriptor cd_ee77560;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77560, buf);
+ ee77560 *dp, &lv = *(dp=new (buf) ee77560());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77560)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77560)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee77560");
+ check_base_class_offset(lv, (bb60*)(cc560*), ABISELECT(48,24), "ee77560");
+ check_base_class_offset(lv, (cc560*)(dd7560*), ABISELECT(32,16), "ee77560");
+ check_base_class_offset(lv, (dd7560*), ABISELECT(16,8), "ee77560");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77560.e");
+ test_class_info(&lv, &cd_ee77560);
+ dp->~ee77560();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77560(Test_ee77560, "ee77560", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77560C1Ev();
+extern void _ZN7ee77560D1Ev();
+Name_Map name_map_ee77560[] = {
+ NSPAIR(_ZN7ee77560C1Ev),
+ NSPAIR(_ZN7ee77560D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc560;
+extern VTBL_ENTRY _ZTI5cc560[];
+extern VTBL_ENTRY _ZTV5cc560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc560[];
+extern Class_Descriptor cd_dd7560;
+extern VTBL_ENTRY _ZTI6dd7560[];
+extern VTBL_ENTRY _ZTV6dd7560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7560[];
+static Base_Class bases_ee77560[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc560, 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_dd7560, 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 _ZTI7ee77560[];
+extern void _ZN7ee775603fooEv();
+extern void _ZN7ee775603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775603barEv,_ZTv0_n20_N7ee775603barEv)();
+extern void ABISELECT(_ZThn16_N7ee775603barEv,_ZThn8_N7ee775603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775603fooEv,_ZTv0_n24_N7ee775603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775603fooEv,_ZThn8_N7ee775603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775603barEv,_ZTv0_n16_N7ee775603barEv)();
+extern void ABISELECT(_ZThn32_N7ee775603barEv,_ZThn16_N7ee775603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775603barEv,_ZTv0_n12_N7ee775603barEv)();
+extern void ABISELECT(_ZThn48_N7ee775603barEv,_ZThn24_N7ee775603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775603fooEv,_ZTv0_n16_N7ee775603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775603fooEv,_ZThn24_N7ee775603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77560[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77560[0]),
+ (VTBL_ENTRY)&_ZN7ee775603fooEv,
+ (VTBL_ENTRY)&_ZN7ee775603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775603barEv,_ZTv0_n20_N7ee775603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775603fooEv,_ZTv0_n24_N7ee775603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775603barEv,_ZTv0_n16_N7ee775603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775603barEv,_ZTv0_n12_N7ee775603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775603fooEv,_ZTv0_n16_N7ee775603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77560[];
+extern void _ZN6dd75603barEv();
+extern void _ZN6dd75603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7560__7ee77560[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&_ZN6dd75603barEv,
+ (VTBL_ENTRY)&_ZN6dd75603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv)();
+extern void ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc560__6dd7560__7ee77560[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv)();
+extern void ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7560__7ee77560[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv),
+};
+extern void _ZN5cc5603barEv();
+static VTBL_ENTRY _tg__ZTV5cc560__7ee77560[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&_ZN5cc5603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv)();
+extern void ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv)() __attribute__((weak));
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY _tg__ZTV4bb60__5cc560__7ee77560[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc560[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+static VTT_ENTRY vtt_ee77560[] = {
+ {&(_ZTV7ee77560[5]), 5,26},
+ {&(_ZTV7ee77560[13]), 13,26},
+ {&(_ZTV7ee77560[19]), 19,26},
+ {&(_ZTV7ee77560[24]), 24,26},
+ {&(_tg__ZTV6dd7560__7ee77560[4]), 4,6},
+ {&(_tg__ZTV5cc560__6dd7560__7ee77560[4]), 4,5},
+ {&(_tg__ZTV4bb60__6dd7560__7ee77560[4]), 4,6},
+ {&(_tg__ZTV5cc560__7ee77560[3]), 3,4},
+ {&(_tg__ZTV4bb60__5cc560__7ee77560[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77560[];
+extern VTBL_ENTRY _ZTV7ee77560[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77560[];
+static VTBL_ENTRY alt_thunk_names347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc5603barEv,_ZTv0_n12_N5cc5603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5603barEv,_ZThn8_N5cc5603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603fooEv,_ZTv0_n16_N6dd75603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603fooEv,_ZThn16_N6dd75603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75603barEv,_ZTv0_n12_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75603barEv,_ZThn16_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75603barEv,_ZTv0_n16_N6dd75603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75603barEv,_ZThn8_N6dd75603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775603fooEv,_ZTv0_n16_N7ee775603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775603fooEv,_ZThn24_N7ee775603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775603barEv,_ZTv0_n12_N7ee775603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775603barEv,_ZThn24_N7ee775603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775603barEv,_ZTv0_n16_N7ee775603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775603barEv,_ZThn16_N7ee775603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775603fooEv,_ZTv0_n24_N7ee775603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775603fooEv,_ZThn8_N7ee775603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775603barEv,_ZTv0_n20_N7ee775603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775603barEv,_ZThn8_N7ee775603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77560 = { "ee77560", // class name
+ bases_ee77560, 4,
+ &(vtc_ee77560[0]), // expected_vtbl_contents
+ &(vtt_ee77560[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77560),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77560),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77560),9, //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 cc660 : bb60 {
+ int c;
+ virtual void foo(); // _ZN5cc6603fooEv
+ virtual void bar(); // _ZN5cc6603barEv
+ ~cc660(); // tgen
+ cc660(); // tgen
+};
+//SIG(-1 cc660) C1{ BC2{ BC3{ Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc660 ::foo(){vfunc_called(this, "_ZN5cc6603fooEv");}
+void cc660 ::bar(){vfunc_called(this, "_ZN5cc6603barEv");}
+cc660 ::~cc660(){ note_dtor("cc660", this);} // tgen
+cc660 ::cc660(){ note_ctor("cc660", this);} // tgen
+
+static void Test_cc660()
+{
+ extern Class_Descriptor cd_cc660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc660, buf);
+ cc660 *dp, &lv = *(dp=new (buf) cc660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc660)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(8,4), "cc660");
+ check_base_class_offset(lv, (bb60*), 0, "cc660");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc660.c");
+ test_class_info(&lv, &cd_cc660);
+ dp->~cc660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc660(Test_cc660, "cc660", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc660C1Ev();
+extern void _ZN5cc660D1Ev();
+Name_Map name_map_cc660[] = {
+ NSPAIR(_ZN5cc660C1Ev),
+ NSPAIR(_ZN5cc660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_cc660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+Class_Descriptor cd_cc660 = { "cc660", // class name
+ bases_cc660, 2,
+ &(vtc_cc660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc660),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 dd0660 : cc660 {
+ int d;
+ ~dd0660(); // tgen
+ dd0660(); // tgen
+};
+//SIG(-1 dd0660) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0660 ::~dd0660(){ note_dtor("dd0660", this);} // tgen
+dd0660 ::dd0660(){ note_ctor("dd0660", this);} // tgen
+
+static void Test_dd0660()
+{
+ extern Class_Descriptor cd_dd0660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0660, buf);
+ dd0660 *dp, &lv = *(dp=new (buf) dd0660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(8,4), "dd0660");
+ check_base_class_offset(lv, (bb60*)(cc660*), 0, "dd0660");
+ check_base_class_offset(lv, (cc660*), 0, "dd0660");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0660.d");
+ test_class_info(&lv, &cd_dd0660);
+ dp->~dd0660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0660(Test_dd0660, "dd0660", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0660C1Ev();
+extern void _ZN6dd0660D1Ev();
+Name_Map name_map_dd0660[] = {
+ NSPAIR(_ZN6dd0660C1Ev),
+ NSPAIR(_ZN6dd0660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd0660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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 _ZTI6dd0660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_dd0660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+Class_Descriptor cd_dd0660 = { "dd0660", // class name
+ bases_dd0660, 3,
+ &(vtc_dd0660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0660),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 ee00660 : dd0660 {
+ int e;
+ ~ee00660(); // tgen
+ ee00660(); // tgen
+};
+//SIG(1 ee00660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00660 ::~ee00660(){ note_dtor("ee00660", this);} // tgen
+ee00660 ::ee00660(){ note_ctor("ee00660", this);} // tgen
+
+static void Test_ee00660()
+{
+ extern Class_Descriptor cd_ee00660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00660, buf);
+ ee00660 *dp, &lv = *(dp=new (buf) ee00660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(8,4), "ee00660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), 0, "ee00660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), 0, "ee00660");
+ check_base_class_offset(lv, (dd0660*), 0, "ee00660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00660.e");
+ test_class_info(&lv, &cd_ee00660);
+ dp->~ee00660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00660(Test_ee00660, "ee00660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00660C1Ev();
+extern void _ZN7ee00660D1Ev();
+Name_Map name_map_ee00660[] = {
+ NSPAIR(_ZN7ee00660C1Ev),
+ NSPAIR(_ZN7ee00660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee00660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd0660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee00660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00660[];
+extern VTBL_ENTRY _ZTV7ee00660[];
+Class_Descriptor cd_ee00660 = { "ee00660", // class name
+ bases_ee00660, 4,
+ &(vtc_ee00660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00660),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 ee10660 : virtual dd0660 {
+ int e;
+ ~ee10660(); // tgen
+ ee10660(); // tgen
+};
+//SIG(1 ee10660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10660 ::~ee10660(){ note_dtor("ee10660", this);} // tgen
+ee10660 ::ee10660(){ note_ctor("ee10660", this);} // tgen
+
+static void Test_ee10660()
+{
+ extern Class_Descriptor cd_ee10660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10660, buf);
+ ee10660 *dp, &lv = *(dp=new (buf) ee10660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(24,12), "ee10660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), ABISELECT(16,8), "ee10660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), ABISELECT(16,8), "ee10660");
+ check_base_class_offset(lv, (dd0660*), ABISELECT(16,8), "ee10660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10660.e");
+ test_class_info(&lv, &cd_ee10660);
+ dp->~ee10660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10660(Test_ee10660, "ee10660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10660C1Ev();
+extern void _ZN7ee10660D1Ev();
+Name_Map name_map_ee10660[] = {
+ NSPAIR(_ZN7ee10660C1Ev),
+ NSPAIR(_ZN7ee10660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee10660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd0660, 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 _ZTI7ee10660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee10660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10660[];
+static VTT_ENTRY vtt_ee10660[] = {
+ {&(_ZTV7ee10660[3]), 3,9},
+ {&(_ZTV7ee10660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10660[];
+extern VTBL_ENTRY _ZTV7ee10660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10660[];
+Class_Descriptor cd_ee10660 = { "ee10660", // class name
+ bases_ee10660, 4,
+ &(vtc_ee10660[0]), // expected_vtbl_contents
+ &(vtt_ee10660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10660),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 ee20660 : dd0660 {
+ int e;
+ virtual void foo(); // _ZN7ee206603fooEv
+ ~ee20660(); // tgen
+ ee20660(); // tgen
+};
+//SIG(1 ee20660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20660 ::foo(){vfunc_called(this, "_ZN7ee206603fooEv");}
+ee20660 ::~ee20660(){ note_dtor("ee20660", this);} // tgen
+ee20660 ::ee20660(){ note_ctor("ee20660", this);} // tgen
+
+static void Test_ee20660()
+{
+ extern Class_Descriptor cd_ee20660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20660, buf);
+ ee20660 *dp, &lv = *(dp=new (buf) ee20660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(8,4), "ee20660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), 0, "ee20660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), 0, "ee20660");
+ check_base_class_offset(lv, (dd0660*), 0, "ee20660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20660.e");
+ test_class_info(&lv, &cd_ee20660);
+ dp->~ee20660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20660(Test_ee20660, "ee20660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20660C1Ev();
+extern void _ZN7ee20660D1Ev();
+Name_Map name_map_ee20660[] = {
+ NSPAIR(_ZN7ee20660C1Ev),
+ NSPAIR(_ZN7ee20660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee20660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN7ee206603fooEv();
+static VTBL_ENTRY vtc_ee20660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN7ee206603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20660[];
+extern VTBL_ENTRY _ZTV7ee20660[];
+Class_Descriptor cd_ee20660 = { "ee20660", // class name
+ bases_ee20660, 4,
+ &(vtc_ee20660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20660),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 ee30660 : virtual dd0660 {
+ int e;
+ virtual void foo(); // _ZN7ee306603fooEv
+ ~ee30660(); // tgen
+ ee30660(); // tgen
+};
+//SIG(1 ee30660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30660 ::foo(){vfunc_called(this, "_ZN7ee306603fooEv");}
+ee30660 ::~ee30660(){ note_dtor("ee30660", this);} // tgen
+ee30660 ::ee30660(){ note_ctor("ee30660", this);} // tgen
+
+static void Test_ee30660()
+{
+ extern Class_Descriptor cd_ee30660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30660, buf);
+ ee30660 *dp, &lv = *(dp=new (buf) ee30660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(24,12), "ee30660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), ABISELECT(16,8), "ee30660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), ABISELECT(16,8), "ee30660");
+ check_base_class_offset(lv, (dd0660*), ABISELECT(16,8), "ee30660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30660.e");
+ test_class_info(&lv, &cd_ee30660);
+ dp->~ee30660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30660(Test_ee30660, "ee30660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30660C1Ev();
+extern void _ZN7ee30660D1Ev();
+Name_Map name_map_ee30660[] = {
+ NSPAIR(_ZN7ee30660C1Ev),
+ NSPAIR(_ZN7ee30660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee30660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd0660, 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 _ZTI7ee30660[];
+extern void _ZN7ee306603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee306603fooEv,_ZTv0_n16_N7ee306603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306603fooEv,_ZThn8_N7ee306603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30660[0]),
+ (VTBL_ENTRY)&_ZN7ee306603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee306603fooEv,_ZTv0_n16_N7ee306603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30660[];
+static VTT_ENTRY vtt_ee30660[] = {
+ {&(_ZTV7ee30660[3]), 3,10},
+ {&(_ZTV7ee30660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30660[];
+extern VTBL_ENTRY _ZTV7ee30660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30660[];
+static VTBL_ENTRY alt_thunk_names348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee306603fooEv,_ZTv0_n16_N7ee306603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306603fooEv,_ZThn8_N7ee306603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30660 = { "ee30660", // class name
+ bases_ee30660, 4,
+ &(vtc_ee30660[0]), // expected_vtbl_contents
+ &(vtt_ee30660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30660),2, //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 ee40660 : dd0660 {
+ int e;
+ virtual void bar(); // _ZN7ee406603barEv
+ ~ee40660(); // tgen
+ ee40660(); // tgen
+};
+//SIG(1 ee40660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40660 ::bar(){vfunc_called(this, "_ZN7ee406603barEv");}
+ee40660 ::~ee40660(){ note_dtor("ee40660", this);} // tgen
+ee40660 ::ee40660(){ note_ctor("ee40660", this);} // tgen
+
+static void Test_ee40660()
+{
+ extern Class_Descriptor cd_ee40660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40660, buf);
+ ee40660 *dp, &lv = *(dp=new (buf) ee40660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(8,4), "ee40660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), 0, "ee40660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), 0, "ee40660");
+ check_base_class_offset(lv, (dd0660*), 0, "ee40660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40660.e");
+ test_class_info(&lv, &cd_ee40660);
+ dp->~ee40660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40660(Test_ee40660, "ee40660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40660C1Ev();
+extern void _ZN7ee40660D1Ev();
+Name_Map name_map_ee40660[] = {
+ NSPAIR(_ZN7ee40660C1Ev),
+ NSPAIR(_ZN7ee40660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee40660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40660[];
+extern void _ZN7ee406603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee40660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40660[0]),
+ (VTBL_ENTRY)&_ZN7ee406603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee40660[];
+extern VTBL_ENTRY _ZTV7ee40660[];
+Class_Descriptor cd_ee40660 = { "ee40660", // class name
+ bases_ee40660, 4,
+ &(vtc_ee40660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40660),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 ee50660 : virtual dd0660 {
+ int e;
+ virtual void bar(); // _ZN7ee506603barEv
+ ~ee50660(); // tgen
+ ee50660(); // tgen
+};
+//SIG(1 ee50660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50660 ::bar(){vfunc_called(this, "_ZN7ee506603barEv");}
+ee50660 ::~ee50660(){ note_dtor("ee50660", this);} // tgen
+ee50660 ::ee50660(){ note_ctor("ee50660", this);} // tgen
+
+static void Test_ee50660()
+{
+ extern Class_Descriptor cd_ee50660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50660, buf);
+ ee50660 *dp, &lv = *(dp=new (buf) ee50660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(24,12), "ee50660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), ABISELECT(16,8), "ee50660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), ABISELECT(16,8), "ee50660");
+ check_base_class_offset(lv, (dd0660*), ABISELECT(16,8), "ee50660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50660.e");
+ test_class_info(&lv, &cd_ee50660);
+ dp->~ee50660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50660(Test_ee50660, "ee50660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50660C1Ev();
+extern void _ZN7ee50660D1Ev();
+Name_Map name_map_ee50660[] = {
+ NSPAIR(_ZN7ee50660C1Ev),
+ NSPAIR(_ZN7ee50660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee50660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd0660, 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 _ZTI7ee50660[];
+extern void _ZN7ee506603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee506603barEv,_ZTv0_n12_N7ee506603barEv)();
+extern void ABISELECT(_ZThn16_N7ee506603barEv,_ZThn8_N7ee506603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee50660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50660[0]),
+ (VTBL_ENTRY)&_ZN7ee506603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee506603barEv,_ZTv0_n12_N7ee506603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50660[];
+static VTT_ENTRY vtt_ee50660[] = {
+ {&(_ZTV7ee50660[3]), 3,10},
+ {&(_ZTV7ee50660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50660[];
+extern VTBL_ENTRY _ZTV7ee50660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50660[];
+static VTBL_ENTRY alt_thunk_names349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee506603barEv,_ZTv0_n12_N7ee506603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506603barEv,_ZThn8_N7ee506603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50660 = { "ee50660", // class name
+ bases_ee50660, 4,
+ &(vtc_ee50660[0]), // expected_vtbl_contents
+ &(vtt_ee50660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50660),2, //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 ee60660 : dd0660 {
+ int e;
+ virtual void foo(); // _ZN7ee606603fooEv
+ virtual void bar(); // _ZN7ee606603barEv
+ ~ee60660(); // tgen
+ ee60660(); // tgen
+};
+//SIG(1 ee60660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60660 ::foo(){vfunc_called(this, "_ZN7ee606603fooEv");}
+void ee60660 ::bar(){vfunc_called(this, "_ZN7ee606603barEv");}
+ee60660 ::~ee60660(){ note_dtor("ee60660", this);} // tgen
+ee60660 ::ee60660(){ note_ctor("ee60660", this);} // tgen
+
+static void Test_ee60660()
+{
+ extern Class_Descriptor cd_ee60660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60660, buf);
+ ee60660 *dp, &lv = *(dp=new (buf) ee60660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(8,4), "ee60660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), 0, "ee60660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), 0, "ee60660");
+ check_base_class_offset(lv, (dd0660*), 0, "ee60660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60660.e");
+ test_class_info(&lv, &cd_ee60660);
+ dp->~ee60660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60660(Test_ee60660, "ee60660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60660C1Ev();
+extern void _ZN7ee60660D1Ev();
+Name_Map name_map_ee60660[] = {
+ NSPAIR(_ZN7ee60660C1Ev),
+ NSPAIR(_ZN7ee60660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee60660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60660[];
+extern void _ZN7ee606603barEv();
+extern void _ZN7ee606603fooEv();
+static VTBL_ENTRY vtc_ee60660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60660[0]),
+ (VTBL_ENTRY)&_ZN7ee606603barEv,
+ (VTBL_ENTRY)&_ZN7ee606603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee60660[];
+extern VTBL_ENTRY _ZTV7ee60660[];
+Class_Descriptor cd_ee60660 = { "ee60660", // class name
+ bases_ee60660, 4,
+ &(vtc_ee60660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60660),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 ee70660 : virtual dd0660 {
+ int e;
+ virtual void foo(); // _ZN7ee706603fooEv
+ virtual void bar(); // _ZN7ee706603barEv
+ ~ee70660(); // tgen
+ ee70660(); // tgen
+};
+//SIG(1 ee70660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70660 ::foo(){vfunc_called(this, "_ZN7ee706603fooEv");}
+void ee70660 ::bar(){vfunc_called(this, "_ZN7ee706603barEv");}
+ee70660 ::~ee70660(){ note_dtor("ee70660", this);} // tgen
+ee70660 ::ee70660(){ note_ctor("ee70660", this);} // tgen
+
+static void Test_ee70660()
+{
+ extern Class_Descriptor cd_ee70660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70660, buf);
+ ee70660 *dp, &lv = *(dp=new (buf) ee70660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd0660*), ABISELECT(24,12), "ee70660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd0660*), ABISELECT(16,8), "ee70660");
+ check_base_class_offset(lv, (cc660*)(dd0660*), ABISELECT(16,8), "ee70660");
+ check_base_class_offset(lv, (dd0660*), ABISELECT(16,8), "ee70660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70660.e");
+ test_class_info(&lv, &cd_ee70660);
+ dp->~ee70660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70660(Test_ee70660, "ee70660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70660C1Ev();
+extern void _ZN7ee70660D1Ev();
+Name_Map name_map_ee70660[] = {
+ NSPAIR(_ZN7ee70660C1Ev),
+ NSPAIR(_ZN7ee70660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd0660;
+extern VTBL_ENTRY _ZTI6dd0660[];
+extern VTBL_ENTRY _ZTV6dd0660[];
+static Base_Class bases_ee70660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd0660, 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 _ZTI7ee70660[];
+extern void _ZN7ee706603fooEv();
+extern void _ZN7ee706603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706603barEv,_ZTv0_n12_N7ee706603barEv)();
+extern void ABISELECT(_ZThn16_N7ee706603barEv,_ZThn8_N7ee706603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706603fooEv,_ZTv0_n16_N7ee706603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706603fooEv,_ZThn8_N7ee706603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70660[0]),
+ (VTBL_ENTRY)&_ZN7ee706603fooEv,
+ (VTBL_ENTRY)&_ZN7ee706603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706603barEv,_ZTv0_n12_N7ee706603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706603fooEv,_ZTv0_n16_N7ee706603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70660[];
+static VTT_ENTRY vtt_ee70660[] = {
+ {&(_ZTV7ee70660[3]), 3,11},
+ {&(_ZTV7ee70660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70660[];
+extern VTBL_ENTRY _ZTV7ee70660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70660[];
+static VTBL_ENTRY alt_thunk_names350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706603fooEv,_ZTv0_n16_N7ee706603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706603fooEv,_ZThn8_N7ee706603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706603barEv,_ZTv0_n12_N7ee706603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706603barEv,_ZThn8_N7ee706603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70660 = { "ee70660", // class name
+ bases_ee70660, 4,
+ &(vtc_ee70660[0]), // expected_vtbl_contents
+ &(vtt_ee70660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70660),2, //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 dd1660 : virtual cc660 {
+ int d;
+ ~dd1660(); // tgen
+ dd1660(); // tgen
+};
+//SIG(-1 dd1660) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1660 ::~dd1660(){ note_dtor("dd1660", this);} // tgen
+dd1660 ::dd1660(){ note_ctor("dd1660", this);} // tgen
+
+static void Test_dd1660()
+{
+ extern Class_Descriptor cd_dd1660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1660, buf);
+ dd1660 *dp, &lv = *(dp=new (buf) dd1660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,12), "dd1660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,8), "dd1660");
+ check_base_class_offset(lv, (cc660*), ABISELECT(16,8), "dd1660");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1660.d");
+ test_class_info(&lv, &cd_dd1660);
+ dp->~dd1660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1660(Test_dd1660, "dd1660", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1660C1Ev();
+extern void _ZN6dd1660D1Ev();
+Name_Map name_map_dd1660[] = {
+ NSPAIR(_ZN6dd1660C1Ev),
+ NSPAIR(_ZN6dd1660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd1660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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 _ZTI6dd1660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_dd1660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1660[];
+static VTT_ENTRY vtt_dd1660[] = {
+ {&(_ZTV6dd1660[3]), 3,9},
+ {&(_ZTV6dd1660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+Class_Descriptor cd_dd1660 = { "dd1660", // class name
+ bases_dd1660, 3,
+ &(vtc_dd1660[0]), // expected_vtbl_contents
+ &(vtt_dd1660[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1660),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 ee01660 : dd1660 {
+ int e;
+ ~ee01660(); // tgen
+ ee01660(); // tgen
+};
+//SIG(1 ee01660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01660 ::~ee01660(){ note_dtor("ee01660", this);} // tgen
+ee01660 ::ee01660(){ note_ctor("ee01660", this);} // tgen
+
+static void Test_ee01660()
+{
+ extern Class_Descriptor cd_ee01660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01660, buf);
+ ee01660 *dp, &lv = *(dp=new (buf) ee01660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee01660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee01660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(16,12), "ee01660");
+ check_base_class_offset(lv, (dd1660*), 0, "ee01660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01660.e");
+ test_class_info(&lv, &cd_ee01660);
+ dp->~ee01660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01660(Test_ee01660, "ee01660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01660C1Ev();
+extern void _ZN7ee01660D1Ev();
+Name_Map name_map_ee01660[] = {
+ NSPAIR(_ZN7ee01660C1Ev),
+ NSPAIR(_ZN7ee01660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee01660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee01660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee01660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee01660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee01660[] = {
+ {&(_ZTV7ee01660[3]), 3,9},
+ {&(_tg__ZTV6dd1660__7ee01660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee01660[4]), 4,6},
+ {&(_ZTV7ee01660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01660[];
+extern VTBL_ENTRY _ZTV7ee01660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01660[];
+Class_Descriptor cd_ee01660 = { "ee01660", // class name
+ bases_ee01660, 4,
+ &(vtc_ee01660[0]), // expected_vtbl_contents
+ &(vtt_ee01660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01660),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 ee11660 : virtual dd1660 {
+ int e;
+ ~ee11660(); // tgen
+ ee11660(); // tgen
+};
+//SIG(1 ee11660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11660 ::~ee11660(){ note_dtor("ee11660", this);} // tgen
+ee11660 ::ee11660(){ note_ctor("ee11660", this);} // tgen
+
+static void Test_ee11660()
+{
+ extern Class_Descriptor cd_ee11660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11660, buf);
+ ee11660 *dp, &lv = *(dp=new (buf) ee11660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee11660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee11660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(32,16), "ee11660");
+ check_base_class_offset(lv, (dd1660*), ABISELECT(16,8), "ee11660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11660.e");
+ test_class_info(&lv, &cd_ee11660);
+ dp->~ee11660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11660(Test_ee11660, "ee11660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11660C1Ev();
+extern void _ZN7ee11660D1Ev();
+Name_Map name_map_ee11660[] = {
+ NSPAIR(_ZN7ee11660C1Ev),
+ NSPAIR(_ZN7ee11660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee11660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 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 _ZTI7ee11660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee11660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11660[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11660[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee11660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee11660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee11660[] = {
+ {&(_ZTV7ee11660[4]), 4,13},
+ {&(_ZTV7ee11660[7]), 7,13},
+ {&(_ZTV7ee11660[11]), 11,13},
+ {&(_tg__ZTV6dd1660__7ee11660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee11660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11660[];
+extern VTBL_ENTRY _ZTV7ee11660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11660[];
+Class_Descriptor cd_ee11660 = { "ee11660", // class name
+ bases_ee11660, 4,
+ &(vtc_ee11660[0]), // expected_vtbl_contents
+ &(vtt_ee11660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11660),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11660),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 ee21660 : dd1660 {
+ int e;
+ virtual void foo(); // _ZN7ee216603fooEv
+ ~ee21660(); // tgen
+ ee21660(); // tgen
+};
+//SIG(1 ee21660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21660 ::foo(){vfunc_called(this, "_ZN7ee216603fooEv");}
+ee21660 ::~ee21660(){ note_dtor("ee21660", this);} // tgen
+ee21660 ::ee21660(){ note_ctor("ee21660", this);} // tgen
+
+static void Test_ee21660()
+{
+ extern Class_Descriptor cd_ee21660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21660, buf);
+ ee21660 *dp, &lv = *(dp=new (buf) ee21660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee21660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee21660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(16,12), "ee21660");
+ check_base_class_offset(lv, (dd1660*), 0, "ee21660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21660.e");
+ test_class_info(&lv, &cd_ee21660);
+ dp->~ee21660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21660(Test_ee21660, "ee21660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21660C1Ev();
+extern void _ZN7ee21660D1Ev();
+Name_Map name_map_ee21660[] = {
+ NSPAIR(_ZN7ee21660C1Ev),
+ NSPAIR(_ZN7ee21660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee21660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21660[];
+extern void _ZN7ee216603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee216603fooEv,_ZTv0_n16_N7ee216603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216603fooEv,_ZThn12_N7ee216603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21660[0]),
+ (VTBL_ENTRY)&_ZN7ee216603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee216603fooEv,_ZTv0_n16_N7ee216603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee21660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee21660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee21660[] = {
+ {&(_ZTV7ee21660[3]), 3,10},
+ {&(_tg__ZTV6dd1660__7ee21660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee21660[4]), 4,6},
+ {&(_ZTV7ee21660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21660[];
+extern VTBL_ENTRY _ZTV7ee21660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21660[];
+static VTBL_ENTRY alt_thunk_names351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee216603fooEv,_ZTv0_n16_N7ee216603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216603fooEv,_ZThn12_N7ee216603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21660 = { "ee21660", // class name
+ bases_ee21660, 4,
+ &(vtc_ee21660[0]), // expected_vtbl_contents
+ &(vtt_ee21660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21660),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 ee31660 : virtual dd1660 {
+ int e;
+ virtual void foo(); // _ZN7ee316603fooEv
+ ~ee31660(); // tgen
+ ee31660(); // tgen
+};
+//SIG(1 ee31660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31660 ::foo(){vfunc_called(this, "_ZN7ee316603fooEv");}
+ee31660 ::~ee31660(){ note_dtor("ee31660", this);} // tgen
+ee31660 ::ee31660(){ note_ctor("ee31660", this);} // tgen
+
+static void Test_ee31660()
+{
+ extern Class_Descriptor cd_ee31660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31660, buf);
+ ee31660 *dp, &lv = *(dp=new (buf) ee31660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee31660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee31660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(32,16), "ee31660");
+ check_base_class_offset(lv, (dd1660*), ABISELECT(16,8), "ee31660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31660.e");
+ test_class_info(&lv, &cd_ee31660);
+ dp->~ee31660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31660(Test_ee31660, "ee31660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31660C1Ev();
+extern void _ZN7ee31660D1Ev();
+Name_Map name_map_ee31660[] = {
+ NSPAIR(_ZN7ee31660C1Ev),
+ NSPAIR(_ZN7ee31660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee31660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 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 _ZTI7ee31660[];
+extern void _ZN7ee316603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee316603fooEv,_ZTv0_n16_N7ee316603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316603fooEv,_ZThn16_N7ee316603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31660[0]),
+ (VTBL_ENTRY)&_ZN7ee316603fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31660[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee316603fooEv,_ZTv0_n16_N7ee316603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee31660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee31660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee31660[] = {
+ {&(_ZTV7ee31660[4]), 4,14},
+ {&(_ZTV7ee31660[8]), 8,14},
+ {&(_ZTV7ee31660[12]), 12,14},
+ {&(_tg__ZTV6dd1660__7ee31660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee31660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31660[];
+extern VTBL_ENTRY _ZTV7ee31660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31660[];
+static VTBL_ENTRY alt_thunk_names352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee316603fooEv,_ZTv0_n16_N7ee316603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316603fooEv,_ZThn16_N7ee316603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31660 = { "ee31660", // class name
+ bases_ee31660, 4,
+ &(vtc_ee31660[0]), // expected_vtbl_contents
+ &(vtt_ee31660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31660),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31660),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 ee41660 : dd1660 {
+ int e;
+ virtual void bar(); // _ZN7ee416603barEv
+ ~ee41660(); // tgen
+ ee41660(); // tgen
+};
+//SIG(1 ee41660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41660 ::bar(){vfunc_called(this, "_ZN7ee416603barEv");}
+ee41660 ::~ee41660(){ note_dtor("ee41660", this);} // tgen
+ee41660 ::ee41660(){ note_ctor("ee41660", this);} // tgen
+
+static void Test_ee41660()
+{
+ extern Class_Descriptor cd_ee41660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41660, buf);
+ ee41660 *dp, &lv = *(dp=new (buf) ee41660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee41660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee41660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(16,12), "ee41660");
+ check_base_class_offset(lv, (dd1660*), 0, "ee41660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41660.e");
+ test_class_info(&lv, &cd_ee41660);
+ dp->~ee41660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41660(Test_ee41660, "ee41660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41660C1Ev();
+extern void _ZN7ee41660D1Ev();
+Name_Map name_map_ee41660[] = {
+ NSPAIR(_ZN7ee41660C1Ev),
+ NSPAIR(_ZN7ee41660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee41660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41660[];
+extern void _ZN7ee416603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee416603barEv,_ZTv0_n12_N7ee416603barEv)();
+extern void ABISELECT(_ZThn16_N7ee416603barEv,_ZThn12_N7ee416603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee41660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41660[0]),
+ (VTBL_ENTRY)&_ZN7ee416603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee416603barEv,_ZTv0_n12_N7ee416603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee41660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee41660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee41660[] = {
+ {&(_ZTV7ee41660[3]), 3,10},
+ {&(_tg__ZTV6dd1660__7ee41660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee41660[4]), 4,6},
+ {&(_ZTV7ee41660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41660[];
+extern VTBL_ENTRY _ZTV7ee41660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41660[];
+static VTBL_ENTRY alt_thunk_names353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee416603barEv,_ZTv0_n12_N7ee416603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416603barEv,_ZThn12_N7ee416603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41660 = { "ee41660", // class name
+ bases_ee41660, 4,
+ &(vtc_ee41660[0]), // expected_vtbl_contents
+ &(vtt_ee41660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41660),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51660 : virtual dd1660 {
+ int e;
+ virtual void bar(); // _ZN7ee516603barEv
+ ~ee51660(); // tgen
+ ee51660(); // tgen
+};
+//SIG(1 ee51660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51660 ::bar(){vfunc_called(this, "_ZN7ee516603barEv");}
+ee51660 ::~ee51660(){ note_dtor("ee51660", this);} // tgen
+ee51660 ::ee51660(){ note_ctor("ee51660", this);} // tgen
+
+static void Test_ee51660()
+{
+ extern Class_Descriptor cd_ee51660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51660, buf);
+ ee51660 *dp, &lv = *(dp=new (buf) ee51660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee51660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee51660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(32,16), "ee51660");
+ check_base_class_offset(lv, (dd1660*), ABISELECT(16,8), "ee51660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51660.e");
+ test_class_info(&lv, &cd_ee51660);
+ dp->~ee51660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51660(Test_ee51660, "ee51660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51660C1Ev();
+extern void _ZN7ee51660D1Ev();
+Name_Map name_map_ee51660[] = {
+ NSPAIR(_ZN7ee51660C1Ev),
+ NSPAIR(_ZN7ee51660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee51660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 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 _ZTI7ee51660[];
+extern void _ZN7ee516603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee516603barEv,_ZTv0_n12_N7ee516603barEv)();
+extern void ABISELECT(_ZThn32_N7ee516603barEv,_ZThn16_N7ee516603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee51660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51660[0]),
+ (VTBL_ENTRY)&_ZN7ee516603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51660[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee516603barEv,_ZTv0_n12_N7ee516603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee51660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee51660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee51660[] = {
+ {&(_ZTV7ee51660[4]), 4,14},
+ {&(_ZTV7ee51660[8]), 8,14},
+ {&(_ZTV7ee51660[12]), 12,14},
+ {&(_tg__ZTV6dd1660__7ee51660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee51660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51660[];
+extern VTBL_ENTRY _ZTV7ee51660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51660[];
+static VTBL_ENTRY alt_thunk_names354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee516603barEv,_ZTv0_n12_N7ee516603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516603barEv,_ZThn16_N7ee516603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51660 = { "ee51660", // class name
+ bases_ee51660, 4,
+ &(vtc_ee51660[0]), // expected_vtbl_contents
+ &(vtt_ee51660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51660),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51660),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61660 : dd1660 {
+ int e;
+ virtual void foo(); // _ZN7ee616603fooEv
+ virtual void bar(); // _ZN7ee616603barEv
+ ~ee61660(); // tgen
+ ee61660(); // tgen
+};
+//SIG(1 ee61660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61660 ::foo(){vfunc_called(this, "_ZN7ee616603fooEv");}
+void ee61660 ::bar(){vfunc_called(this, "_ZN7ee616603barEv");}
+ee61660 ::~ee61660(){ note_dtor("ee61660", this);} // tgen
+ee61660 ::ee61660(){ note_ctor("ee61660", this);} // tgen
+
+static void Test_ee61660()
+{
+ extern Class_Descriptor cd_ee61660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61660, buf);
+ ee61660 *dp, &lv = *(dp=new (buf) ee61660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee61660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee61660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(16,12), "ee61660");
+ check_base_class_offset(lv, (dd1660*), 0, "ee61660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61660.e");
+ test_class_info(&lv, &cd_ee61660);
+ dp->~ee61660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61660(Test_ee61660, "ee61660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61660C1Ev();
+extern void _ZN7ee61660D1Ev();
+Name_Map name_map_ee61660[] = {
+ NSPAIR(_ZN7ee61660C1Ev),
+ NSPAIR(_ZN7ee61660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee61660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61660[];
+extern void _ZN7ee616603fooEv();
+extern void _ZN7ee616603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616603barEv,_ZTv0_n12_N7ee616603barEv)();
+extern void ABISELECT(_ZThn16_N7ee616603barEv,_ZThn12_N7ee616603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616603fooEv,_ZTv0_n16_N7ee616603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616603fooEv,_ZThn12_N7ee616603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61660[0]),
+ (VTBL_ENTRY)&_ZN7ee616603fooEv,
+ (VTBL_ENTRY)&_ZN7ee616603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616603barEv,_ZTv0_n12_N7ee616603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616603fooEv,_ZTv0_n16_N7ee616603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee61660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee61660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee61660[] = {
+ {&(_ZTV7ee61660[3]), 3,11},
+ {&(_tg__ZTV6dd1660__7ee61660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee61660[4]), 4,6},
+ {&(_ZTV7ee61660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61660[];
+extern VTBL_ENTRY _ZTV7ee61660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61660[];
+static VTBL_ENTRY alt_thunk_names355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616603fooEv,_ZTv0_n16_N7ee616603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616603fooEv,_ZThn12_N7ee616603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616603barEv,_ZTv0_n12_N7ee616603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616603barEv,_ZThn12_N7ee616603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61660 = { "ee61660", // class name
+ bases_ee61660, 4,
+ &(vtc_ee61660[0]), // expected_vtbl_contents
+ &(vtt_ee61660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61660),4, //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 ee71660 : virtual dd1660 {
+ int e;
+ virtual void foo(); // _ZN7ee716603fooEv
+ virtual void bar(); // _ZN7ee716603barEv
+ ~ee71660(); // tgen
+ ee71660(); // tgen
+};
+//SIG(1 ee71660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71660 ::foo(){vfunc_called(this, "_ZN7ee716603fooEv");}
+void ee71660 ::bar(){vfunc_called(this, "_ZN7ee716603barEv");}
+ee71660 ::~ee71660(){ note_dtor("ee71660", this);} // tgen
+ee71660 ::ee71660(){ note_ctor("ee71660", this);} // tgen
+
+static void Test_ee71660()
+{
+ extern Class_Descriptor cd_ee71660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71660, buf);
+ ee71660 *dp, &lv = *(dp=new (buf) ee71660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee71660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee71660");
+ check_base_class_offset(lv, (cc660*)(dd1660*), ABISELECT(32,16), "ee71660");
+ check_base_class_offset(lv, (dd1660*), ABISELECT(16,8), "ee71660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71660.e");
+ test_class_info(&lv, &cd_ee71660);
+ dp->~ee71660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71660(Test_ee71660, "ee71660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71660C1Ev();
+extern void _ZN7ee71660D1Ev();
+Name_Map name_map_ee71660[] = {
+ NSPAIR(_ZN7ee71660C1Ev),
+ NSPAIR(_ZN7ee71660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd1660;
+extern VTBL_ENTRY _ZTI6dd1660[];
+extern VTBL_ENTRY _ZTV6dd1660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1660[];
+static Base_Class bases_ee71660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd1660, 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 _ZTI7ee71660[];
+extern void _ZN7ee716603fooEv();
+extern void _ZN7ee716603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716603barEv,_ZTv0_n12_N7ee716603barEv)();
+extern void ABISELECT(_ZThn32_N7ee716603barEv,_ZThn16_N7ee716603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716603fooEv,_ZTv0_n16_N7ee716603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716603fooEv,_ZThn16_N7ee716603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71660[0]),
+ (VTBL_ENTRY)&_ZN7ee716603fooEv,
+ (VTBL_ENTRY)&_ZN7ee716603barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71660[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716603barEv,_ZTv0_n12_N7ee716603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716603fooEv,_ZTv0_n16_N7ee716603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71660[];
+static VTBL_ENTRY _tg__ZTV6dd1660__7ee71660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+};
+extern void _ZN5cc6603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd1660__7ee71660[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee71660[] = {
+ {&(_ZTV7ee71660[4]), 4,15},
+ {&(_ZTV7ee71660[9]), 9,15},
+ {&(_ZTV7ee71660[13]), 13,15},
+ {&(_tg__ZTV6dd1660__7ee71660[3]), 3,3},
+ {&(_tg__ZTV5cc660__6dd1660__7ee71660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71660[];
+extern VTBL_ENTRY _ZTV7ee71660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71660[];
+static VTBL_ENTRY alt_thunk_names356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716603fooEv,_ZTv0_n16_N7ee716603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716603fooEv,_ZThn16_N7ee716603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716603barEv,_ZTv0_n12_N7ee716603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716603barEv,_ZThn16_N7ee716603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71660 = { "ee71660", // class name
+ bases_ee71660, 4,
+ &(vtc_ee71660[0]), // expected_vtbl_contents
+ &(vtt_ee71660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71660),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71660),5, //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 dd2660 : cc660 {
+ int d;
+ virtual void foo(); // _ZN6dd26603fooEv
+ ~dd2660(); // tgen
+ dd2660(); // tgen
+};
+//SIG(-1 dd2660) C1{ BC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2660 ::foo(){vfunc_called(this, "_ZN6dd26603fooEv");}
+dd2660 ::~dd2660(){ note_dtor("dd2660", this);} // tgen
+dd2660 ::dd2660(){ note_ctor("dd2660", this);} // tgen
+
+static void Test_dd2660()
+{
+ extern Class_Descriptor cd_dd2660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2660, buf);
+ dd2660 *dp, &lv = *(dp=new (buf) dd2660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(8,4), "dd2660");
+ check_base_class_offset(lv, (bb60*)(cc660*), 0, "dd2660");
+ check_base_class_offset(lv, (cc660*), 0, "dd2660");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2660.d");
+ test_class_info(&lv, &cd_dd2660);
+ dp->~dd2660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2660(Test_dd2660, "dd2660", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2660C1Ev();
+extern void _ZN6dd2660D1Ev();
+Name_Map name_map_dd2660[] = {
+ NSPAIR(_ZN6dd2660C1Ev),
+ NSPAIR(_ZN6dd2660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd2660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN6dd26603fooEv();
+static VTBL_ENTRY vtc_dd2660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN6dd26603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+Class_Descriptor cd_dd2660 = { "dd2660", // class name
+ bases_dd2660, 3,
+ &(vtc_dd2660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2660),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 ee02660 : dd2660 {
+ int e;
+ ~ee02660(); // tgen
+ ee02660(); // tgen
+};
+//SIG(1 ee02660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02660 ::~ee02660(){ note_dtor("ee02660", this);} // tgen
+ee02660 ::ee02660(){ note_ctor("ee02660", this);} // tgen
+
+static void Test_ee02660()
+{
+ extern Class_Descriptor cd_ee02660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02660, buf);
+ ee02660 *dp, &lv = *(dp=new (buf) ee02660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(8,4), "ee02660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), 0, "ee02660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), 0, "ee02660");
+ check_base_class_offset(lv, (dd2660*), 0, "ee02660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02660.e");
+ test_class_info(&lv, &cd_ee02660);
+ dp->~ee02660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02660(Test_ee02660, "ee02660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02660C1Ev();
+extern void _ZN7ee02660D1Ev();
+Name_Map name_map_ee02660[] = {
+ NSPAIR(_ZN7ee02660C1Ev),
+ NSPAIR(_ZN7ee02660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee02660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, 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 _ZTI7ee02660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN6dd26603fooEv();
+static VTBL_ENTRY vtc_ee02660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN6dd26603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02660[];
+extern VTBL_ENTRY _ZTV7ee02660[];
+Class_Descriptor cd_ee02660 = { "ee02660", // class name
+ bases_ee02660, 4,
+ &(vtc_ee02660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02660),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 ee12660 : virtual dd2660 {
+ int e;
+ ~ee12660(); // tgen
+ ee12660(); // tgen
+};
+//SIG(1 ee12660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12660 ::~ee12660(){ note_dtor("ee12660", this);} // tgen
+ee12660 ::ee12660(){ note_ctor("ee12660", this);} // tgen
+
+static void Test_ee12660()
+{
+ extern Class_Descriptor cd_ee12660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12660, buf);
+ ee12660 *dp, &lv = *(dp=new (buf) ee12660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(24,12), "ee12660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), ABISELECT(16,8), "ee12660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), ABISELECT(16,8), "ee12660");
+ check_base_class_offset(lv, (dd2660*), ABISELECT(16,8), "ee12660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12660.e");
+ test_class_info(&lv, &cd_ee12660);
+ dp->~ee12660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12660(Test_ee12660, "ee12660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12660C1Ev();
+extern void _ZN7ee12660D1Ev();
+Name_Map name_map_ee12660[] = {
+ NSPAIR(_ZN7ee12660C1Ev),
+ NSPAIR(_ZN7ee12660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee12660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, 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 _ZTI7ee12660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN6dd26603fooEv();
+static VTBL_ENTRY vtc_ee12660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN6dd26603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12660[];
+static VTT_ENTRY vtt_ee12660[] = {
+ {&(_ZTV7ee12660[3]), 3,9},
+ {&(_ZTV7ee12660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12660[];
+extern VTBL_ENTRY _ZTV7ee12660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12660[];
+Class_Descriptor cd_ee12660 = { "ee12660", // class name
+ bases_ee12660, 4,
+ &(vtc_ee12660[0]), // expected_vtbl_contents
+ &(vtt_ee12660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12660),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 ee22660 : dd2660 {
+ int e;
+ virtual void foo(); // _ZN7ee226603fooEv
+ ~ee22660(); // tgen
+ ee22660(); // tgen
+};
+//SIG(1 ee22660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22660 ::foo(){vfunc_called(this, "_ZN7ee226603fooEv");}
+ee22660 ::~ee22660(){ note_dtor("ee22660", this);} // tgen
+ee22660 ::ee22660(){ note_ctor("ee22660", this);} // tgen
+
+static void Test_ee22660()
+{
+ extern Class_Descriptor cd_ee22660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22660, buf);
+ ee22660 *dp, &lv = *(dp=new (buf) ee22660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(8,4), "ee22660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), 0, "ee22660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), 0, "ee22660");
+ check_base_class_offset(lv, (dd2660*), 0, "ee22660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22660.e");
+ test_class_info(&lv, &cd_ee22660);
+ dp->~ee22660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22660(Test_ee22660, "ee22660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22660C1Ev();
+extern void _ZN7ee22660D1Ev();
+Name_Map name_map_ee22660[] = {
+ NSPAIR(_ZN7ee22660C1Ev),
+ NSPAIR(_ZN7ee22660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee22660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22660[];
+extern void _ZN5cc6603barEv();
+extern void _ZN7ee226603fooEv();
+static VTBL_ENTRY vtc_ee22660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&_ZN7ee226603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22660[];
+extern VTBL_ENTRY _ZTV7ee22660[];
+Class_Descriptor cd_ee22660 = { "ee22660", // class name
+ bases_ee22660, 4,
+ &(vtc_ee22660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22660),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 ee32660 : virtual dd2660 {
+ int e;
+ virtual void foo(); // _ZN7ee326603fooEv
+ ~ee32660(); // tgen
+ ee32660(); // tgen
+};
+//SIG(1 ee32660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32660 ::foo(){vfunc_called(this, "_ZN7ee326603fooEv");}
+ee32660 ::~ee32660(){ note_dtor("ee32660", this);} // tgen
+ee32660 ::ee32660(){ note_ctor("ee32660", this);} // tgen
+
+static void Test_ee32660()
+{
+ extern Class_Descriptor cd_ee32660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32660, buf);
+ ee32660 *dp, &lv = *(dp=new (buf) ee32660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(24,12), "ee32660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), ABISELECT(16,8), "ee32660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), ABISELECT(16,8), "ee32660");
+ check_base_class_offset(lv, (dd2660*), ABISELECT(16,8), "ee32660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32660.e");
+ test_class_info(&lv, &cd_ee32660);
+ dp->~ee32660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32660(Test_ee32660, "ee32660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32660C1Ev();
+extern void _ZN7ee32660D1Ev();
+Name_Map name_map_ee32660[] = {
+ NSPAIR(_ZN7ee32660C1Ev),
+ NSPAIR(_ZN7ee32660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee32660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, ABISELECT(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 _ZTI7ee32660[];
+extern void _ZN7ee326603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee326603fooEv,_ZTv0_n16_N7ee326603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326603fooEv,_ZThn8_N7ee326603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32660[0]),
+ (VTBL_ENTRY)&_ZN7ee326603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee326603fooEv,_ZTv0_n16_N7ee326603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32660[];
+static VTT_ENTRY vtt_ee32660[] = {
+ {&(_ZTV7ee32660[3]), 3,10},
+ {&(_ZTV7ee32660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32660[];
+extern VTBL_ENTRY _ZTV7ee32660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32660[];
+static VTBL_ENTRY alt_thunk_names357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee326603fooEv,_ZTv0_n16_N7ee326603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326603fooEv,_ZThn8_N7ee326603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32660 = { "ee32660", // class name
+ bases_ee32660, 4,
+ &(vtc_ee32660[0]), // expected_vtbl_contents
+ &(vtt_ee32660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32660),2, //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 ee42660 : dd2660 {
+ int e;
+ virtual void bar(); // _ZN7ee426603barEv
+ ~ee42660(); // tgen
+ ee42660(); // tgen
+};
+//SIG(1 ee42660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42660 ::bar(){vfunc_called(this, "_ZN7ee426603barEv");}
+ee42660 ::~ee42660(){ note_dtor("ee42660", this);} // tgen
+ee42660 ::ee42660(){ note_ctor("ee42660", this);} // tgen
+
+static void Test_ee42660()
+{
+ extern Class_Descriptor cd_ee42660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42660, buf);
+ ee42660 *dp, &lv = *(dp=new (buf) ee42660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(8,4), "ee42660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), 0, "ee42660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), 0, "ee42660");
+ check_base_class_offset(lv, (dd2660*), 0, "ee42660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42660.e");
+ test_class_info(&lv, &cd_ee42660);
+ dp->~ee42660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42660(Test_ee42660, "ee42660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42660C1Ev();
+extern void _ZN7ee42660D1Ev();
+Name_Map name_map_ee42660[] = {
+ NSPAIR(_ZN7ee42660C1Ev),
+ NSPAIR(_ZN7ee42660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee42660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42660[];
+extern void _ZN7ee426603barEv();
+extern void _ZN6dd26603fooEv();
+static VTBL_ENTRY vtc_ee42660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42660[0]),
+ (VTBL_ENTRY)&_ZN7ee426603barEv,
+ (VTBL_ENTRY)&_ZN6dd26603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee42660[];
+extern VTBL_ENTRY _ZTV7ee42660[];
+Class_Descriptor cd_ee42660 = { "ee42660", // class name
+ bases_ee42660, 4,
+ &(vtc_ee42660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42660),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 ee52660 : virtual dd2660 {
+ int e;
+ virtual void bar(); // _ZN7ee526603barEv
+ ~ee52660(); // tgen
+ ee52660(); // tgen
+};
+//SIG(1 ee52660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52660 ::bar(){vfunc_called(this, "_ZN7ee526603barEv");}
+ee52660 ::~ee52660(){ note_dtor("ee52660", this);} // tgen
+ee52660 ::ee52660(){ note_ctor("ee52660", this);} // tgen
+
+static void Test_ee52660()
+{
+ extern Class_Descriptor cd_ee52660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52660, buf);
+ ee52660 *dp, &lv = *(dp=new (buf) ee52660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(24,12), "ee52660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), ABISELECT(16,8), "ee52660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), ABISELECT(16,8), "ee52660");
+ check_base_class_offset(lv, (dd2660*), ABISELECT(16,8), "ee52660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52660.e");
+ test_class_info(&lv, &cd_ee52660);
+ dp->~ee52660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52660(Test_ee52660, "ee52660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52660C1Ev();
+extern void _ZN7ee52660D1Ev();
+Name_Map name_map_ee52660[] = {
+ NSPAIR(_ZN7ee52660C1Ev),
+ NSPAIR(_ZN7ee52660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee52660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, ABISELECT(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 _ZTI7ee52660[];
+extern void _ZN7ee526603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee526603barEv,_ZTv0_n12_N7ee526603barEv)();
+extern void ABISELECT(_ZThn16_N7ee526603barEv,_ZThn8_N7ee526603barEv)() __attribute__((weak));
+extern void _ZN6dd26603fooEv();
+static VTBL_ENTRY vtc_ee52660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52660[0]),
+ (VTBL_ENTRY)&_ZN7ee526603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee526603barEv,_ZTv0_n12_N7ee526603barEv),
+ (VTBL_ENTRY)&_ZN6dd26603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52660[];
+static VTT_ENTRY vtt_ee52660[] = {
+ {&(_ZTV7ee52660[3]), 3,10},
+ {&(_ZTV7ee52660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52660[];
+extern VTBL_ENTRY _ZTV7ee52660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52660[];
+static VTBL_ENTRY alt_thunk_names358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee526603barEv,_ZTv0_n12_N7ee526603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526603barEv,_ZThn8_N7ee526603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52660 = { "ee52660", // class name
+ bases_ee52660, 4,
+ &(vtc_ee52660[0]), // expected_vtbl_contents
+ &(vtt_ee52660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52660),2, //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 ee62660 : dd2660 {
+ int e;
+ virtual void foo(); // _ZN7ee626603fooEv
+ virtual void bar(); // _ZN7ee626603barEv
+ ~ee62660(); // tgen
+ ee62660(); // tgen
+};
+//SIG(1 ee62660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62660 ::foo(){vfunc_called(this, "_ZN7ee626603fooEv");}
+void ee62660 ::bar(){vfunc_called(this, "_ZN7ee626603barEv");}
+ee62660 ::~ee62660(){ note_dtor("ee62660", this);} // tgen
+ee62660 ::ee62660(){ note_ctor("ee62660", this);} // tgen
+
+static void Test_ee62660()
+{
+ extern Class_Descriptor cd_ee62660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62660, buf);
+ ee62660 *dp, &lv = *(dp=new (buf) ee62660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(8,4), "ee62660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), 0, "ee62660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), 0, "ee62660");
+ check_base_class_offset(lv, (dd2660*), 0, "ee62660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62660.e");
+ test_class_info(&lv, &cd_ee62660);
+ dp->~ee62660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62660(Test_ee62660, "ee62660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62660C1Ev();
+extern void _ZN7ee62660D1Ev();
+Name_Map name_map_ee62660[] = {
+ NSPAIR(_ZN7ee62660C1Ev),
+ NSPAIR(_ZN7ee62660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee62660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62660[];
+extern void _ZN7ee626603barEv();
+extern void _ZN7ee626603fooEv();
+static VTBL_ENTRY vtc_ee62660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62660[0]),
+ (VTBL_ENTRY)&_ZN7ee626603barEv,
+ (VTBL_ENTRY)&_ZN7ee626603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee62660[];
+extern VTBL_ENTRY _ZTV7ee62660[];
+Class_Descriptor cd_ee62660 = { "ee62660", // class name
+ bases_ee62660, 4,
+ &(vtc_ee62660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62660),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 ee72660 : virtual dd2660 {
+ int e;
+ virtual void foo(); // _ZN7ee726603fooEv
+ virtual void bar(); // _ZN7ee726603barEv
+ ~ee72660(); // tgen
+ ee72660(); // tgen
+};
+//SIG(1 ee72660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72660 ::foo(){vfunc_called(this, "_ZN7ee726603fooEv");}
+void ee72660 ::bar(){vfunc_called(this, "_ZN7ee726603barEv");}
+ee72660 ::~ee72660(){ note_dtor("ee72660", this);} // tgen
+ee72660 ::ee72660(){ note_ctor("ee72660", this);} // tgen
+
+static void Test_ee72660()
+{
+ extern Class_Descriptor cd_ee72660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72660, buf);
+ ee72660 *dp, &lv = *(dp=new (buf) ee72660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd2660*), ABISELECT(24,12), "ee72660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd2660*), ABISELECT(16,8), "ee72660");
+ check_base_class_offset(lv, (cc660*)(dd2660*), ABISELECT(16,8), "ee72660");
+ check_base_class_offset(lv, (dd2660*), ABISELECT(16,8), "ee72660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72660.e");
+ test_class_info(&lv, &cd_ee72660);
+ dp->~ee72660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72660(Test_ee72660, "ee72660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72660C1Ev();
+extern void _ZN7ee72660D1Ev();
+Name_Map name_map_ee72660[] = {
+ NSPAIR(_ZN7ee72660C1Ev),
+ NSPAIR(_ZN7ee72660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd2660;
+extern VTBL_ENTRY _ZTI6dd2660[];
+extern VTBL_ENTRY _ZTV6dd2660[];
+static Base_Class bases_ee72660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2660, ABISELECT(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 _ZTI7ee72660[];
+extern void _ZN7ee726603fooEv();
+extern void _ZN7ee726603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726603barEv,_ZTv0_n12_N7ee726603barEv)();
+extern void ABISELECT(_ZThn16_N7ee726603barEv,_ZThn8_N7ee726603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726603fooEv,_ZTv0_n16_N7ee726603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726603fooEv,_ZThn8_N7ee726603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72660[0]),
+ (VTBL_ENTRY)&_ZN7ee726603fooEv,
+ (VTBL_ENTRY)&_ZN7ee726603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726603barEv,_ZTv0_n12_N7ee726603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726603fooEv,_ZTv0_n16_N7ee726603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72660[];
+static VTT_ENTRY vtt_ee72660[] = {
+ {&(_ZTV7ee72660[3]), 3,11},
+ {&(_ZTV7ee72660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72660[];
+extern VTBL_ENTRY _ZTV7ee72660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72660[];
+static VTBL_ENTRY alt_thunk_names359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726603fooEv,_ZTv0_n16_N7ee726603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726603fooEv,_ZThn8_N7ee726603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726603barEv,_ZTv0_n12_N7ee726603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726603barEv,_ZThn8_N7ee726603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72660 = { "ee72660", // class name
+ bases_ee72660, 4,
+ &(vtc_ee72660[0]), // expected_vtbl_contents
+ &(vtt_ee72660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72660),2, //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 dd3660 : virtual cc660 {
+ int d;
+ virtual void foo(); // _ZN6dd36603fooEv
+ ~dd3660(); // tgen
+ dd3660(); // tgen
+};
+//SIG(-1 dd3660) C1{ VBC2{ BC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3660 ::foo(){vfunc_called(this, "_ZN6dd36603fooEv");}
+dd3660 ::~dd3660(){ note_dtor("dd3660", this);} // tgen
+dd3660 ::dd3660(){ note_ctor("dd3660", this);} // tgen
+
+static void Test_dd3660()
+{
+ extern Class_Descriptor cd_dd3660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3660, buf);
+ dd3660 *dp, &lv = *(dp=new (buf) dd3660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,12), "dd3660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,8), "dd3660");
+ check_base_class_offset(lv, (cc660*), ABISELECT(16,8), "dd3660");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3660.d");
+ test_class_info(&lv, &cd_dd3660);
+ dp->~dd3660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3660(Test_dd3660, "dd3660", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3660C1Ev();
+extern void _ZN6dd3660D1Ev();
+Name_Map name_map_dd3660[] = {
+ NSPAIR(_ZN6dd3660C1Ev),
+ NSPAIR(_ZN6dd3660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd3660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(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 _ZTI6dd3660[];
+extern void _ZN6dd36603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3660[];
+static VTT_ENTRY vtt_dd3660[] = {
+ {&(_ZTV6dd3660[3]), 3,10},
+ {&(_ZTV6dd3660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static VTBL_ENTRY alt_thunk_names360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3660 = { "dd3660", // class name
+ bases_dd3660, 3,
+ &(vtc_dd3660[0]), // expected_vtbl_contents
+ &(vtt_dd3660[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3660),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03660 : dd3660 {
+ int e;
+ ~ee03660(); // tgen
+ ee03660(); // tgen
+};
+//SIG(1 ee03660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03660 ::~ee03660(){ note_dtor("ee03660", this);} // tgen
+ee03660 ::ee03660(){ note_ctor("ee03660", this);} // tgen
+
+static void Test_ee03660()
+{
+ extern Class_Descriptor cd_ee03660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03660, buf);
+ ee03660 *dp, &lv = *(dp=new (buf) ee03660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee03660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee03660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(16,12), "ee03660");
+ check_base_class_offset(lv, (dd3660*), 0, "ee03660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03660.e");
+ test_class_info(&lv, &cd_ee03660);
+ dp->~ee03660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03660(Test_ee03660, "ee03660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03660C1Ev();
+extern void _ZN7ee03660D1Ev();
+Name_Map name_map_ee03660[] = {
+ NSPAIR(_ZN7ee03660C1Ev),
+ NSPAIR(_ZN7ee03660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee03660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03660[];
+extern void _ZN6dd36603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee03660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee03660[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee03660[] = {
+ {&(_ZTV7ee03660[3]), 3,10},
+ {&(_tg__ZTV6dd3660__7ee03660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee03660[4]), 4,6},
+ {&(_ZTV7ee03660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03660[];
+extern VTBL_ENTRY _ZTV7ee03660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03660[];
+static VTBL_ENTRY alt_thunk_names361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03660 = { "ee03660", // class name
+ bases_ee03660, 4,
+ &(vtc_ee03660[0]), // expected_vtbl_contents
+ &(vtt_ee03660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03660),4, //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 ee13660 : virtual dd3660 {
+ int e;
+ ~ee13660(); // tgen
+ ee13660(); // tgen
+};
+//SIG(1 ee13660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13660 ::~ee13660(){ note_dtor("ee13660", this);} // tgen
+ee13660 ::ee13660(){ note_ctor("ee13660", this);} // tgen
+
+static void Test_ee13660()
+{
+ extern Class_Descriptor cd_ee13660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13660, buf);
+ ee13660 *dp, &lv = *(dp=new (buf) ee13660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee13660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee13660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(32,16), "ee13660");
+ check_base_class_offset(lv, (dd3660*), ABISELECT(16,8), "ee13660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13660.e");
+ test_class_info(&lv, &cd_ee13660);
+ dp->~ee13660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13660(Test_ee13660, "ee13660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13660C1Ev();
+extern void _ZN7ee13660D1Ev();
+Name_Map name_map_ee13660[] = {
+ NSPAIR(_ZN7ee13660C1Ev),
+ NSPAIR(_ZN7ee13660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee13660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, ABISELECT(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 _ZTI7ee13660[];
+extern void _ZN6dd36603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13660[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee13660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee13660[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee13660[] = {
+ {&(_ZTV7ee13660[4]), 4,15},
+ {&(_ZTV7ee13660[8]), 8,15},
+ {&(_ZTV7ee13660[13]), 13,15},
+ {&(_tg__ZTV6dd3660__7ee13660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee13660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13660[];
+extern VTBL_ENTRY _ZTV7ee13660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13660[];
+static VTBL_ENTRY alt_thunk_names362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13660 = { "ee13660", // class name
+ bases_ee13660, 4,
+ &(vtc_ee13660[0]), // expected_vtbl_contents
+ &(vtt_ee13660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13660),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13660),5, //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 ee23660 : dd3660 {
+ int e;
+ virtual void foo(); // _ZN7ee236603fooEv
+ ~ee23660(); // tgen
+ ee23660(); // tgen
+};
+//SIG(1 ee23660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23660 ::foo(){vfunc_called(this, "_ZN7ee236603fooEv");}
+ee23660 ::~ee23660(){ note_dtor("ee23660", this);} // tgen
+ee23660 ::ee23660(){ note_ctor("ee23660", this);} // tgen
+
+static void Test_ee23660()
+{
+ extern Class_Descriptor cd_ee23660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23660, buf);
+ ee23660 *dp, &lv = *(dp=new (buf) ee23660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee23660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee23660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(16,12), "ee23660");
+ check_base_class_offset(lv, (dd3660*), 0, "ee23660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23660.e");
+ test_class_info(&lv, &cd_ee23660);
+ dp->~ee23660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23660(Test_ee23660, "ee23660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23660C1Ev();
+extern void _ZN7ee23660D1Ev();
+Name_Map name_map_ee23660[] = {
+ NSPAIR(_ZN7ee23660C1Ev),
+ NSPAIR(_ZN7ee23660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee23660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23660[];
+extern void _ZN7ee236603fooEv();
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee236603fooEv,_ZTv0_n16_N7ee236603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236603fooEv,_ZThn12_N7ee236603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23660[0]),
+ (VTBL_ENTRY)&_ZN7ee236603fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee236603fooEv,_ZTv0_n16_N7ee236603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee23660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee23660[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee23660[] = {
+ {&(_ZTV7ee23660[3]), 3,10},
+ {&(_tg__ZTV6dd3660__7ee23660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee23660[4]), 4,6},
+ {&(_ZTV7ee23660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23660[];
+extern VTBL_ENTRY _ZTV7ee23660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23660[];
+static VTBL_ENTRY alt_thunk_names363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee236603fooEv,_ZTv0_n16_N7ee236603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236603fooEv,_ZThn12_N7ee236603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23660 = { "ee23660", // class name
+ bases_ee23660, 4,
+ &(vtc_ee23660[0]), // expected_vtbl_contents
+ &(vtt_ee23660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23660),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33660 : virtual dd3660 {
+ int e;
+ virtual void foo(); // _ZN7ee336603fooEv
+ ~ee33660(); // tgen
+ ee33660(); // tgen
+};
+//SIG(1 ee33660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33660 ::foo(){vfunc_called(this, "_ZN7ee336603fooEv");}
+ee33660 ::~ee33660(){ note_dtor("ee33660", this);} // tgen
+ee33660 ::ee33660(){ note_ctor("ee33660", this);} // tgen
+
+static void Test_ee33660()
+{
+ extern Class_Descriptor cd_ee33660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33660, buf);
+ ee33660 *dp, &lv = *(dp=new (buf) ee33660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee33660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee33660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(32,16), "ee33660");
+ check_base_class_offset(lv, (dd3660*), ABISELECT(16,8), "ee33660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33660.e");
+ test_class_info(&lv, &cd_ee33660);
+ dp->~ee33660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33660(Test_ee33660, "ee33660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33660C1Ev();
+extern void _ZN7ee33660D1Ev();
+Name_Map name_map_ee33660[] = {
+ NSPAIR(_ZN7ee33660C1Ev),
+ NSPAIR(_ZN7ee33660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee33660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, ABISELECT(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 _ZTI7ee33660[];
+extern void _ZN7ee336603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336603fooEv,_ZTv0_n16_N7ee336603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336603fooEv,_ZThn8_N7ee336603fooEv)() __attribute__((weak));
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336603fooEv,_ZTv0_n16_N7ee336603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336603fooEv,_ZThn16_N7ee336603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33660[0]),
+ (VTBL_ENTRY)&_ZN7ee336603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336603fooEv,_ZTv0_n16_N7ee336603fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336603fooEv,_ZTv0_n16_N7ee336603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee33660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee33660[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee33660[] = {
+ {&(_ZTV7ee33660[4]), 4,16},
+ {&(_ZTV7ee33660[9]), 9,16},
+ {&(_ZTV7ee33660[14]), 14,16},
+ {&(_tg__ZTV6dd3660__7ee33660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee33660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33660[];
+extern VTBL_ENTRY _ZTV7ee33660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33660[];
+static VTBL_ENTRY alt_thunk_names364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336603fooEv,_ZTv0_n16_N7ee336603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336603fooEv,_ZThn16_N7ee336603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336603fooEv,_ZThn8_N7ee336603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33660 = { "ee33660", // class name
+ bases_ee33660, 4,
+ &(vtc_ee33660[0]), // expected_vtbl_contents
+ &(vtt_ee33660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33660),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33660),5, //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 ee43660 : dd3660 {
+ int e;
+ virtual void bar(); // _ZN7ee436603barEv
+ ~ee43660(); // tgen
+ ee43660(); // tgen
+};
+//SIG(1 ee43660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43660 ::bar(){vfunc_called(this, "_ZN7ee436603barEv");}
+ee43660 ::~ee43660(){ note_dtor("ee43660", this);} // tgen
+ee43660 ::ee43660(){ note_ctor("ee43660", this);} // tgen
+
+static void Test_ee43660()
+{
+ extern Class_Descriptor cd_ee43660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43660, buf);
+ ee43660 *dp, &lv = *(dp=new (buf) ee43660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee43660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee43660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(16,12), "ee43660");
+ check_base_class_offset(lv, (dd3660*), 0, "ee43660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43660.e");
+ test_class_info(&lv, &cd_ee43660);
+ dp->~ee43660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43660(Test_ee43660, "ee43660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43660C1Ev();
+extern void _ZN7ee43660D1Ev();
+Name_Map name_map_ee43660[] = {
+ NSPAIR(_ZN7ee43660C1Ev),
+ NSPAIR(_ZN7ee43660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee43660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43660[];
+extern void _ZN6dd36603fooEv();
+extern void _ZN7ee436603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee436603barEv,_ZTv0_n12_N7ee436603barEv)();
+extern void ABISELECT(_ZThn16_N7ee436603barEv,_ZThn12_N7ee436603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+ (VTBL_ENTRY)&_ZN7ee436603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee436603barEv,_ZTv0_n12_N7ee436603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee43660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee43660[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee43660[] = {
+ {&(_ZTV7ee43660[3]), 3,11},
+ {&(_tg__ZTV6dd3660__7ee43660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee43660[4]), 4,6},
+ {&(_ZTV7ee43660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43660[];
+extern VTBL_ENTRY _ZTV7ee43660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43660[];
+static VTBL_ENTRY alt_thunk_names365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee436603barEv,_ZTv0_n12_N7ee436603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436603barEv,_ZThn12_N7ee436603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43660 = { "ee43660", // class name
+ bases_ee43660, 4,
+ &(vtc_ee43660[0]), // expected_vtbl_contents
+ &(vtt_ee43660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43660),4, //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 ee53660 : virtual dd3660 {
+ int e;
+ virtual void bar(); // _ZN7ee536603barEv
+ ~ee53660(); // tgen
+ ee53660(); // tgen
+};
+//SIG(1 ee53660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53660 ::bar(){vfunc_called(this, "_ZN7ee536603barEv");}
+ee53660 ::~ee53660(){ note_dtor("ee53660", this);} // tgen
+ee53660 ::ee53660(){ note_ctor("ee53660", this);} // tgen
+
+static void Test_ee53660()
+{
+ extern Class_Descriptor cd_ee53660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53660, buf);
+ ee53660 *dp, &lv = *(dp=new (buf) ee53660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee53660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee53660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(32,16), "ee53660");
+ check_base_class_offset(lv, (dd3660*), ABISELECT(16,8), "ee53660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53660.e");
+ test_class_info(&lv, &cd_ee53660);
+ dp->~ee53660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53660(Test_ee53660, "ee53660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53660C1Ev();
+extern void _ZN7ee53660D1Ev();
+Name_Map name_map_ee53660[] = {
+ NSPAIR(_ZN7ee53660C1Ev),
+ NSPAIR(_ZN7ee53660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee53660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, ABISELECT(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 _ZTI7ee53660[];
+extern void _ZN7ee536603barEv();
+extern void _ZN6dd36603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee536603barEv,_ZTv0_n12_N7ee536603barEv)();
+extern void ABISELECT(_ZThn32_N7ee536603barEv,_ZThn16_N7ee536603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53660[0]),
+ (VTBL_ENTRY)&_ZN7ee536603barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee536603barEv,_ZTv0_n12_N7ee536603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee53660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee53660[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee53660[] = {
+ {&(_ZTV7ee53660[4]), 4,16},
+ {&(_ZTV7ee53660[9]), 9,16},
+ {&(_ZTV7ee53660[14]), 14,16},
+ {&(_tg__ZTV6dd3660__7ee53660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee53660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53660[];
+extern VTBL_ENTRY _ZTV7ee53660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53660[];
+static VTBL_ENTRY alt_thunk_names366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee536603barEv,_ZTv0_n12_N7ee536603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536603barEv,_ZThn16_N7ee536603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53660 = { "ee53660", // class name
+ bases_ee53660, 4,
+ &(vtc_ee53660[0]), // expected_vtbl_contents
+ &(vtt_ee53660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53660),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53660),5, //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 ee63660 : dd3660 {
+ int e;
+ virtual void foo(); // _ZN7ee636603fooEv
+ virtual void bar(); // _ZN7ee636603barEv
+ ~ee63660(); // tgen
+ ee63660(); // tgen
+};
+//SIG(1 ee63660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63660 ::foo(){vfunc_called(this, "_ZN7ee636603fooEv");}
+void ee63660 ::bar(){vfunc_called(this, "_ZN7ee636603barEv");}
+ee63660 ::~ee63660(){ note_dtor("ee63660", this);} // tgen
+ee63660 ::ee63660(){ note_ctor("ee63660", this);} // tgen
+
+static void Test_ee63660()
+{
+ extern Class_Descriptor cd_ee63660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63660, buf);
+ ee63660 *dp, &lv = *(dp=new (buf) ee63660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee63660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee63660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(16,12), "ee63660");
+ check_base_class_offset(lv, (dd3660*), 0, "ee63660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63660.e");
+ test_class_info(&lv, &cd_ee63660);
+ dp->~ee63660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63660(Test_ee63660, "ee63660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63660C1Ev();
+extern void _ZN7ee63660D1Ev();
+Name_Map name_map_ee63660[] = {
+ NSPAIR(_ZN7ee63660C1Ev),
+ NSPAIR(_ZN7ee63660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee63660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63660[];
+extern void _ZN7ee636603fooEv();
+extern void _ZN7ee636603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636603barEv,_ZTv0_n12_N7ee636603barEv)();
+extern void ABISELECT(_ZThn16_N7ee636603barEv,_ZThn12_N7ee636603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636603fooEv,_ZTv0_n16_N7ee636603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636603fooEv,_ZThn12_N7ee636603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63660[0]),
+ (VTBL_ENTRY)&_ZN7ee636603fooEv,
+ (VTBL_ENTRY)&_ZN7ee636603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636603barEv,_ZTv0_n12_N7ee636603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636603fooEv,_ZTv0_n16_N7ee636603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee63660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee63660[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee63660[] = {
+ {&(_ZTV7ee63660[3]), 3,11},
+ {&(_tg__ZTV6dd3660__7ee63660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee63660[4]), 4,6},
+ {&(_ZTV7ee63660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63660[];
+extern VTBL_ENTRY _ZTV7ee63660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63660[];
+static VTBL_ENTRY alt_thunk_names367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn12_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636603fooEv,_ZTv0_n16_N7ee636603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636603fooEv,_ZThn12_N7ee636603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636603barEv,_ZTv0_n12_N7ee636603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636603barEv,_ZThn12_N7ee636603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63660 = { "ee63660", // class name
+ bases_ee63660, 4,
+ &(vtc_ee63660[0]), // expected_vtbl_contents
+ &(vtt_ee63660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63660),4, //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 ee73660 : virtual dd3660 {
+ int e;
+ virtual void foo(); // _ZN7ee736603fooEv
+ virtual void bar(); // _ZN7ee736603barEv
+ ~ee73660(); // tgen
+ ee73660(); // tgen
+};
+//SIG(1 ee73660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73660 ::foo(){vfunc_called(this, "_ZN7ee736603fooEv");}
+void ee73660 ::bar(){vfunc_called(this, "_ZN7ee736603barEv");}
+ee73660 ::~ee73660(){ note_dtor("ee73660", this);} // tgen
+ee73660 ::ee73660(){ note_ctor("ee73660", this);} // tgen
+
+static void Test_ee73660()
+{
+ extern Class_Descriptor cd_ee73660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73660, buf);
+ ee73660 *dp, &lv = *(dp=new (buf) ee73660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee73660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee73660");
+ check_base_class_offset(lv, (cc660*)(dd3660*), ABISELECT(32,16), "ee73660");
+ check_base_class_offset(lv, (dd3660*), ABISELECT(16,8), "ee73660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73660.e");
+ test_class_info(&lv, &cd_ee73660);
+ dp->~ee73660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73660(Test_ee73660, "ee73660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73660C1Ev();
+extern void _ZN7ee73660D1Ev();
+Name_Map name_map_ee73660[] = {
+ NSPAIR(_ZN7ee73660C1Ev),
+ NSPAIR(_ZN7ee73660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd3660;
+extern VTBL_ENTRY _ZTI6dd3660[];
+extern VTBL_ENTRY _ZTV6dd3660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3660[];
+static Base_Class bases_ee73660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd3660, 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 _ZTI7ee73660[];
+extern void _ZN7ee736603fooEv();
+extern void _ZN7ee736603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736603fooEv,_ZTv0_n16_N7ee736603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736603fooEv,_ZThn8_N7ee736603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736603barEv,_ZTv0_n12_N7ee736603barEv)();
+extern void ABISELECT(_ZThn32_N7ee736603barEv,_ZThn16_N7ee736603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736603fooEv,_ZTv0_n16_N7ee736603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736603fooEv,_ZThn16_N7ee736603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73660[0]),
+ (VTBL_ENTRY)&_ZN7ee736603fooEv,
+ (VTBL_ENTRY)&_ZN7ee736603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736603fooEv,_ZTv0_n16_N7ee736603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736603barEv,_ZTv0_n12_N7ee736603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736603fooEv,_ZTv0_n16_N7ee736603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73660[];
+extern void _ZN6dd36603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3660__7ee73660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN6dd36603fooEv,
+};
+extern void _ZN5cc6603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd3660__7ee73660[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3660[0]),
+ (VTBL_ENTRY)&_ZN5cc6603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv),
+};
+static VTT_ENTRY vtt_ee73660[] = {
+ {&(_ZTV7ee73660[4]), 4,17},
+ {&(_ZTV7ee73660[10]), 10,17},
+ {&(_ZTV7ee73660[15]), 15,17},
+ {&(_tg__ZTV6dd3660__7ee73660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd3660__7ee73660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73660[];
+extern VTBL_ENTRY _ZTV7ee73660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73660[];
+static VTBL_ENTRY alt_thunk_names368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd36603fooEv,_ZTv0_n16_N6dd36603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36603fooEv,_ZThn8_N6dd36603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736603barEv,_ZTv0_n12_N7ee736603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736603barEv,_ZThn16_N7ee736603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736603fooEv,_ZTv0_n16_N7ee736603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736603fooEv,_ZThn16_N7ee736603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736603fooEv,_ZThn8_N7ee736603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73660 = { "ee73660", // class name
+ bases_ee73660, 4,
+ &(vtc_ee73660[0]), // expected_vtbl_contents
+ &(vtt_ee73660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73660),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73660),5, //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 dd4660 : cc660 {
+ int d;
+ virtual void bar(); // _ZN6dd46603barEv
+ ~dd4660(); // tgen
+ dd4660(); // tgen
+};
+//SIG(-1 dd4660) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4660 ::bar(){vfunc_called(this, "_ZN6dd46603barEv");}
+dd4660 ::~dd4660(){ note_dtor("dd4660", this);} // tgen
+dd4660 ::dd4660(){ note_ctor("dd4660", this);} // tgen
+
+static void Test_dd4660()
+{
+ extern Class_Descriptor cd_dd4660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4660, buf);
+ dd4660 *dp, &lv = *(dp=new (buf) dd4660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(8,4), "dd4660");
+ check_base_class_offset(lv, (bb60*)(cc660*), 0, "dd4660");
+ check_base_class_offset(lv, (cc660*), 0, "dd4660");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4660.d");
+ test_class_info(&lv, &cd_dd4660);
+ dp->~dd4660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4660(Test_dd4660, "dd4660", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4660C1Ev();
+extern void _ZN6dd4660D1Ev();
+Name_Map name_map_dd4660[] = {
+ NSPAIR(_ZN6dd4660C1Ev),
+ NSPAIR(_ZN6dd4660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd4660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4660[];
+extern void _ZN6dd46603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_dd4660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4660[0]),
+ (VTBL_ENTRY)&_ZN6dd46603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+Class_Descriptor cd_dd4660 = { "dd4660", // class name
+ bases_dd4660, 3,
+ &(vtc_dd4660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4660),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 ee04660 : dd4660 {
+ int e;
+ ~ee04660(); // tgen
+ ee04660(); // tgen
+};
+//SIG(1 ee04660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04660 ::~ee04660(){ note_dtor("ee04660", this);} // tgen
+ee04660 ::ee04660(){ note_ctor("ee04660", this);} // tgen
+
+static void Test_ee04660()
+{
+ extern Class_Descriptor cd_ee04660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04660, buf);
+ ee04660 *dp, &lv = *(dp=new (buf) ee04660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(8,4), "ee04660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), 0, "ee04660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), 0, "ee04660");
+ check_base_class_offset(lv, (dd4660*), 0, "ee04660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04660.e");
+ test_class_info(&lv, &cd_ee04660);
+ dp->~ee04660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04660(Test_ee04660, "ee04660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04660C1Ev();
+extern void _ZN7ee04660D1Ev();
+Name_Map name_map_ee04660[] = {
+ NSPAIR(_ZN7ee04660C1Ev),
+ NSPAIR(_ZN7ee04660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee04660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, 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 _ZTI7ee04660[];
+extern void _ZN6dd46603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee04660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04660[0]),
+ (VTBL_ENTRY)&_ZN6dd46603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee04660[];
+extern VTBL_ENTRY _ZTV7ee04660[];
+Class_Descriptor cd_ee04660 = { "ee04660", // class name
+ bases_ee04660, 4,
+ &(vtc_ee04660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04660),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 ee14660 : virtual dd4660 {
+ int e;
+ ~ee14660(); // tgen
+ ee14660(); // tgen
+};
+//SIG(1 ee14660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14660 ::~ee14660(){ note_dtor("ee14660", this);} // tgen
+ee14660 ::ee14660(){ note_ctor("ee14660", this);} // tgen
+
+static void Test_ee14660()
+{
+ extern Class_Descriptor cd_ee14660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14660, buf);
+ ee14660 *dp, &lv = *(dp=new (buf) ee14660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(24,12), "ee14660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), ABISELECT(16,8), "ee14660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), ABISELECT(16,8), "ee14660");
+ check_base_class_offset(lv, (dd4660*), ABISELECT(16,8), "ee14660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14660.e");
+ test_class_info(&lv, &cd_ee14660);
+ dp->~ee14660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14660(Test_ee14660, "ee14660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14660C1Ev();
+extern void _ZN7ee14660D1Ev();
+Name_Map name_map_ee14660[] = {
+ NSPAIR(_ZN7ee14660C1Ev),
+ NSPAIR(_ZN7ee14660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee14660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, 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 _ZTI7ee14660[];
+extern void _ZN6dd46603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee14660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14660[0]),
+ (VTBL_ENTRY)&_ZN6dd46603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14660[];
+static VTT_ENTRY vtt_ee14660[] = {
+ {&(_ZTV7ee14660[3]), 3,9},
+ {&(_ZTV7ee14660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14660[];
+extern VTBL_ENTRY _ZTV7ee14660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14660[];
+Class_Descriptor cd_ee14660 = { "ee14660", // class name
+ bases_ee14660, 4,
+ &(vtc_ee14660[0]), // expected_vtbl_contents
+ &(vtt_ee14660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14660),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 ee24660 : dd4660 {
+ int e;
+ virtual void foo(); // _ZN7ee246603fooEv
+ ~ee24660(); // tgen
+ ee24660(); // tgen
+};
+//SIG(1 ee24660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24660 ::foo(){vfunc_called(this, "_ZN7ee246603fooEv");}
+ee24660 ::~ee24660(){ note_dtor("ee24660", this);} // tgen
+ee24660 ::ee24660(){ note_ctor("ee24660", this);} // tgen
+
+static void Test_ee24660()
+{
+ extern Class_Descriptor cd_ee24660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24660, buf);
+ ee24660 *dp, &lv = *(dp=new (buf) ee24660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(8,4), "ee24660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), 0, "ee24660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), 0, "ee24660");
+ check_base_class_offset(lv, (dd4660*), 0, "ee24660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24660.e");
+ test_class_info(&lv, &cd_ee24660);
+ dp->~ee24660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24660(Test_ee24660, "ee24660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24660C1Ev();
+extern void _ZN7ee24660D1Ev();
+Name_Map name_map_ee24660[] = {
+ NSPAIR(_ZN7ee24660C1Ev),
+ NSPAIR(_ZN7ee24660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee24660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24660[];
+extern void _ZN6dd46603barEv();
+extern void _ZN7ee246603fooEv();
+static VTBL_ENTRY vtc_ee24660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24660[0]),
+ (VTBL_ENTRY)&_ZN6dd46603barEv,
+ (VTBL_ENTRY)&_ZN7ee246603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24660[];
+extern VTBL_ENTRY _ZTV7ee24660[];
+Class_Descriptor cd_ee24660 = { "ee24660", // class name
+ bases_ee24660, 4,
+ &(vtc_ee24660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24660),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 ee34660 : virtual dd4660 {
+ int e;
+ virtual void foo(); // _ZN7ee346603fooEv
+ ~ee34660(); // tgen
+ ee34660(); // tgen
+};
+//SIG(1 ee34660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34660 ::foo(){vfunc_called(this, "_ZN7ee346603fooEv");}
+ee34660 ::~ee34660(){ note_dtor("ee34660", this);} // tgen
+ee34660 ::ee34660(){ note_ctor("ee34660", this);} // tgen
+
+static void Test_ee34660()
+{
+ extern Class_Descriptor cd_ee34660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34660, buf);
+ ee34660 *dp, &lv = *(dp=new (buf) ee34660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(24,12), "ee34660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), ABISELECT(16,8), "ee34660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), ABISELECT(16,8), "ee34660");
+ check_base_class_offset(lv, (dd4660*), ABISELECT(16,8), "ee34660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34660.e");
+ test_class_info(&lv, &cd_ee34660);
+ dp->~ee34660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34660(Test_ee34660, "ee34660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34660C1Ev();
+extern void _ZN7ee34660D1Ev();
+Name_Map name_map_ee34660[] = {
+ NSPAIR(_ZN7ee34660C1Ev),
+ NSPAIR(_ZN7ee34660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee34660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, ABISELECT(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 _ZTI7ee34660[];
+extern void _ZN7ee346603fooEv();
+extern void _ZN6dd46603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee346603fooEv,_ZTv0_n16_N7ee346603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346603fooEv,_ZThn8_N7ee346603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34660[0]),
+ (VTBL_ENTRY)&_ZN7ee346603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34660[0]),
+ (VTBL_ENTRY)&_ZN6dd46603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee346603fooEv,_ZTv0_n16_N7ee346603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34660[];
+static VTT_ENTRY vtt_ee34660[] = {
+ {&(_ZTV7ee34660[3]), 3,10},
+ {&(_ZTV7ee34660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34660[];
+extern VTBL_ENTRY _ZTV7ee34660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34660[];
+static VTBL_ENTRY alt_thunk_names369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee346603fooEv,_ZTv0_n16_N7ee346603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346603fooEv,_ZThn8_N7ee346603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34660 = { "ee34660", // class name
+ bases_ee34660, 4,
+ &(vtc_ee34660[0]), // expected_vtbl_contents
+ &(vtt_ee34660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34660),2, //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 ee44660 : dd4660 {
+ int e;
+ virtual void bar(); // _ZN7ee446603barEv
+ ~ee44660(); // tgen
+ ee44660(); // tgen
+};
+//SIG(1 ee44660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44660 ::bar(){vfunc_called(this, "_ZN7ee446603barEv");}
+ee44660 ::~ee44660(){ note_dtor("ee44660", this);} // tgen
+ee44660 ::ee44660(){ note_ctor("ee44660", this);} // tgen
+
+static void Test_ee44660()
+{
+ extern Class_Descriptor cd_ee44660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44660, buf);
+ ee44660 *dp, &lv = *(dp=new (buf) ee44660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(8,4), "ee44660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), 0, "ee44660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), 0, "ee44660");
+ check_base_class_offset(lv, (dd4660*), 0, "ee44660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44660.e");
+ test_class_info(&lv, &cd_ee44660);
+ dp->~ee44660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44660(Test_ee44660, "ee44660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44660C1Ev();
+extern void _ZN7ee44660D1Ev();
+Name_Map name_map_ee44660[] = {
+ NSPAIR(_ZN7ee44660C1Ev),
+ NSPAIR(_ZN7ee44660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee44660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44660[];
+extern void _ZN7ee446603barEv();
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee44660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44660[0]),
+ (VTBL_ENTRY)&_ZN7ee446603barEv,
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee44660[];
+extern VTBL_ENTRY _ZTV7ee44660[];
+Class_Descriptor cd_ee44660 = { "ee44660", // class name
+ bases_ee44660, 4,
+ &(vtc_ee44660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44660),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 ee54660 : virtual dd4660 {
+ int e;
+ virtual void bar(); // _ZN7ee546603barEv
+ ~ee54660(); // tgen
+ ee54660(); // tgen
+};
+//SIG(1 ee54660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54660 ::bar(){vfunc_called(this, "_ZN7ee546603barEv");}
+ee54660 ::~ee54660(){ note_dtor("ee54660", this);} // tgen
+ee54660 ::ee54660(){ note_ctor("ee54660", this);} // tgen
+
+static void Test_ee54660()
+{
+ extern Class_Descriptor cd_ee54660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54660, buf);
+ ee54660 *dp, &lv = *(dp=new (buf) ee54660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(24,12), "ee54660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), ABISELECT(16,8), "ee54660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), ABISELECT(16,8), "ee54660");
+ check_base_class_offset(lv, (dd4660*), ABISELECT(16,8), "ee54660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54660.e");
+ test_class_info(&lv, &cd_ee54660);
+ dp->~ee54660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54660(Test_ee54660, "ee54660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54660C1Ev();
+extern void _ZN7ee54660D1Ev();
+Name_Map name_map_ee54660[] = {
+ NSPAIR(_ZN7ee54660C1Ev),
+ NSPAIR(_ZN7ee54660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee54660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, ABISELECT(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 _ZTI7ee54660[];
+extern void _ZN7ee546603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee546603barEv,_ZTv0_n12_N7ee546603barEv)();
+extern void ABISELECT(_ZThn16_N7ee546603barEv,_ZThn8_N7ee546603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee54660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54660[0]),
+ (VTBL_ENTRY)&_ZN7ee546603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee546603barEv,_ZTv0_n12_N7ee546603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54660[];
+static VTT_ENTRY vtt_ee54660[] = {
+ {&(_ZTV7ee54660[3]), 3,10},
+ {&(_ZTV7ee54660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54660[];
+extern VTBL_ENTRY _ZTV7ee54660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54660[];
+static VTBL_ENTRY alt_thunk_names370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee546603barEv,_ZTv0_n12_N7ee546603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546603barEv,_ZThn8_N7ee546603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54660 = { "ee54660", // class name
+ bases_ee54660, 4,
+ &(vtc_ee54660[0]), // expected_vtbl_contents
+ &(vtt_ee54660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54660),2, //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 ee64660 : dd4660 {
+ int e;
+ virtual void foo(); // _ZN7ee646603fooEv
+ virtual void bar(); // _ZN7ee646603barEv
+ ~ee64660(); // tgen
+ ee64660(); // tgen
+};
+//SIG(1 ee64660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64660 ::foo(){vfunc_called(this, "_ZN7ee646603fooEv");}
+void ee64660 ::bar(){vfunc_called(this, "_ZN7ee646603barEv");}
+ee64660 ::~ee64660(){ note_dtor("ee64660", this);} // tgen
+ee64660 ::ee64660(){ note_ctor("ee64660", this);} // tgen
+
+static void Test_ee64660()
+{
+ extern Class_Descriptor cd_ee64660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64660, buf);
+ ee64660 *dp, &lv = *(dp=new (buf) ee64660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(8,4), "ee64660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), 0, "ee64660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), 0, "ee64660");
+ check_base_class_offset(lv, (dd4660*), 0, "ee64660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64660.e");
+ test_class_info(&lv, &cd_ee64660);
+ dp->~ee64660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64660(Test_ee64660, "ee64660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64660C1Ev();
+extern void _ZN7ee64660D1Ev();
+Name_Map name_map_ee64660[] = {
+ NSPAIR(_ZN7ee64660C1Ev),
+ NSPAIR(_ZN7ee64660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee64660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64660[];
+extern void _ZN7ee646603barEv();
+extern void _ZN7ee646603fooEv();
+static VTBL_ENTRY vtc_ee64660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64660[0]),
+ (VTBL_ENTRY)&_ZN7ee646603barEv,
+ (VTBL_ENTRY)&_ZN7ee646603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64660[];
+extern VTBL_ENTRY _ZTV7ee64660[];
+Class_Descriptor cd_ee64660 = { "ee64660", // class name
+ bases_ee64660, 4,
+ &(vtc_ee64660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64660),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 ee74660 : virtual dd4660 {
+ int e;
+ virtual void foo(); // _ZN7ee746603fooEv
+ virtual void bar(); // _ZN7ee746603barEv
+ ~ee74660(); // tgen
+ ee74660(); // tgen
+};
+//SIG(1 ee74660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74660 ::foo(){vfunc_called(this, "_ZN7ee746603fooEv");}
+void ee74660 ::bar(){vfunc_called(this, "_ZN7ee746603barEv");}
+ee74660 ::~ee74660(){ note_dtor("ee74660", this);} // tgen
+ee74660 ::ee74660(){ note_ctor("ee74660", this);} // tgen
+
+static void Test_ee74660()
+{
+ extern Class_Descriptor cd_ee74660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74660, buf);
+ ee74660 *dp, &lv = *(dp=new (buf) ee74660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd4660*), ABISELECT(24,12), "ee74660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd4660*), ABISELECT(16,8), "ee74660");
+ check_base_class_offset(lv, (cc660*)(dd4660*), ABISELECT(16,8), "ee74660");
+ check_base_class_offset(lv, (dd4660*), ABISELECT(16,8), "ee74660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74660.e");
+ test_class_info(&lv, &cd_ee74660);
+ dp->~ee74660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74660(Test_ee74660, "ee74660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74660C1Ev();
+extern void _ZN7ee74660D1Ev();
+Name_Map name_map_ee74660[] = {
+ NSPAIR(_ZN7ee74660C1Ev),
+ NSPAIR(_ZN7ee74660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd4660;
+extern VTBL_ENTRY _ZTI6dd4660[];
+extern VTBL_ENTRY _ZTV6dd4660[];
+static Base_Class bases_ee74660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4660, ABISELECT(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 _ZTI7ee74660[];
+extern void _ZN7ee746603fooEv();
+extern void _ZN7ee746603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746603barEv,_ZTv0_n12_N7ee746603barEv)();
+extern void ABISELECT(_ZThn16_N7ee746603barEv,_ZThn8_N7ee746603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746603fooEv,_ZTv0_n16_N7ee746603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746603fooEv,_ZThn8_N7ee746603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74660[0]),
+ (VTBL_ENTRY)&_ZN7ee746603fooEv,
+ (VTBL_ENTRY)&_ZN7ee746603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746603barEv,_ZTv0_n12_N7ee746603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746603fooEv,_ZTv0_n16_N7ee746603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74660[];
+static VTT_ENTRY vtt_ee74660[] = {
+ {&(_ZTV7ee74660[3]), 3,11},
+ {&(_ZTV7ee74660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74660[];
+extern VTBL_ENTRY _ZTV7ee74660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74660[];
+static VTBL_ENTRY alt_thunk_names371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746603fooEv,_ZTv0_n16_N7ee746603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746603fooEv,_ZThn8_N7ee746603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746603barEv,_ZTv0_n12_N7ee746603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746603barEv,_ZThn8_N7ee746603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74660 = { "ee74660", // class name
+ bases_ee74660, 4,
+ &(vtc_ee74660[0]), // expected_vtbl_contents
+ &(vtt_ee74660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74660),2, //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 dd5660 : virtual cc660 {
+ int d;
+ virtual void bar(); // _ZN6dd56603barEv
+ ~dd5660(); // tgen
+ dd5660(); // tgen
+};
+//SIG(-1 dd5660) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5660 ::bar(){vfunc_called(this, "_ZN6dd56603barEv");}
+dd5660 ::~dd5660(){ note_dtor("dd5660", this);} // tgen
+dd5660 ::dd5660(){ note_ctor("dd5660", this);} // tgen
+
+static void Test_dd5660()
+{
+ extern Class_Descriptor cd_dd5660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5660, buf);
+ dd5660 *dp, &lv = *(dp=new (buf) dd5660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,12), "dd5660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,8), "dd5660");
+ check_base_class_offset(lv, (cc660*), ABISELECT(16,8), "dd5660");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5660.d");
+ test_class_info(&lv, &cd_dd5660);
+ dp->~dd5660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5660(Test_dd5660, "dd5660", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5660C1Ev();
+extern void _ZN6dd5660D1Ev();
+Name_Map name_map_dd5660[] = {
+ NSPAIR(_ZN6dd5660C1Ev),
+ NSPAIR(_ZN6dd5660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd5660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(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 _ZTI6dd5660[];
+extern void _ZN6dd56603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_dd5660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5660[];
+static VTT_ENTRY vtt_dd5660[] = {
+ {&(_ZTV6dd5660[3]), 3,10},
+ {&(_ZTV6dd5660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static VTBL_ENTRY alt_thunk_names372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5660 = { "dd5660", // class name
+ bases_dd5660, 3,
+ &(vtc_dd5660[0]), // expected_vtbl_contents
+ &(vtt_dd5660[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5660),2, //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 ee05660 : dd5660 {
+ int e;
+ ~ee05660(); // tgen
+ ee05660(); // tgen
+};
+//SIG(1 ee05660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05660 ::~ee05660(){ note_dtor("ee05660", this);} // tgen
+ee05660 ::ee05660(){ note_ctor("ee05660", this);} // tgen
+
+static void Test_ee05660()
+{
+ extern Class_Descriptor cd_ee05660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05660, buf);
+ ee05660 *dp, &lv = *(dp=new (buf) ee05660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee05660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee05660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(16,12), "ee05660");
+ check_base_class_offset(lv, (dd5660*), 0, "ee05660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05660.e");
+ test_class_info(&lv, &cd_ee05660);
+ dp->~ee05660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05660(Test_ee05660, "ee05660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05660C1Ev();
+extern void _ZN7ee05660D1Ev();
+Name_Map name_map_ee05660[] = {
+ NSPAIR(_ZN7ee05660C1Ev),
+ NSPAIR(_ZN7ee05660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee05660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05660[];
+extern void _ZN6dd56603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee05660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee05660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee05660[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee05660[] = {
+ {&(_ZTV7ee05660[3]), 3,10},
+ {&(_tg__ZTV6dd5660__7ee05660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee05660[4]), 4,6},
+ {&(_ZTV7ee05660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05660[];
+extern VTBL_ENTRY _ZTV7ee05660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05660[];
+static VTBL_ENTRY alt_thunk_names373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05660 = { "ee05660", // class name
+ bases_ee05660, 4,
+ &(vtc_ee05660[0]), // expected_vtbl_contents
+ &(vtt_ee05660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05660),4, //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 ee15660 : virtual dd5660 {
+ int e;
+ ~ee15660(); // tgen
+ ee15660(); // tgen
+};
+//SIG(1 ee15660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15660 ::~ee15660(){ note_dtor("ee15660", this);} // tgen
+ee15660 ::ee15660(){ note_ctor("ee15660", this);} // tgen
+
+static void Test_ee15660()
+{
+ extern Class_Descriptor cd_ee15660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15660, buf);
+ ee15660 *dp, &lv = *(dp=new (buf) ee15660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee15660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee15660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(32,16), "ee15660");
+ check_base_class_offset(lv, (dd5660*), ABISELECT(16,8), "ee15660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15660.e");
+ test_class_info(&lv, &cd_ee15660);
+ dp->~ee15660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15660(Test_ee15660, "ee15660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15660C1Ev();
+extern void _ZN7ee15660D1Ev();
+Name_Map name_map_ee15660[] = {
+ NSPAIR(_ZN7ee15660C1Ev),
+ NSPAIR(_ZN7ee15660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee15660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, ABISELECT(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 _ZTI7ee15660[];
+extern void _ZN6dd56603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee15660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15660[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee15660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee15660[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee15660[] = {
+ {&(_ZTV7ee15660[4]), 4,15},
+ {&(_ZTV7ee15660[8]), 8,15},
+ {&(_ZTV7ee15660[13]), 13,15},
+ {&(_tg__ZTV6dd5660__7ee15660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee15660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15660[];
+extern VTBL_ENTRY _ZTV7ee15660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15660[];
+static VTBL_ENTRY alt_thunk_names374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15660 = { "ee15660", // class name
+ bases_ee15660, 4,
+ &(vtc_ee15660[0]), // expected_vtbl_contents
+ &(vtt_ee15660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15660),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15660),5, //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 ee25660 : dd5660 {
+ int e;
+ virtual void foo(); // _ZN7ee256603fooEv
+ ~ee25660(); // tgen
+ ee25660(); // tgen
+};
+//SIG(1 ee25660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25660 ::foo(){vfunc_called(this, "_ZN7ee256603fooEv");}
+ee25660 ::~ee25660(){ note_dtor("ee25660", this);} // tgen
+ee25660 ::ee25660(){ note_ctor("ee25660", this);} // tgen
+
+static void Test_ee25660()
+{
+ extern Class_Descriptor cd_ee25660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25660, buf);
+ ee25660 *dp, &lv = *(dp=new (buf) ee25660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee25660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee25660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(16,12), "ee25660");
+ check_base_class_offset(lv, (dd5660*), 0, "ee25660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25660.e");
+ test_class_info(&lv, &cd_ee25660);
+ dp->~ee25660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25660(Test_ee25660, "ee25660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25660C1Ev();
+extern void _ZN7ee25660D1Ev();
+Name_Map name_map_ee25660[] = {
+ NSPAIR(_ZN7ee25660C1Ev),
+ NSPAIR(_ZN7ee25660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee25660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25660[];
+extern void _ZN6dd56603barEv();
+extern void _ZN7ee256603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee256603fooEv,_ZTv0_n16_N7ee256603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256603fooEv,_ZThn12_N7ee256603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+ (VTBL_ENTRY)&_ZN7ee256603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee256603fooEv,_ZTv0_n16_N7ee256603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee25660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee25660[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee25660[] = {
+ {&(_ZTV7ee25660[3]), 3,11},
+ {&(_tg__ZTV6dd5660__7ee25660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee25660[4]), 4,6},
+ {&(_ZTV7ee25660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25660[];
+extern VTBL_ENTRY _ZTV7ee25660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25660[];
+static VTBL_ENTRY alt_thunk_names375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee256603fooEv,_ZTv0_n16_N7ee256603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256603fooEv,_ZThn12_N7ee256603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25660 = { "ee25660", // class name
+ bases_ee25660, 4,
+ &(vtc_ee25660[0]), // expected_vtbl_contents
+ &(vtt_ee25660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25660),4, //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 ee35660 : virtual dd5660 {
+ int e;
+ virtual void foo(); // _ZN7ee356603fooEv
+ ~ee35660(); // tgen
+ ee35660(); // tgen
+};
+//SIG(1 ee35660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35660 ::foo(){vfunc_called(this, "_ZN7ee356603fooEv");}
+ee35660 ::~ee35660(){ note_dtor("ee35660", this);} // tgen
+ee35660 ::ee35660(){ note_ctor("ee35660", this);} // tgen
+
+static void Test_ee35660()
+{
+ extern Class_Descriptor cd_ee35660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35660, buf);
+ ee35660 *dp, &lv = *(dp=new (buf) ee35660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee35660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee35660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(32,16), "ee35660");
+ check_base_class_offset(lv, (dd5660*), ABISELECT(16,8), "ee35660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35660.e");
+ test_class_info(&lv, &cd_ee35660);
+ dp->~ee35660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35660(Test_ee35660, "ee35660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35660C1Ev();
+extern void _ZN7ee35660D1Ev();
+Name_Map name_map_ee35660[] = {
+ NSPAIR(_ZN7ee35660C1Ev),
+ NSPAIR(_ZN7ee35660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee35660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, ABISELECT(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 _ZTI7ee35660[];
+extern void _ZN7ee356603fooEv();
+extern void _ZN6dd56603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee356603fooEv,_ZTv0_n16_N7ee356603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356603fooEv,_ZThn16_N7ee356603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35660[0]),
+ (VTBL_ENTRY)&_ZN7ee356603fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee356603fooEv,_ZTv0_n16_N7ee356603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee35660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee35660[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee35660[] = {
+ {&(_ZTV7ee35660[4]), 4,16},
+ {&(_ZTV7ee35660[9]), 9,16},
+ {&(_ZTV7ee35660[14]), 14,16},
+ {&(_tg__ZTV6dd5660__7ee35660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee35660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35660[];
+extern VTBL_ENTRY _ZTV7ee35660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35660[];
+static VTBL_ENTRY alt_thunk_names376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee356603fooEv,_ZTv0_n16_N7ee356603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356603fooEv,_ZThn16_N7ee356603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35660 = { "ee35660", // class name
+ bases_ee35660, 4,
+ &(vtc_ee35660[0]), // expected_vtbl_contents
+ &(vtt_ee35660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35660),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35660),5, //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 ee45660 : dd5660 {
+ int e;
+ virtual void bar(); // _ZN7ee456603barEv
+ ~ee45660(); // tgen
+ ee45660(); // tgen
+};
+//SIG(1 ee45660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45660 ::bar(){vfunc_called(this, "_ZN7ee456603barEv");}
+ee45660 ::~ee45660(){ note_dtor("ee45660", this);} // tgen
+ee45660 ::ee45660(){ note_ctor("ee45660", this);} // tgen
+
+static void Test_ee45660()
+{
+ extern Class_Descriptor cd_ee45660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45660, buf);
+ ee45660 *dp, &lv = *(dp=new (buf) ee45660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee45660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee45660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(16,12), "ee45660");
+ check_base_class_offset(lv, (dd5660*), 0, "ee45660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45660.e");
+ test_class_info(&lv, &cd_ee45660);
+ dp->~ee45660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45660(Test_ee45660, "ee45660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45660C1Ev();
+extern void _ZN7ee45660D1Ev();
+Name_Map name_map_ee45660[] = {
+ NSPAIR(_ZN7ee45660C1Ev),
+ NSPAIR(_ZN7ee45660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee45660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45660[];
+extern void _ZN7ee456603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee456603barEv,_ZTv0_n12_N7ee456603barEv)();
+extern void ABISELECT(_ZThn16_N7ee456603barEv,_ZThn12_N7ee456603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee45660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45660[0]),
+ (VTBL_ENTRY)&_ZN7ee456603barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee456603barEv,_ZTv0_n12_N7ee456603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee45660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee45660[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee45660[] = {
+ {&(_ZTV7ee45660[3]), 3,10},
+ {&(_tg__ZTV6dd5660__7ee45660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee45660[4]), 4,6},
+ {&(_ZTV7ee45660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45660[];
+extern VTBL_ENTRY _ZTV7ee45660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45660[];
+static VTBL_ENTRY alt_thunk_names377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee456603barEv,_ZTv0_n12_N7ee456603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456603barEv,_ZThn12_N7ee456603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45660 = { "ee45660", // class name
+ bases_ee45660, 4,
+ &(vtc_ee45660[0]), // expected_vtbl_contents
+ &(vtt_ee45660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45660),4, //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 ee55660 : virtual dd5660 {
+ int e;
+ virtual void bar(); // _ZN7ee556603barEv
+ ~ee55660(); // tgen
+ ee55660(); // tgen
+};
+//SIG(1 ee55660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55660 ::bar(){vfunc_called(this, "_ZN7ee556603barEv");}
+ee55660 ::~ee55660(){ note_dtor("ee55660", this);} // tgen
+ee55660 ::ee55660(){ note_ctor("ee55660", this);} // tgen
+
+static void Test_ee55660()
+{
+ extern Class_Descriptor cd_ee55660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55660, buf);
+ ee55660 *dp, &lv = *(dp=new (buf) ee55660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee55660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee55660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(32,16), "ee55660");
+ check_base_class_offset(lv, (dd5660*), ABISELECT(16,8), "ee55660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55660.e");
+ test_class_info(&lv, &cd_ee55660);
+ dp->~ee55660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55660(Test_ee55660, "ee55660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55660C1Ev();
+extern void _ZN7ee55660D1Ev();
+Name_Map name_map_ee55660[] = {
+ NSPAIR(_ZN7ee55660C1Ev),
+ NSPAIR(_ZN7ee55660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee55660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, ABISELECT(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 _ZTI7ee55660[];
+extern void _ZN7ee556603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556603barEv,_ZTv0_n16_N7ee556603barEv)();
+extern void ABISELECT(_ZThn16_N7ee556603barEv,_ZThn8_N7ee556603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee556603barEv,_ZTv0_n12_N7ee556603barEv)();
+extern void ABISELECT(_ZThn32_N7ee556603barEv,_ZThn16_N7ee556603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY vtc_ee55660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55660[0]),
+ (VTBL_ENTRY)&_ZN7ee556603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556603barEv,_ZTv0_n16_N7ee556603barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee556603barEv,_ZTv0_n12_N7ee556603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee55660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee55660[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee55660[] = {
+ {&(_ZTV7ee55660[4]), 4,16},
+ {&(_ZTV7ee55660[9]), 9,16},
+ {&(_ZTV7ee55660[14]), 14,16},
+ {&(_tg__ZTV6dd5660__7ee55660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee55660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55660[];
+extern VTBL_ENTRY _ZTV7ee55660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55660[];
+static VTBL_ENTRY alt_thunk_names378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee556603barEv,_ZTv0_n12_N7ee556603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556603barEv,_ZThn16_N7ee556603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556603barEv,_ZTv0_n16_N7ee556603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556603barEv,_ZThn8_N7ee556603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55660 = { "ee55660", // class name
+ bases_ee55660, 4,
+ &(vtc_ee55660[0]), // expected_vtbl_contents
+ &(vtt_ee55660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55660),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55660),5, //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 ee65660 : dd5660 {
+ int e;
+ virtual void foo(); // _ZN7ee656603fooEv
+ virtual void bar(); // _ZN7ee656603barEv
+ ~ee65660(); // tgen
+ ee65660(); // tgen
+};
+//SIG(1 ee65660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65660 ::foo(){vfunc_called(this, "_ZN7ee656603fooEv");}
+void ee65660 ::bar(){vfunc_called(this, "_ZN7ee656603barEv");}
+ee65660 ::~ee65660(){ note_dtor("ee65660", this);} // tgen
+ee65660 ::ee65660(){ note_ctor("ee65660", this);} // tgen
+
+static void Test_ee65660()
+{
+ extern Class_Descriptor cd_ee65660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65660, buf);
+ ee65660 *dp, &lv = *(dp=new (buf) ee65660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee65660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee65660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(16,12), "ee65660");
+ check_base_class_offset(lv, (dd5660*), 0, "ee65660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65660.e");
+ test_class_info(&lv, &cd_ee65660);
+ dp->~ee65660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65660(Test_ee65660, "ee65660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65660C1Ev();
+extern void _ZN7ee65660D1Ev();
+Name_Map name_map_ee65660[] = {
+ NSPAIR(_ZN7ee65660C1Ev),
+ NSPAIR(_ZN7ee65660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee65660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65660[];
+extern void _ZN7ee656603barEv();
+extern void _ZN7ee656603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656603barEv,_ZTv0_n12_N7ee656603barEv)();
+extern void ABISELECT(_ZThn16_N7ee656603barEv,_ZThn12_N7ee656603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656603fooEv,_ZTv0_n16_N7ee656603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656603fooEv,_ZThn12_N7ee656603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65660[0]),
+ (VTBL_ENTRY)&_ZN7ee656603barEv,
+ (VTBL_ENTRY)&_ZN7ee656603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656603barEv,_ZTv0_n12_N7ee656603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656603fooEv,_ZTv0_n16_N7ee656603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee65660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee65660[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee65660[] = {
+ {&(_ZTV7ee65660[3]), 3,11},
+ {&(_tg__ZTV6dd5660__7ee65660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee65660[4]), 4,6},
+ {&(_ZTV7ee65660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65660[];
+extern VTBL_ENTRY _ZTV7ee65660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65660[];
+static VTBL_ENTRY alt_thunk_names379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn12_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656603fooEv,_ZTv0_n16_N7ee656603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656603fooEv,_ZThn12_N7ee656603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656603barEv,_ZTv0_n12_N7ee656603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656603barEv,_ZThn12_N7ee656603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65660 = { "ee65660", // class name
+ bases_ee65660, 4,
+ &(vtc_ee65660[0]), // expected_vtbl_contents
+ &(vtt_ee65660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65660),4, //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 ee75660 : virtual dd5660 {
+ int e;
+ virtual void foo(); // _ZN7ee756603fooEv
+ virtual void bar(); // _ZN7ee756603barEv
+ ~ee75660(); // tgen
+ ee75660(); // tgen
+};
+//SIG(1 ee75660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75660 ::foo(){vfunc_called(this, "_ZN7ee756603fooEv");}
+void ee75660 ::bar(){vfunc_called(this, "_ZN7ee756603barEv");}
+ee75660 ::~ee75660(){ note_dtor("ee75660", this);} // tgen
+ee75660 ::ee75660(){ note_ctor("ee75660", this);} // tgen
+
+static void Test_ee75660()
+{
+ extern Class_Descriptor cd_ee75660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75660, buf);
+ ee75660 *dp, &lv = *(dp=new (buf) ee75660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee75660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee75660");
+ check_base_class_offset(lv, (cc660*)(dd5660*), ABISELECT(32,16), "ee75660");
+ check_base_class_offset(lv, (dd5660*), ABISELECT(16,8), "ee75660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75660.e");
+ test_class_info(&lv, &cd_ee75660);
+ dp->~ee75660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75660(Test_ee75660, "ee75660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75660C1Ev();
+extern void _ZN7ee75660D1Ev();
+Name_Map name_map_ee75660[] = {
+ NSPAIR(_ZN7ee75660C1Ev),
+ NSPAIR(_ZN7ee75660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd5660;
+extern VTBL_ENTRY _ZTI6dd5660[];
+extern VTBL_ENTRY _ZTV6dd5660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5660[];
+static Base_Class bases_ee75660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd5660, 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 _ZTI7ee75660[];
+extern void _ZN7ee756603fooEv();
+extern void _ZN7ee756603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756603barEv,_ZTv0_n16_N7ee756603barEv)();
+extern void ABISELECT(_ZThn16_N7ee756603barEv,_ZThn8_N7ee756603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756603barEv,_ZTv0_n12_N7ee756603barEv)();
+extern void ABISELECT(_ZThn32_N7ee756603barEv,_ZThn16_N7ee756603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756603fooEv,_ZTv0_n16_N7ee756603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756603fooEv,_ZThn16_N7ee756603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75660[0]),
+ (VTBL_ENTRY)&_ZN7ee756603fooEv,
+ (VTBL_ENTRY)&_ZN7ee756603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756603barEv,_ZTv0_n16_N7ee756603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756603barEv,_ZTv0_n12_N7ee756603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756603fooEv,_ZTv0_n16_N7ee756603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75660[];
+extern void _ZN6dd56603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5660__7ee75660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&_ZN6dd56603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv)();
+extern void ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv)() __attribute__((weak));
+extern void _ZN5cc6603fooEv();
+static VTBL_ENTRY _tg__ZTV5cc660__6dd5660__7ee75660[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv),
+ (VTBL_ENTRY)&_ZN5cc6603fooEv,
+};
+static VTT_ENTRY vtt_ee75660[] = {
+ {&(_ZTV7ee75660[4]), 4,17},
+ {&(_ZTV7ee75660[10]), 10,17},
+ {&(_ZTV7ee75660[15]), 15,17},
+ {&(_tg__ZTV6dd5660__7ee75660[3]), 3,4},
+ {&(_tg__ZTV5cc660__6dd5660__7ee75660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75660[];
+extern VTBL_ENTRY _ZTV7ee75660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75660[];
+static VTBL_ENTRY alt_thunk_names380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd56603barEv,_ZTv0_n12_N6dd56603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56603barEv,_ZThn8_N6dd56603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756603fooEv,_ZTv0_n16_N7ee756603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756603fooEv,_ZThn16_N7ee756603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756603barEv,_ZTv0_n12_N7ee756603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756603barEv,_ZThn16_N7ee756603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756603barEv,_ZTv0_n16_N7ee756603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756603barEv,_ZThn8_N7ee756603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75660 = { "ee75660", // class name
+ bases_ee75660, 4,
+ &(vtc_ee75660[0]), // expected_vtbl_contents
+ &(vtt_ee75660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75660),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75660),5, //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 dd6660 : cc660 {
+ int d;
+ virtual void bar(); // _ZN6dd66603barEv
+ virtual void foo(); // _ZN6dd66603fooEv
+ ~dd6660(); // tgen
+ dd6660(); // tgen
+};
+//SIG(-1 dd6660) C1{ BC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6660 ::bar(){vfunc_called(this, "_ZN6dd66603barEv");}
+void dd6660 ::foo(){vfunc_called(this, "_ZN6dd66603fooEv");}
+dd6660 ::~dd6660(){ note_dtor("dd6660", this);} // tgen
+dd6660 ::dd6660(){ note_ctor("dd6660", this);} // tgen
+
+static void Test_dd6660()
+{
+ extern Class_Descriptor cd_dd6660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6660, buf);
+ dd6660 *dp, &lv = *(dp=new (buf) dd6660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(8,4), "dd6660");
+ check_base_class_offset(lv, (bb60*)(cc660*), 0, "dd6660");
+ check_base_class_offset(lv, (cc660*), 0, "dd6660");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6660.d");
+ test_class_info(&lv, &cd_dd6660);
+ dp->~dd6660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6660(Test_dd6660, "dd6660", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6660C1Ev();
+extern void _ZN6dd6660D1Ev();
+Name_Map name_map_dd6660[] = {
+ NSPAIR(_ZN6dd6660C1Ev),
+ NSPAIR(_ZN6dd6660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd6660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6660[];
+extern void _ZN6dd66603barEv();
+extern void _ZN6dd66603fooEv();
+static VTBL_ENTRY vtc_dd6660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6660[0]),
+ (VTBL_ENTRY)&_ZN6dd66603barEv,
+ (VTBL_ENTRY)&_ZN6dd66603fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+Class_Descriptor cd_dd6660 = { "dd6660", // class name
+ bases_dd6660, 3,
+ &(vtc_dd6660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6660),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 ee06660 : dd6660 {
+ int e;
+ ~ee06660(); // tgen
+ ee06660(); // tgen
+};
+//SIG(1 ee06660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06660 ::~ee06660(){ note_dtor("ee06660", this);} // tgen
+ee06660 ::ee06660(){ note_ctor("ee06660", this);} // tgen
+
+static void Test_ee06660()
+{
+ extern Class_Descriptor cd_ee06660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06660, buf);
+ ee06660 *dp, &lv = *(dp=new (buf) ee06660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(8,4), "ee06660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), 0, "ee06660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), 0, "ee06660");
+ check_base_class_offset(lv, (dd6660*), 0, "ee06660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06660.e");
+ test_class_info(&lv, &cd_ee06660);
+ dp->~ee06660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06660(Test_ee06660, "ee06660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06660C1Ev();
+extern void _ZN7ee06660D1Ev();
+Name_Map name_map_ee06660[] = {
+ NSPAIR(_ZN7ee06660C1Ev),
+ NSPAIR(_ZN7ee06660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee06660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, 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 _ZTI7ee06660[];
+extern void _ZN6dd66603barEv();
+extern void _ZN6dd66603fooEv();
+static VTBL_ENTRY vtc_ee06660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06660[0]),
+ (VTBL_ENTRY)&_ZN6dd66603barEv,
+ (VTBL_ENTRY)&_ZN6dd66603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06660[];
+extern VTBL_ENTRY _ZTV7ee06660[];
+Class_Descriptor cd_ee06660 = { "ee06660", // class name
+ bases_ee06660, 4,
+ &(vtc_ee06660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06660),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 ee16660 : virtual dd6660 {
+ int e;
+ ~ee16660(); // tgen
+ ee16660(); // tgen
+};
+//SIG(1 ee16660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16660 ::~ee16660(){ note_dtor("ee16660", this);} // tgen
+ee16660 ::ee16660(){ note_ctor("ee16660", this);} // tgen
+
+static void Test_ee16660()
+{
+ extern Class_Descriptor cd_ee16660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16660, buf);
+ ee16660 *dp, &lv = *(dp=new (buf) ee16660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(24,12), "ee16660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), ABISELECT(16,8), "ee16660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), ABISELECT(16,8), "ee16660");
+ check_base_class_offset(lv, (dd6660*), ABISELECT(16,8), "ee16660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16660.e");
+ test_class_info(&lv, &cd_ee16660);
+ dp->~ee16660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16660(Test_ee16660, "ee16660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16660C1Ev();
+extern void _ZN7ee16660D1Ev();
+Name_Map name_map_ee16660[] = {
+ NSPAIR(_ZN7ee16660C1Ev),
+ NSPAIR(_ZN7ee16660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee16660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, 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 _ZTI7ee16660[];
+extern void _ZN6dd66603barEv();
+extern void _ZN6dd66603fooEv();
+static VTBL_ENTRY vtc_ee16660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16660[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16660[0]),
+ (VTBL_ENTRY)&_ZN6dd66603barEv,
+ (VTBL_ENTRY)&_ZN6dd66603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16660[];
+static VTT_ENTRY vtt_ee16660[] = {
+ {&(_ZTV7ee16660[3]), 3,9},
+ {&(_ZTV7ee16660[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16660[];
+extern VTBL_ENTRY _ZTV7ee16660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16660[];
+Class_Descriptor cd_ee16660 = { "ee16660", // class name
+ bases_ee16660, 4,
+ &(vtc_ee16660[0]), // expected_vtbl_contents
+ &(vtt_ee16660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16660),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16660),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 ee26660 : dd6660 {
+ int e;
+ virtual void foo(); // _ZN7ee266603fooEv
+ ~ee26660(); // tgen
+ ee26660(); // tgen
+};
+//SIG(1 ee26660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26660 ::foo(){vfunc_called(this, "_ZN7ee266603fooEv");}
+ee26660 ::~ee26660(){ note_dtor("ee26660", this);} // tgen
+ee26660 ::ee26660(){ note_ctor("ee26660", this);} // tgen
+
+static void Test_ee26660()
+{
+ extern Class_Descriptor cd_ee26660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26660, buf);
+ ee26660 *dp, &lv = *(dp=new (buf) ee26660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(8,4), "ee26660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), 0, "ee26660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), 0, "ee26660");
+ check_base_class_offset(lv, (dd6660*), 0, "ee26660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26660.e");
+ test_class_info(&lv, &cd_ee26660);
+ dp->~ee26660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26660(Test_ee26660, "ee26660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26660C1Ev();
+extern void _ZN7ee26660D1Ev();
+Name_Map name_map_ee26660[] = {
+ NSPAIR(_ZN7ee26660C1Ev),
+ NSPAIR(_ZN7ee26660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee26660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26660[];
+extern void _ZN6dd66603barEv();
+extern void _ZN7ee266603fooEv();
+static VTBL_ENTRY vtc_ee26660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26660[0]),
+ (VTBL_ENTRY)&_ZN6dd66603barEv,
+ (VTBL_ENTRY)&_ZN7ee266603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26660[];
+extern VTBL_ENTRY _ZTV7ee26660[];
+Class_Descriptor cd_ee26660 = { "ee26660", // class name
+ bases_ee26660, 4,
+ &(vtc_ee26660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26660),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 ee36660 : virtual dd6660 {
+ int e;
+ virtual void foo(); // _ZN7ee366603fooEv
+ ~ee36660(); // tgen
+ ee36660(); // tgen
+};
+//SIG(1 ee36660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36660 ::foo(){vfunc_called(this, "_ZN7ee366603fooEv");}
+ee36660 ::~ee36660(){ note_dtor("ee36660", this);} // tgen
+ee36660 ::ee36660(){ note_ctor("ee36660", this);} // tgen
+
+static void Test_ee36660()
+{
+ extern Class_Descriptor cd_ee36660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36660, buf);
+ ee36660 *dp, &lv = *(dp=new (buf) ee36660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(24,12), "ee36660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), ABISELECT(16,8), "ee36660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), ABISELECT(16,8), "ee36660");
+ check_base_class_offset(lv, (dd6660*), ABISELECT(16,8), "ee36660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36660.e");
+ test_class_info(&lv, &cd_ee36660);
+ dp->~ee36660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36660(Test_ee36660, "ee36660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36660C1Ev();
+extern void _ZN7ee36660D1Ev();
+Name_Map name_map_ee36660[] = {
+ NSPAIR(_ZN7ee36660C1Ev),
+ NSPAIR(_ZN7ee36660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee36660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, ABISELECT(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 _ZTI7ee36660[];
+extern void _ZN7ee366603fooEv();
+extern void _ZN6dd66603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee366603fooEv,_ZTv0_n16_N7ee366603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366603fooEv,_ZThn8_N7ee366603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36660[0]),
+ (VTBL_ENTRY)&_ZN7ee366603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36660[0]),
+ (VTBL_ENTRY)&_ZN6dd66603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee366603fooEv,_ZTv0_n16_N7ee366603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36660[];
+static VTT_ENTRY vtt_ee36660[] = {
+ {&(_ZTV7ee36660[3]), 3,10},
+ {&(_ZTV7ee36660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36660[];
+extern VTBL_ENTRY _ZTV7ee36660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36660[];
+static VTBL_ENTRY alt_thunk_names381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee366603fooEv,_ZTv0_n16_N7ee366603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366603fooEv,_ZThn8_N7ee366603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36660 = { "ee36660", // class name
+ bases_ee36660, 4,
+ &(vtc_ee36660[0]), // expected_vtbl_contents
+ &(vtt_ee36660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36660),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46660 : dd6660 {
+ int e;
+ virtual void bar(); // _ZN7ee466603barEv
+ ~ee46660(); // tgen
+ ee46660(); // tgen
+};
+//SIG(1 ee46660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46660 ::bar(){vfunc_called(this, "_ZN7ee466603barEv");}
+ee46660 ::~ee46660(){ note_dtor("ee46660", this);} // tgen
+ee46660 ::ee46660(){ note_ctor("ee46660", this);} // tgen
+
+static void Test_ee46660()
+{
+ extern Class_Descriptor cd_ee46660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46660, buf);
+ ee46660 *dp, &lv = *(dp=new (buf) ee46660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(8,4), "ee46660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), 0, "ee46660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), 0, "ee46660");
+ check_base_class_offset(lv, (dd6660*), 0, "ee46660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46660.e");
+ test_class_info(&lv, &cd_ee46660);
+ dp->~ee46660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46660(Test_ee46660, "ee46660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46660C1Ev();
+extern void _ZN7ee46660D1Ev();
+Name_Map name_map_ee46660[] = {
+ NSPAIR(_ZN7ee46660C1Ev),
+ NSPAIR(_ZN7ee46660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee46660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46660[];
+extern void _ZN7ee466603barEv();
+extern void _ZN6dd66603fooEv();
+static VTBL_ENTRY vtc_ee46660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46660[0]),
+ (VTBL_ENTRY)&_ZN7ee466603barEv,
+ (VTBL_ENTRY)&_ZN6dd66603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46660[];
+extern VTBL_ENTRY _ZTV7ee46660[];
+Class_Descriptor cd_ee46660 = { "ee46660", // class name
+ bases_ee46660, 4,
+ &(vtc_ee46660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46660),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 ee56660 : virtual dd6660 {
+ int e;
+ virtual void bar(); // _ZN7ee566603barEv
+ ~ee56660(); // tgen
+ ee56660(); // tgen
+};
+//SIG(1 ee56660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56660 ::bar(){vfunc_called(this, "_ZN7ee566603barEv");}
+ee56660 ::~ee56660(){ note_dtor("ee56660", this);} // tgen
+ee56660 ::ee56660(){ note_ctor("ee56660", this);} // tgen
+
+static void Test_ee56660()
+{
+ extern Class_Descriptor cd_ee56660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56660, buf);
+ ee56660 *dp, &lv = *(dp=new (buf) ee56660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(24,12), "ee56660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), ABISELECT(16,8), "ee56660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), ABISELECT(16,8), "ee56660");
+ check_base_class_offset(lv, (dd6660*), ABISELECT(16,8), "ee56660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56660.e");
+ test_class_info(&lv, &cd_ee56660);
+ dp->~ee56660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56660(Test_ee56660, "ee56660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56660C1Ev();
+extern void _ZN7ee56660D1Ev();
+Name_Map name_map_ee56660[] = {
+ NSPAIR(_ZN7ee56660C1Ev),
+ NSPAIR(_ZN7ee56660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee56660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, ABISELECT(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 _ZTI7ee56660[];
+extern void _ZN7ee566603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee566603barEv,_ZTv0_n12_N7ee566603barEv)();
+extern void ABISELECT(_ZThn16_N7ee566603barEv,_ZThn8_N7ee566603barEv)() __attribute__((weak));
+extern void _ZN6dd66603fooEv();
+static VTBL_ENTRY vtc_ee56660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56660[0]),
+ (VTBL_ENTRY)&_ZN7ee566603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee566603barEv,_ZTv0_n12_N7ee566603barEv),
+ (VTBL_ENTRY)&_ZN6dd66603fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56660[];
+static VTT_ENTRY vtt_ee56660[] = {
+ {&(_ZTV7ee56660[3]), 3,10},
+ {&(_ZTV7ee56660[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56660[];
+extern VTBL_ENTRY _ZTV7ee56660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56660[];
+static VTBL_ENTRY alt_thunk_names382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee566603barEv,_ZTv0_n12_N7ee566603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566603barEv,_ZThn8_N7ee566603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56660 = { "ee56660", // class name
+ bases_ee56660, 4,
+ &(vtc_ee56660[0]), // expected_vtbl_contents
+ &(vtt_ee56660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56660),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56660),2, //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 ee66660 : dd6660 {
+ int e;
+ virtual void foo(); // _ZN7ee666603fooEv
+ virtual void bar(); // _ZN7ee666603barEv
+ ~ee66660(); // tgen
+ ee66660(); // tgen
+};
+//SIG(1 ee66660) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66660 ::foo(){vfunc_called(this, "_ZN7ee666603fooEv");}
+void ee66660 ::bar(){vfunc_called(this, "_ZN7ee666603barEv");}
+ee66660 ::~ee66660(){ note_dtor("ee66660", this);} // tgen
+ee66660 ::ee66660(){ note_ctor("ee66660", this);} // tgen
+
+static void Test_ee66660()
+{
+ extern Class_Descriptor cd_ee66660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66660, buf);
+ ee66660 *dp, &lv = *(dp=new (buf) ee66660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(8,4), "ee66660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), 0, "ee66660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), 0, "ee66660");
+ check_base_class_offset(lv, (dd6660*), 0, "ee66660");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66660.e");
+ test_class_info(&lv, &cd_ee66660);
+ dp->~ee66660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66660(Test_ee66660, "ee66660", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66660C1Ev();
+extern void _ZN7ee66660D1Ev();
+Name_Map name_map_ee66660[] = {
+ NSPAIR(_ZN7ee66660C1Ev),
+ NSPAIR(_ZN7ee66660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee66660[] = {
+ // 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_bb60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66660[];
+extern void _ZN7ee666603barEv();
+extern void _ZN7ee666603fooEv();
+static VTBL_ENTRY vtc_ee66660[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66660[0]),
+ (VTBL_ENTRY)&_ZN7ee666603barEv,
+ (VTBL_ENTRY)&_ZN7ee666603fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66660[];
+extern VTBL_ENTRY _ZTV7ee66660[];
+Class_Descriptor cd_ee66660 = { "ee66660", // class name
+ bases_ee66660, 4,
+ &(vtc_ee66660[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66660),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 ee76660 : virtual dd6660 {
+ int e;
+ virtual void foo(); // _ZN7ee766603fooEv
+ virtual void bar(); // _ZN7ee766603barEv
+ ~ee76660(); // tgen
+ ee76660(); // tgen
+};
+//SIG(1 ee76660) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76660 ::foo(){vfunc_called(this, "_ZN7ee766603fooEv");}
+void ee76660 ::bar(){vfunc_called(this, "_ZN7ee766603barEv");}
+ee76660 ::~ee76660(){ note_dtor("ee76660", this);} // tgen
+ee76660 ::ee76660(){ note_ctor("ee76660", this);} // tgen
+
+static void Test_ee76660()
+{
+ extern Class_Descriptor cd_ee76660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76660, buf);
+ ee76660 *dp, &lv = *(dp=new (buf) ee76660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*)(dd6660*), ABISELECT(24,12), "ee76660");
+ check_base_class_offset(lv, (bb60*)(cc660*)(dd6660*), ABISELECT(16,8), "ee76660");
+ check_base_class_offset(lv, (cc660*)(dd6660*), ABISELECT(16,8), "ee76660");
+ check_base_class_offset(lv, (dd6660*), ABISELECT(16,8), "ee76660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76660.e");
+ test_class_info(&lv, &cd_ee76660);
+ dp->~ee76660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76660(Test_ee76660, "ee76660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76660C1Ev();
+extern void _ZN7ee76660D1Ev();
+Name_Map name_map_ee76660[] = {
+ NSPAIR(_ZN7ee76660C1Ev),
+ NSPAIR(_ZN7ee76660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd6660;
+extern VTBL_ENTRY _ZTI6dd6660[];
+extern VTBL_ENTRY _ZTV6dd6660[];
+static Base_Class bases_ee76660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6660, ABISELECT(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 _ZTI7ee76660[];
+extern void _ZN7ee766603fooEv();
+extern void _ZN7ee766603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766603barEv,_ZTv0_n12_N7ee766603barEv)();
+extern void ABISELECT(_ZThn16_N7ee766603barEv,_ZThn8_N7ee766603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766603fooEv,_ZTv0_n16_N7ee766603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766603fooEv,_ZThn8_N7ee766603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76660[0]),
+ (VTBL_ENTRY)&_ZN7ee766603fooEv,
+ (VTBL_ENTRY)&_ZN7ee766603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766603barEv,_ZTv0_n12_N7ee766603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766603fooEv,_ZTv0_n16_N7ee766603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76660[];
+static VTT_ENTRY vtt_ee76660[] = {
+ {&(_ZTV7ee76660[3]), 3,11},
+ {&(_ZTV7ee76660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76660[];
+extern VTBL_ENTRY _ZTV7ee76660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76660[];
+static VTBL_ENTRY alt_thunk_names383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766603fooEv,_ZTv0_n16_N7ee766603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766603fooEv,_ZThn8_N7ee766603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766603barEv,_ZTv0_n12_N7ee766603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766603barEv,_ZThn8_N7ee766603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76660 = { "ee76660", // class name
+ bases_ee76660, 4,
+ &(vtc_ee76660[0]), // expected_vtbl_contents
+ &(vtt_ee76660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76660),2, //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 dd7660 : virtual cc660 {
+ int d;
+ virtual void bar(); // _ZN6dd76603barEv
+ virtual void foo(); // _ZN6dd76603fooEv
+ ~dd7660(); // tgen
+ dd7660(); // tgen
+};
+//SIG(-1 dd7660) C1{ VBC2{ BC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7660 ::bar(){vfunc_called(this, "_ZN6dd76603barEv");}
+void dd7660 ::foo(){vfunc_called(this, "_ZN6dd76603fooEv");}
+dd7660 ::~dd7660(){ note_dtor("dd7660", this);} // tgen
+dd7660 ::dd7660(){ note_ctor("dd7660", this);} // tgen
+
+static void Test_dd7660()
+{
+ extern Class_Descriptor cd_dd7660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7660, buf);
+ dd7660 *dp, &lv = *(dp=new (buf) dd7660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,12), "dd7660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,8), "dd7660");
+ check_base_class_offset(lv, (cc660*), ABISELECT(16,8), "dd7660");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7660.d");
+ test_class_info(&lv, &cd_dd7660);
+ dp->~dd7660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7660(Test_dd7660, "dd7660", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7660C1Ev();
+extern void _ZN6dd7660D1Ev();
+Name_Map name_map_dd7660[] = {
+ NSPAIR(_ZN6dd7660C1Ev),
+ NSPAIR(_ZN6dd7660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+static Base_Class bases_dd7660[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, ABISELECT(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 _ZTI6dd7660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7660[];
+static VTT_ENTRY vtt_dd7660[] = {
+ {&(_ZTV6dd7660[3]), 3,11},
+ {&(_ZTV6dd7660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static VTBL_ENTRY alt_thunk_names384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7660 = { "dd7660", // class name
+ bases_dd7660, 3,
+ &(vtc_dd7660[0]), // expected_vtbl_contents
+ &(vtt_dd7660[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7660),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07660 : dd7660 {
+ int e;
+ ~ee07660(); // tgen
+ ee07660(); // tgen
+};
+//SIG(1 ee07660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07660 ::~ee07660(){ note_dtor("ee07660", this);} // tgen
+ee07660 ::ee07660(){ note_ctor("ee07660", this);} // tgen
+
+static void Test_ee07660()
+{
+ extern Class_Descriptor cd_ee07660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07660, buf);
+ ee07660 *dp, &lv = *(dp=new (buf) ee07660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee07660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee07660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(16,12), "ee07660");
+ check_base_class_offset(lv, (dd7660*), 0, "ee07660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07660.e");
+ test_class_info(&lv, &cd_ee07660);
+ dp->~ee07660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07660(Test_ee07660, "ee07660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07660C1Ev();
+extern void _ZN7ee07660D1Ev();
+Name_Map name_map_ee07660[] = {
+ NSPAIR(_ZN7ee07660C1Ev),
+ NSPAIR(_ZN7ee07660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee07660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee07660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee07660[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee07660[] = {
+ {&(_ZTV7ee07660[3]), 3,11},
+ {&(_tg__ZTV6dd7660__7ee07660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee07660[4]), 4,6},
+ {&(_ZTV7ee07660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07660[];
+extern VTBL_ENTRY _ZTV7ee07660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07660[];
+static VTBL_ENTRY alt_thunk_names385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07660 = { "ee07660", // class name
+ bases_ee07660, 4,
+ &(vtc_ee07660[0]), // expected_vtbl_contents
+ &(vtt_ee07660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07660),4, //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 ee17660 : virtual dd7660 {
+ int e;
+ ~ee17660(); // tgen
+ ee17660(); // tgen
+};
+//SIG(1 ee17660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17660 ::~ee17660(){ note_dtor("ee17660", this);} // tgen
+ee17660 ::ee17660(){ note_ctor("ee17660", this);} // tgen
+
+static void Test_ee17660()
+{
+ extern Class_Descriptor cd_ee17660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17660, buf);
+ ee17660 *dp, &lv = *(dp=new (buf) ee17660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee17660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee17660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(32,16), "ee17660");
+ check_base_class_offset(lv, (dd7660*), ABISELECT(16,8), "ee17660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17660.e");
+ test_class_info(&lv, &cd_ee17660);
+ dp->~ee17660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17660(Test_ee17660, "ee17660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17660C1Ev();
+extern void _ZN7ee17660D1Ev();
+Name_Map name_map_ee17660[] = {
+ NSPAIR(_ZN7ee17660C1Ev),
+ NSPAIR(_ZN7ee17660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee17660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, 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 _ZTI7ee17660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17660[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee17660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee17660[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee17660[] = {
+ {&(_ZTV7ee17660[4]), 4,17},
+ {&(_ZTV7ee17660[9]), 9,17},
+ {&(_ZTV7ee17660[15]), 15,17},
+ {&(_tg__ZTV6dd7660__7ee17660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee17660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17660[];
+extern VTBL_ENTRY _ZTV7ee17660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17660[];
+static VTBL_ENTRY alt_thunk_names386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17660 = { "ee17660", // class name
+ bases_ee17660, 4,
+ &(vtc_ee17660[0]), // expected_vtbl_contents
+ &(vtt_ee17660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17660),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17660),5, //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 ee27660 : dd7660 {
+ int e;
+ virtual void foo(); // _ZN7ee276603fooEv
+ ~ee27660(); // tgen
+ ee27660(); // tgen
+};
+//SIG(1 ee27660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27660 ::foo(){vfunc_called(this, "_ZN7ee276603fooEv");}
+ee27660 ::~ee27660(){ note_dtor("ee27660", this);} // tgen
+ee27660 ::ee27660(){ note_ctor("ee27660", this);} // tgen
+
+static void Test_ee27660()
+{
+ extern Class_Descriptor cd_ee27660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27660, buf);
+ ee27660 *dp, &lv = *(dp=new (buf) ee27660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee27660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee27660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(16,12), "ee27660");
+ check_base_class_offset(lv, (dd7660*), 0, "ee27660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27660.e");
+ test_class_info(&lv, &cd_ee27660);
+ dp->~ee27660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27660(Test_ee27660, "ee27660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27660C1Ev();
+extern void _ZN7ee27660D1Ev();
+Name_Map name_map_ee27660[] = {
+ NSPAIR(_ZN7ee27660C1Ev),
+ NSPAIR(_ZN7ee27660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee27660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN7ee276603fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee276603fooEv,_ZTv0_n16_N7ee276603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276603fooEv,_ZThn12_N7ee276603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN7ee276603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee276603fooEv,_ZTv0_n16_N7ee276603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee27660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee27660[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee27660[] = {
+ {&(_ZTV7ee27660[3]), 3,11},
+ {&(_tg__ZTV6dd7660__7ee27660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee27660[4]), 4,6},
+ {&(_ZTV7ee27660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27660[];
+extern VTBL_ENTRY _ZTV7ee27660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27660[];
+static VTBL_ENTRY alt_thunk_names387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee276603fooEv,_ZTv0_n16_N7ee276603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276603fooEv,_ZThn12_N7ee276603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27660 = { "ee27660", // class name
+ bases_ee27660, 4,
+ &(vtc_ee27660[0]), // expected_vtbl_contents
+ &(vtt_ee27660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27660),4, //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 ee37660 : virtual dd7660 {
+ int e;
+ virtual void foo(); // _ZN7ee376603fooEv
+ ~ee37660(); // tgen
+ ee37660(); // tgen
+};
+//SIG(1 ee37660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37660 ::foo(){vfunc_called(this, "_ZN7ee376603fooEv");}
+ee37660 ::~ee37660(){ note_dtor("ee37660", this);} // tgen
+ee37660 ::ee37660(){ note_ctor("ee37660", this);} // tgen
+
+static void Test_ee37660()
+{
+ extern Class_Descriptor cd_ee37660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37660, buf);
+ ee37660 *dp, &lv = *(dp=new (buf) ee37660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee37660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee37660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(32,16), "ee37660");
+ check_base_class_offset(lv, (dd7660*), ABISELECT(16,8), "ee37660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37660.e");
+ test_class_info(&lv, &cd_ee37660);
+ dp->~ee37660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37660(Test_ee37660, "ee37660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37660C1Ev();
+extern void _ZN7ee37660D1Ev();
+Name_Map name_map_ee37660[] = {
+ NSPAIR(_ZN7ee37660C1Ev),
+ NSPAIR(_ZN7ee37660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee37660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, ABISELECT(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 _ZTI7ee37660[];
+extern void _ZN7ee376603fooEv();
+extern void _ZN6dd76603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376603fooEv,_ZTv0_n20_N7ee376603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376603fooEv,_ZThn8_N7ee376603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee376603fooEv,_ZTv0_n16_N7ee376603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376603fooEv,_ZThn16_N7ee376603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37660[0]),
+ (VTBL_ENTRY)&_ZN7ee376603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376603fooEv,_ZTv0_n20_N7ee376603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee376603fooEv,_ZTv0_n16_N7ee376603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee37660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee37660[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee37660[] = {
+ {&(_ZTV7ee37660[4]), 4,18},
+ {&(_ZTV7ee37660[10]), 10,18},
+ {&(_ZTV7ee37660[16]), 16,18},
+ {&(_tg__ZTV6dd7660__7ee37660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee37660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37660[];
+extern VTBL_ENTRY _ZTV7ee37660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37660[];
+static VTBL_ENTRY alt_thunk_names388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee376603fooEv,_ZTv0_n16_N7ee376603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376603fooEv,_ZThn16_N7ee376603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376603fooEv,_ZTv0_n20_N7ee376603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376603fooEv,_ZThn8_N7ee376603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37660 = { "ee37660", // class name
+ bases_ee37660, 4,
+ &(vtc_ee37660[0]), // expected_vtbl_contents
+ &(vtt_ee37660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37660),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37660),5, //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 ee47660 : dd7660 {
+ int e;
+ virtual void bar(); // _ZN7ee476603barEv
+ ~ee47660(); // tgen
+ ee47660(); // tgen
+};
+//SIG(1 ee47660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47660 ::bar(){vfunc_called(this, "_ZN7ee476603barEv");}
+ee47660 ::~ee47660(){ note_dtor("ee47660", this);} // tgen
+ee47660 ::ee47660(){ note_ctor("ee47660", this);} // tgen
+
+static void Test_ee47660()
+{
+ extern Class_Descriptor cd_ee47660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47660, buf);
+ ee47660 *dp, &lv = *(dp=new (buf) ee47660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee47660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee47660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(16,12), "ee47660");
+ check_base_class_offset(lv, (dd7660*), 0, "ee47660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47660.e");
+ test_class_info(&lv, &cd_ee47660);
+ dp->~ee47660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47660(Test_ee47660, "ee47660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47660C1Ev();
+extern void _ZN7ee47660D1Ev();
+Name_Map name_map_ee47660[] = {
+ NSPAIR(_ZN7ee47660C1Ev),
+ NSPAIR(_ZN7ee47660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee47660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47660[];
+extern void _ZN7ee476603barEv();
+extern void _ZN6dd76603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee476603barEv,_ZTv0_n12_N7ee476603barEv)();
+extern void ABISELECT(_ZThn16_N7ee476603barEv,_ZThn12_N7ee476603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47660[0]),
+ (VTBL_ENTRY)&_ZN7ee476603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee476603barEv,_ZTv0_n12_N7ee476603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee47660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee47660[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee47660[] = {
+ {&(_ZTV7ee47660[3]), 3,11},
+ {&(_tg__ZTV6dd7660__7ee47660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee47660[4]), 4,6},
+ {&(_ZTV7ee47660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47660[];
+extern VTBL_ENTRY _ZTV7ee47660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47660[];
+static VTBL_ENTRY alt_thunk_names389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee476603barEv,_ZTv0_n12_N7ee476603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476603barEv,_ZThn12_N7ee476603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47660 = { "ee47660", // class name
+ bases_ee47660, 4,
+ &(vtc_ee47660[0]), // expected_vtbl_contents
+ &(vtt_ee47660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47660),4, //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 ee57660 : virtual dd7660 {
+ int e;
+ virtual void bar(); // _ZN7ee576603barEv
+ ~ee57660(); // tgen
+ ee57660(); // tgen
+};
+//SIG(1 ee57660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57660 ::bar(){vfunc_called(this, "_ZN7ee576603barEv");}
+ee57660 ::~ee57660(){ note_dtor("ee57660", this);} // tgen
+ee57660 ::ee57660(){ note_ctor("ee57660", this);} // tgen
+
+static void Test_ee57660()
+{
+ extern Class_Descriptor cd_ee57660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57660, buf);
+ ee57660 *dp, &lv = *(dp=new (buf) ee57660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee57660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee57660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(32,16), "ee57660");
+ check_base_class_offset(lv, (dd7660*), ABISELECT(16,8), "ee57660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57660.e");
+ test_class_info(&lv, &cd_ee57660);
+ dp->~ee57660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57660(Test_ee57660, "ee57660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57660C1Ev();
+extern void _ZN7ee57660D1Ev();
+Name_Map name_map_ee57660[] = {
+ NSPAIR(_ZN7ee57660C1Ev),
+ NSPAIR(_ZN7ee57660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee57660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, ABISELECT(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 _ZTI7ee57660[];
+extern void _ZN7ee576603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576603barEv,_ZTv0_n16_N7ee576603barEv)();
+extern void ABISELECT(_ZThn16_N7ee576603barEv,_ZThn8_N7ee576603barEv)() __attribute__((weak));
+extern void _ZN6dd76603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee576603barEv,_ZTv0_n12_N7ee576603barEv)();
+extern void ABISELECT(_ZThn32_N7ee576603barEv,_ZThn16_N7ee576603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57660[0]),
+ (VTBL_ENTRY)&_ZN7ee576603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576603barEv,_ZTv0_n16_N7ee576603barEv),
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee576603barEv,_ZTv0_n12_N7ee576603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee57660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee57660[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee57660[] = {
+ {&(_ZTV7ee57660[4]), 4,18},
+ {&(_ZTV7ee57660[10]), 10,18},
+ {&(_ZTV7ee57660[16]), 16,18},
+ {&(_tg__ZTV6dd7660__7ee57660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee57660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57660[];
+extern VTBL_ENTRY _ZTV7ee57660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57660[];
+static VTBL_ENTRY alt_thunk_names390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee576603barEv,_ZTv0_n12_N7ee576603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576603barEv,_ZThn16_N7ee576603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576603barEv,_ZTv0_n16_N7ee576603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576603barEv,_ZThn8_N7ee576603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57660 = { "ee57660", // class name
+ bases_ee57660, 4,
+ &(vtc_ee57660[0]), // expected_vtbl_contents
+ &(vtt_ee57660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57660),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57660),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67660 : dd7660 {
+ int e;
+ virtual void foo(); // _ZN7ee676603fooEv
+ virtual void bar(); // _ZN7ee676603barEv
+ ~ee67660(); // tgen
+ ee67660(); // tgen
+};
+//SIG(1 ee67660) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67660 ::foo(){vfunc_called(this, "_ZN7ee676603fooEv");}
+void ee67660 ::bar(){vfunc_called(this, "_ZN7ee676603barEv");}
+ee67660 ::~ee67660(){ note_dtor("ee67660", this);} // tgen
+ee67660 ::ee67660(){ note_ctor("ee67660", this);} // tgen
+
+static void Test_ee67660()
+{
+ extern Class_Descriptor cd_ee67660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67660, buf);
+ ee67660 *dp, &lv = *(dp=new (buf) ee67660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(24,16), "ee67660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(16,12), "ee67660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(16,12), "ee67660");
+ check_base_class_offset(lv, (dd7660*), 0, "ee67660");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67660.e");
+ test_class_info(&lv, &cd_ee67660);
+ dp->~ee67660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67660(Test_ee67660, "ee67660", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67660C1Ev();
+extern void _ZN7ee67660D1Ev();
+Name_Map name_map_ee67660[] = {
+ NSPAIR(_ZN7ee67660C1Ev),
+ NSPAIR(_ZN7ee67660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee67660[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67660[];
+extern void _ZN7ee676603barEv();
+extern void _ZN7ee676603fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676603barEv,_ZTv0_n12_N7ee676603barEv)();
+extern void ABISELECT(_ZThn16_N7ee676603barEv,_ZThn12_N7ee676603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676603fooEv,_ZTv0_n16_N7ee676603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676603fooEv,_ZThn12_N7ee676603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67660[0]),
+ (VTBL_ENTRY)&_ZN7ee676603barEv,
+ (VTBL_ENTRY)&_ZN7ee676603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676603barEv,_ZTv0_n12_N7ee676603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676603fooEv,_ZTv0_n16_N7ee676603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee67660[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee67660[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee67660[] = {
+ {&(_ZTV7ee67660[3]), 3,11},
+ {&(_tg__ZTV6dd7660__7ee67660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee67660[4]), 4,6},
+ {&(_ZTV7ee67660[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67660[];
+extern VTBL_ENTRY _ZTV7ee67660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67660[];
+static VTBL_ENTRY alt_thunk_names391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn12_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn12_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676603fooEv,_ZTv0_n16_N7ee676603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676603fooEv,_ZThn12_N7ee676603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676603barEv,_ZTv0_n12_N7ee676603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676603barEv,_ZThn12_N7ee676603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67660 = { "ee67660", // class name
+ bases_ee67660, 4,
+ &(vtc_ee67660[0]), // expected_vtbl_contents
+ &(vtt_ee67660[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67660),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67660),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67660),4, //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 ee77660 : virtual dd7660 {
+ int e;
+ virtual void foo(); // _ZN7ee776603fooEv
+ virtual void bar(); // _ZN7ee776603barEv
+ ~ee77660(); // tgen
+ ee77660(); // tgen
+};
+//SIG(1 ee77660) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77660 ::foo(){vfunc_called(this, "_ZN7ee776603fooEv");}
+void ee77660 ::bar(){vfunc_called(this, "_ZN7ee776603barEv");}
+ee77660 ::~ee77660(){ note_dtor("ee77660", this);} // tgen
+ee77660 ::ee77660(){ note_ctor("ee77660", this);} // tgen
+
+static void Test_ee77660()
+{
+ extern Class_Descriptor cd_ee77660;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77660, buf);
+ ee77660 *dp, &lv = *(dp=new (buf) ee77660());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77660)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77660)");
+ check_base_class_offset(lv, (aa0*)(bb60*)(cc660*), ABISELECT(40,20), "ee77660");
+ check_base_class_offset(lv, (bb60*)(cc660*), ABISELECT(32,16), "ee77660");
+ check_base_class_offset(lv, (cc660*)(dd7660*), ABISELECT(32,16), "ee77660");
+ check_base_class_offset(lv, (dd7660*), ABISELECT(16,8), "ee77660");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77660.e");
+ test_class_info(&lv, &cd_ee77660);
+ dp->~ee77660();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77660(Test_ee77660, "ee77660", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77660C1Ev();
+extern void _ZN7ee77660D1Ev();
+Name_Map name_map_ee77660[] = {
+ NSPAIR(_ZN7ee77660C1Ev),
+ NSPAIR(_ZN7ee77660D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc660;
+extern VTBL_ENTRY _ZTI5cc660[];
+extern VTBL_ENTRY _ZTV5cc660[];
+extern Class_Descriptor cd_dd7660;
+extern VTBL_ENTRY _ZTI6dd7660[];
+extern VTBL_ENTRY _ZTV6dd7660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7660[];
+static Base_Class bases_ee77660[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc660, 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_dd7660, ABISELECT(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 _ZTI7ee77660[];
+extern void _ZN7ee776603fooEv();
+extern void _ZN7ee776603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776603barEv,_ZTv0_n16_N7ee776603barEv)();
+extern void ABISELECT(_ZThn16_N7ee776603barEv,_ZThn8_N7ee776603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776603fooEv,_ZTv0_n20_N7ee776603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776603fooEv,_ZThn8_N7ee776603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776603barEv,_ZTv0_n12_N7ee776603barEv)();
+extern void ABISELECT(_ZThn32_N7ee776603barEv,_ZThn16_N7ee776603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776603fooEv,_ZTv0_n16_N7ee776603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776603fooEv,_ZThn16_N7ee776603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77660[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77660[0]),
+ (VTBL_ENTRY)&_ZN7ee776603fooEv,
+ (VTBL_ENTRY)&_ZN7ee776603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776603barEv,_ZTv0_n16_N7ee776603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776603fooEv,_ZTv0_n20_N7ee776603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776603barEv,_ZTv0_n12_N7ee776603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776603fooEv,_ZTv0_n16_N7ee776603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77660[];
+extern void _ZN6dd76603barEv();
+extern void _ZN6dd76603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7660__7ee77660[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&_ZN6dd76603barEv,
+ (VTBL_ENTRY)&_ZN6dd76603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv)();
+extern void ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc660__6dd7660__7ee77660[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7660[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv),
+};
+static VTT_ENTRY vtt_ee77660[] = {
+ {&(_ZTV7ee77660[4]), 4,19},
+ {&(_ZTV7ee77660[11]), 11,19},
+ {&(_ZTV7ee77660[17]), 17,19},
+ {&(_tg__ZTV6dd7660__7ee77660[3]), 3,5},
+ {&(_tg__ZTV5cc660__6dd7660__7ee77660[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77660[];
+extern VTBL_ENTRY _ZTV7ee77660[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77660[];
+static VTBL_ENTRY alt_thunk_names392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76603fooEv,_ZTv0_n16_N6dd76603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603fooEv,_ZThn8_N6dd76603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76603barEv,_ZTv0_n12_N6dd76603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76603barEv,_ZThn8_N6dd76603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776603fooEv,_ZTv0_n16_N7ee776603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776603fooEv,_ZThn16_N7ee776603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776603barEv,_ZTv0_n12_N7ee776603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776603barEv,_ZThn16_N7ee776603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776603fooEv,_ZTv0_n20_N7ee776603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776603fooEv,_ZThn8_N7ee776603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776603barEv,_ZTv0_n16_N7ee776603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776603barEv,_ZThn8_N7ee776603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77660 = { "ee77660", // class name
+ bases_ee77660, 4,
+ &(vtc_ee77660[0]), // expected_vtbl_contents
+ &(vtt_ee77660[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77660),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77660),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77660),5, //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 cc760 : virtual bb60 {
+ int c;
+ virtual void foo(); // _ZN5cc7603fooEv
+ virtual void bar(); // _ZN5cc7603barEv
+ ~cc760(); // tgen
+ cc760(); // tgen
+};
+//SIG(-1 cc760) C1{ VBC2{ BC3{ Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc760 ::foo(){vfunc_called(this, "_ZN5cc7603fooEv");}
+void cc760 ::bar(){vfunc_called(this, "_ZN5cc7603barEv");}
+cc760 ::~cc760(){ note_dtor("cc760", this);} // tgen
+cc760 ::cc760(){ note_ctor("cc760", this);} // tgen
+
+static void Test_cc760()
+{
+ extern Class_Descriptor cd_cc760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc760, buf);
+ cc760 *dp, &lv = *(dp=new (buf) cc760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,12), "cc760");
+ check_base_class_offset(lv, (bb60*), ABISELECT(16,8), "cc760");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc760.c");
+ test_class_info(&lv, &cd_cc760);
+ dp->~cc760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc760(Test_cc760, "cc760", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc760C1Ev();
+extern void _ZN5cc760D1Ev();
+Name_Map name_map_cc760[] = {
+ NSPAIR(_ZN5cc760C1Ev),
+ NSPAIR(_ZN5cc760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_cc760[] = {
+ // 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_bb60, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc760[];
+static VTT_ENTRY vtt_cc760[] = {
+ {&(_ZTV5cc760[3]), 3,11},
+ {&(_ZTV5cc760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static VTBL_ENTRY alt_thunk_names393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc760 = { "cc760", // class name
+ bases_cc760, 2,
+ &(vtc_cc760[0]), // expected_vtbl_contents
+ &(vtt_cc760[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc760),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0760 : cc760 {
+ int d;
+ ~dd0760(); // tgen
+ dd0760(); // tgen
+};
+//SIG(-1 dd0760) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0760 ::~dd0760(){ note_dtor("dd0760", this);} // tgen
+dd0760 ::dd0760(){ note_ctor("dd0760", this);} // tgen
+
+static void Test_dd0760()
+{
+ extern Class_Descriptor cd_dd0760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0760, buf);
+ dd0760 *dp, &lv = *(dp=new (buf) dd0760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd0760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(16,12), "dd0760");
+ check_base_class_offset(lv, (cc760*), 0, "dd0760");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0760.d");
+ test_class_info(&lv, &cd_dd0760);
+ dp->~dd0760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0760(Test_dd0760, "dd0760", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0760C1Ev();
+extern void _ZN6dd0760D1Ev();
+Name_Map name_map_dd0760[] = {
+ NSPAIR(_ZN6dd0760C1Ev),
+ NSPAIR(_ZN6dd0760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd0760[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd0760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd0760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd0760[] = {
+ {&(_ZTV6dd0760[3]), 3,11},
+ {&(_tg__ZTV5cc760__6dd0760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd0760[4]), 4,6},
+ {&(_ZTV6dd0760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static VTBL_ENTRY alt_thunk_names394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0760 = { "dd0760", // class name
+ bases_dd0760, 3,
+ &(vtc_dd0760[0]), // expected_vtbl_contents
+ &(vtt_dd0760[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0760),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00760 : dd0760 {
+ int e;
+ ~ee00760(); // tgen
+ ee00760(); // tgen
+};
+//SIG(1 ee00760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00760 ::~ee00760(){ note_dtor("ee00760", this);} // tgen
+ee00760 ::ee00760(){ note_ctor("ee00760", this);} // tgen
+
+static void Test_ee00760()
+{
+ extern Class_Descriptor cd_ee00760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00760, buf);
+ ee00760 *dp, &lv = *(dp=new (buf) ee00760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee00760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(24,16), "ee00760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), 0, "ee00760");
+ check_base_class_offset(lv, (dd0760*), 0, "ee00760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00760.e");
+ test_class_info(&lv, &cd_ee00760);
+ dp->~ee00760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00760(Test_ee00760, "ee00760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00760C1Ev();
+extern void _ZN7ee00760D1Ev();
+Name_Map name_map_ee00760[] = {
+ NSPAIR(_ZN7ee00760C1Ev),
+ NSPAIR(_ZN7ee00760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee00760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee00760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee00760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee00760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee00760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee00760[] = {
+ {&(_ZTV7ee00760[3]), 3,11},
+ {&(_tg__ZTV6dd0760__7ee00760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee00760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee00760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee00760[4]), 4,6},
+ {&(_ZTV7ee00760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00760[];
+extern VTBL_ENTRY _ZTV7ee00760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00760[];
+static VTBL_ENTRY alt_thunk_names395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00760 = { "ee00760", // class name
+ bases_ee00760, 4,
+ &(vtc_ee00760[0]), // expected_vtbl_contents
+ &(vtt_ee00760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00760),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 ee10760 : virtual dd0760 {
+ int e;
+ ~ee10760(); // tgen
+ ee10760(); // tgen
+};
+//SIG(1 ee10760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10760 ::~ee10760(){ note_dtor("ee10760", this);} // tgen
+ee10760 ::ee10760(){ note_ctor("ee10760", this);} // tgen
+
+static void Test_ee10760()
+{
+ extern Class_Descriptor cd_ee10760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10760, buf);
+ ee10760 *dp, &lv = *(dp=new (buf) ee10760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee10760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(32,20), "ee10760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), ABISELECT(16,8), "ee10760");
+ check_base_class_offset(lv, (dd0760*), ABISELECT(16,8), "ee10760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10760.e");
+ test_class_info(&lv, &cd_ee10760);
+ dp->~ee10760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10760(Test_ee10760, "ee10760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10760C1Ev();
+extern void _ZN7ee10760D1Ev();
+Name_Map name_map_ee10760[] = {
+ NSPAIR(_ZN7ee10760C1Ev),
+ NSPAIR(_ZN7ee10760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee10760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, 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 _ZTI7ee10760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10760[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee10760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee10760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee10760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee10760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee10760[] = {
+ {&(_ZTV7ee10760[4]), 4,17},
+ {&(_ZTV7ee10760[9]), 9,17},
+ {&(_ZTV7ee10760[15]), 15,17},
+ {&(_tg__ZTV6dd0760__7ee10760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee10760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee10760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee10760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10760[];
+extern VTBL_ENTRY _ZTV7ee10760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10760[];
+static VTBL_ENTRY alt_thunk_names396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10760 = { "ee10760", // class name
+ bases_ee10760, 4,
+ &(vtc_ee10760[0]), // expected_vtbl_contents
+ &(vtt_ee10760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10760),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 ee20760 : dd0760 {
+ int e;
+ virtual void foo(); // _ZN7ee207603fooEv
+ ~ee20760(); // tgen
+ ee20760(); // tgen
+};
+//SIG(1 ee20760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20760 ::foo(){vfunc_called(this, "_ZN7ee207603fooEv");}
+ee20760 ::~ee20760(){ note_dtor("ee20760", this);} // tgen
+ee20760 ::ee20760(){ note_ctor("ee20760", this);} // tgen
+
+static void Test_ee20760()
+{
+ extern Class_Descriptor cd_ee20760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20760, buf);
+ ee20760 *dp, &lv = *(dp=new (buf) ee20760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee20760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(24,16), "ee20760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), 0, "ee20760");
+ check_base_class_offset(lv, (dd0760*), 0, "ee20760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20760.e");
+ test_class_info(&lv, &cd_ee20760);
+ dp->~ee20760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20760(Test_ee20760, "ee20760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20760C1Ev();
+extern void _ZN7ee20760D1Ev();
+Name_Map name_map_ee20760[] = {
+ NSPAIR(_ZN7ee20760C1Ev),
+ NSPAIR(_ZN7ee20760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee20760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20760[];
+extern void _ZN7ee207603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee207603fooEv,_ZTv0_n16_N7ee207603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207603fooEv,_ZThn16_N7ee207603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20760[0]),
+ (VTBL_ENTRY)&_ZN7ee207603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee207603fooEv,_ZTv0_n16_N7ee207603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee20760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee20760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee20760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee20760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee20760[] = {
+ {&(_ZTV7ee20760[3]), 3,11},
+ {&(_tg__ZTV6dd0760__7ee20760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee20760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee20760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee20760[4]), 4,6},
+ {&(_ZTV7ee20760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20760[];
+extern VTBL_ENTRY _ZTV7ee20760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20760[];
+static VTBL_ENTRY alt_thunk_names397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee207603fooEv,_ZTv0_n16_N7ee207603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207603fooEv,_ZThn16_N7ee207603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20760 = { "ee20760", // class name
+ bases_ee20760, 4,
+ &(vtc_ee20760[0]), // expected_vtbl_contents
+ &(vtt_ee20760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20760),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 ee30760 : virtual dd0760 {
+ int e;
+ virtual void foo(); // _ZN7ee307603fooEv
+ ~ee30760(); // tgen
+ ee30760(); // tgen
+};
+//SIG(1 ee30760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30760 ::foo(){vfunc_called(this, "_ZN7ee307603fooEv");}
+ee30760 ::~ee30760(){ note_dtor("ee30760", this);} // tgen
+ee30760 ::ee30760(){ note_ctor("ee30760", this);} // tgen
+
+static void Test_ee30760()
+{
+ extern Class_Descriptor cd_ee30760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30760, buf);
+ ee30760 *dp, &lv = *(dp=new (buf) ee30760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee30760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(32,20), "ee30760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), ABISELECT(16,8), "ee30760");
+ check_base_class_offset(lv, (dd0760*), ABISELECT(16,8), "ee30760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30760.e");
+ test_class_info(&lv, &cd_ee30760);
+ dp->~ee30760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30760(Test_ee30760, "ee30760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30760C1Ev();
+extern void _ZN7ee30760D1Ev();
+Name_Map name_map_ee30760[] = {
+ NSPAIR(_ZN7ee30760C1Ev),
+ NSPAIR(_ZN7ee30760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee30760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, ABISELECT(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 _ZTI7ee30760[];
+extern void _ZN7ee307603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307603fooEv,_ZTv0_n16_N7ee307603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307603fooEv,_ZThn8_N7ee307603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee307603fooEv,_ZTv0_n16_N7ee307603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307603fooEv,_ZThn20_N7ee307603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30760[0]),
+ (VTBL_ENTRY)&_ZN7ee307603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307603fooEv,_ZTv0_n16_N7ee307603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307603fooEv,_ZTv0_n16_N7ee307603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee30760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee30760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee30760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee30760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee30760[] = {
+ {&(_ZTV7ee30760[4]), 4,18},
+ {&(_ZTV7ee30760[10]), 10,18},
+ {&(_ZTV7ee30760[16]), 16,18},
+ {&(_tg__ZTV6dd0760__7ee30760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee30760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee30760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee30760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30760[];
+extern VTBL_ENTRY _ZTV7ee30760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30760[];
+static VTBL_ENTRY alt_thunk_names398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307603fooEv,_ZTv0_n16_N7ee307603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307603fooEv,_ZThn20_N7ee307603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307603fooEv,_ZThn8_N7ee307603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30760 = { "ee30760", // class name
+ bases_ee30760, 4,
+ &(vtc_ee30760[0]), // expected_vtbl_contents
+ &(vtt_ee30760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30760),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 ee40760 : dd0760 {
+ int e;
+ virtual void bar(); // _ZN7ee407603barEv
+ ~ee40760(); // tgen
+ ee40760(); // tgen
+};
+//SIG(1 ee40760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40760 ::bar(){vfunc_called(this, "_ZN7ee407603barEv");}
+ee40760 ::~ee40760(){ note_dtor("ee40760", this);} // tgen
+ee40760 ::ee40760(){ note_ctor("ee40760", this);} // tgen
+
+static void Test_ee40760()
+{
+ extern Class_Descriptor cd_ee40760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40760, buf);
+ ee40760 *dp, &lv = *(dp=new (buf) ee40760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee40760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(24,16), "ee40760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), 0, "ee40760");
+ check_base_class_offset(lv, (dd0760*), 0, "ee40760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40760.e");
+ test_class_info(&lv, &cd_ee40760);
+ dp->~ee40760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40760(Test_ee40760, "ee40760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40760C1Ev();
+extern void _ZN7ee40760D1Ev();
+Name_Map name_map_ee40760[] = {
+ NSPAIR(_ZN7ee40760C1Ev),
+ NSPAIR(_ZN7ee40760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee40760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN7ee407603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee407603barEv,_ZTv0_n12_N7ee407603barEv)();
+extern void ABISELECT(_ZThn24_N7ee407603barEv,_ZThn16_N7ee407603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN7ee407603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee407603barEv,_ZTv0_n12_N7ee407603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee40760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee40760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee40760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee40760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee40760[] = {
+ {&(_ZTV7ee40760[3]), 3,11},
+ {&(_tg__ZTV6dd0760__7ee40760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee40760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee40760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee40760[4]), 4,6},
+ {&(_ZTV7ee40760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40760[];
+extern VTBL_ENTRY _ZTV7ee40760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40760[];
+static VTBL_ENTRY alt_thunk_names399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee407603barEv,_ZTv0_n12_N7ee407603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407603barEv,_ZThn16_N7ee407603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40760 = { "ee40760", // class name
+ bases_ee40760, 4,
+ &(vtc_ee40760[0]), // expected_vtbl_contents
+ &(vtt_ee40760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50760 : virtual dd0760 {
+ int e;
+ virtual void bar(); // _ZN7ee507603barEv
+ ~ee50760(); // tgen
+ ee50760(); // tgen
+};
+//SIG(1 ee50760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50760 ::bar(){vfunc_called(this, "_ZN7ee507603barEv");}
+ee50760 ::~ee50760(){ note_dtor("ee50760", this);} // tgen
+ee50760 ::ee50760(){ note_ctor("ee50760", this);} // tgen
+
+static void Test_ee50760()
+{
+ extern Class_Descriptor cd_ee50760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50760, buf);
+ ee50760 *dp, &lv = *(dp=new (buf) ee50760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee50760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(32,20), "ee50760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), ABISELECT(16,8), "ee50760");
+ check_base_class_offset(lv, (dd0760*), ABISELECT(16,8), "ee50760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50760.e");
+ test_class_info(&lv, &cd_ee50760);
+ dp->~ee50760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50760(Test_ee50760, "ee50760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50760C1Ev();
+extern void _ZN7ee50760D1Ev();
+Name_Map name_map_ee50760[] = {
+ NSPAIR(_ZN7ee50760C1Ev),
+ NSPAIR(_ZN7ee50760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee50760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, ABISELECT(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 _ZTI7ee50760[];
+extern void _ZN7ee507603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507603barEv,_ZTv0_n20_N7ee507603barEv)();
+extern void ABISELECT(_ZThn16_N7ee507603barEv,_ZThn8_N7ee507603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee507603barEv,_ZTv0_n12_N7ee507603barEv)();
+extern void ABISELECT(_ZThn32_N7ee507603barEv,_ZThn20_N7ee507603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50760[0]),
+ (VTBL_ENTRY)&_ZN7ee507603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507603barEv,_ZTv0_n20_N7ee507603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee507603barEv,_ZTv0_n12_N7ee507603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee50760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee50760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee50760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee50760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee50760[] = {
+ {&(_ZTV7ee50760[4]), 4,18},
+ {&(_ZTV7ee50760[10]), 10,18},
+ {&(_ZTV7ee50760[16]), 16,18},
+ {&(_tg__ZTV6dd0760__7ee50760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee50760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee50760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee50760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50760[];
+extern VTBL_ENTRY _ZTV7ee50760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50760[];
+static VTBL_ENTRY alt_thunk_names400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee507603barEv,_ZTv0_n12_N7ee507603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507603barEv,_ZThn20_N7ee507603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507603barEv,_ZTv0_n20_N7ee507603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507603barEv,_ZThn8_N7ee507603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50760 = { "ee50760", // class name
+ bases_ee50760, 4,
+ &(vtc_ee50760[0]), // expected_vtbl_contents
+ &(vtt_ee50760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50760),7, //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 ee60760 : dd0760 {
+ int e;
+ virtual void foo(); // _ZN7ee607603fooEv
+ virtual void bar(); // _ZN7ee607603barEv
+ ~ee60760(); // tgen
+ ee60760(); // tgen
+};
+//SIG(1 ee60760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60760 ::foo(){vfunc_called(this, "_ZN7ee607603fooEv");}
+void ee60760 ::bar(){vfunc_called(this, "_ZN7ee607603barEv");}
+ee60760 ::~ee60760(){ note_dtor("ee60760", this);} // tgen
+ee60760 ::ee60760(){ note_ctor("ee60760", this);} // tgen
+
+static void Test_ee60760()
+{
+ extern Class_Descriptor cd_ee60760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60760, buf);
+ ee60760 *dp, &lv = *(dp=new (buf) ee60760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee60760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(24,16), "ee60760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), 0, "ee60760");
+ check_base_class_offset(lv, (dd0760*), 0, "ee60760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60760.e");
+ test_class_info(&lv, &cd_ee60760);
+ dp->~ee60760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60760(Test_ee60760, "ee60760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60760C1Ev();
+extern void _ZN7ee60760D1Ev();
+Name_Map name_map_ee60760[] = {
+ NSPAIR(_ZN7ee60760C1Ev),
+ NSPAIR(_ZN7ee60760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee60760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60760[];
+extern void _ZN7ee607603fooEv();
+extern void _ZN7ee607603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607603barEv,_ZTv0_n12_N7ee607603barEv)();
+extern void ABISELECT(_ZThn24_N7ee607603barEv,_ZThn16_N7ee607603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607603fooEv,_ZTv0_n16_N7ee607603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607603fooEv,_ZThn16_N7ee607603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60760[0]),
+ (VTBL_ENTRY)&_ZN7ee607603fooEv,
+ (VTBL_ENTRY)&_ZN7ee607603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607603barEv,_ZTv0_n12_N7ee607603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607603fooEv,_ZTv0_n16_N7ee607603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee60760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee60760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee60760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee60760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee60760[] = {
+ {&(_ZTV7ee60760[3]), 3,11},
+ {&(_tg__ZTV6dd0760__7ee60760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee60760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee60760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee60760[4]), 4,6},
+ {&(_ZTV7ee60760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60760[];
+extern VTBL_ENTRY _ZTV7ee60760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60760[];
+static VTBL_ENTRY alt_thunk_names401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607603fooEv,_ZTv0_n16_N7ee607603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607603fooEv,_ZThn16_N7ee607603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607603barEv,_ZTv0_n12_N7ee607603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607603barEv,_ZThn16_N7ee607603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60760 = { "ee60760", // class name
+ bases_ee60760, 4,
+ &(vtc_ee60760[0]), // expected_vtbl_contents
+ &(vtt_ee60760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60760),6, //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 ee70760 : virtual dd0760 {
+ int e;
+ virtual void foo(); // _ZN7ee707603fooEv
+ virtual void bar(); // _ZN7ee707603barEv
+ ~ee70760(); // tgen
+ ee70760(); // tgen
+};
+//SIG(1 ee70760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70760 ::foo(){vfunc_called(this, "_ZN7ee707603fooEv");}
+void ee70760 ::bar(){vfunc_called(this, "_ZN7ee707603barEv");}
+ee70760 ::~ee70760(){ note_dtor("ee70760", this);} // tgen
+ee70760 ::ee70760(){ note_ctor("ee70760", this);} // tgen
+
+static void Test_ee70760()
+{
+ extern Class_Descriptor cd_ee70760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70760, buf);
+ ee70760 *dp, &lv = *(dp=new (buf) ee70760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee70760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd0760*), ABISELECT(32,20), "ee70760");
+ check_base_class_offset(lv, (cc760*)(dd0760*), ABISELECT(16,8), "ee70760");
+ check_base_class_offset(lv, (dd0760*), ABISELECT(16,8), "ee70760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70760.e");
+ test_class_info(&lv, &cd_ee70760);
+ dp->~ee70760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70760(Test_ee70760, "ee70760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70760C1Ev();
+extern void _ZN7ee70760D1Ev();
+Name_Map name_map_ee70760[] = {
+ NSPAIR(_ZN7ee70760C1Ev),
+ NSPAIR(_ZN7ee70760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd0760;
+extern VTBL_ENTRY _ZTI6dd0760[];
+extern VTBL_ENTRY _ZTV6dd0760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0760[];
+static Base_Class bases_ee70760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0760, ABISELECT(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 _ZTI7ee70760[];
+extern void _ZN7ee707603fooEv();
+extern void _ZN7ee707603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707603fooEv,_ZTv0_n16_N7ee707603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707603fooEv,_ZThn8_N7ee707603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707603barEv,_ZTv0_n20_N7ee707603barEv)();
+extern void ABISELECT(_ZThn16_N7ee707603barEv,_ZThn8_N7ee707603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707603barEv,_ZTv0_n12_N7ee707603barEv)();
+extern void ABISELECT(_ZThn32_N7ee707603barEv,_ZThn20_N7ee707603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707603fooEv,_ZTv0_n16_N7ee707603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707603fooEv,_ZThn20_N7ee707603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70760[0]),
+ (VTBL_ENTRY)&_ZN7ee707603fooEv,
+ (VTBL_ENTRY)&_ZN7ee707603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707603fooEv,_ZTv0_n16_N7ee707603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707603barEv,_ZTv0_n20_N7ee707603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707603barEv,_ZTv0_n12_N7ee707603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707603fooEv,_ZTv0_n16_N7ee707603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd0760__7ee70760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd0760__7ee70760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd0760__7ee70760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd0760__7ee70760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee70760[] = {
+ {&(_ZTV7ee70760[4]), 4,19},
+ {&(_ZTV7ee70760[11]), 11,19},
+ {&(_ZTV7ee70760[17]), 17,19},
+ {&(_tg__ZTV6dd0760__7ee70760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd0760__7ee70760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd0760__7ee70760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd0760__7ee70760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70760[];
+extern VTBL_ENTRY _ZTV7ee70760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70760[];
+static VTBL_ENTRY alt_thunk_names402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707603barEv,_ZTv0_n12_N7ee707603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707603barEv,_ZThn20_N7ee707603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707603barEv,_ZTv0_n20_N7ee707603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707603barEv,_ZThn8_N7ee707603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707603fooEv,_ZTv0_n16_N7ee707603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707603fooEv,_ZThn20_N7ee707603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707603fooEv,_ZThn8_N7ee707603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70760 = { "ee70760", // class name
+ bases_ee70760, 4,
+ &(vtc_ee70760[0]), // expected_vtbl_contents
+ &(vtt_ee70760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70760),7, //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 dd1760 : virtual cc760 {
+ int d;
+ ~dd1760(); // tgen
+ dd1760(); // tgen
+};
+//SIG(-1 dd1760) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1760 ::~dd1760(){ note_dtor("dd1760", this);} // tgen
+dd1760 ::dd1760(){ note_ctor("dd1760", this);} // tgen
+
+static void Test_dd1760()
+{
+ extern Class_Descriptor cd_dd1760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1760, buf);
+ dd1760 *dp, &lv = *(dp=new (buf) dd1760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd1760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,16), "dd1760");
+ check_base_class_offset(lv, (cc760*), ABISELECT(16,8), "dd1760");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1760.d");
+ test_class_info(&lv, &cd_dd1760);
+ dp->~dd1760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1760(Test_dd1760, "dd1760", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1760C1Ev();
+extern void _ZN6dd1760D1Ev();
+Name_Map name_map_dd1760[] = {
+ NSPAIR(_ZN6dd1760C1Ev),
+ NSPAIR(_ZN6dd1760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd1760[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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 _ZTI6dd1760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd1760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd1760[] = {
+ {&(_ZTV6dd1760[4]), 4,17},
+ {&(_ZTV6dd1760[9]), 9,17},
+ {&(_ZTV6dd1760[15]), 15,17},
+ {&(_tg__ZTV5cc760__6dd1760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd1760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static VTBL_ENTRY alt_thunk_names403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1760 = { "dd1760", // class name
+ bases_dd1760, 3,
+ &(vtc_dd1760[0]), // expected_vtbl_contents
+ &(vtt_dd1760[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1760),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01760 : dd1760 {
+ int e;
+ ~ee01760(); // tgen
+ ee01760(); // tgen
+};
+//SIG(1 ee01760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01760 ::~ee01760(){ note_dtor("ee01760", this);} // tgen
+ee01760 ::ee01760(){ note_ctor("ee01760", this);} // tgen
+
+static void Test_ee01760()
+{
+ extern Class_Descriptor cd_ee01760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01760, buf);
+ ee01760 *dp, &lv = *(dp=new (buf) ee01760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee01760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee01760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(16,12), "ee01760");
+ check_base_class_offset(lv, (dd1760*), 0, "ee01760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01760.e");
+ test_class_info(&lv, &cd_ee01760);
+ dp->~ee01760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01760(Test_ee01760, "ee01760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01760C1Ev();
+extern void _ZN7ee01760D1Ev();
+Name_Map name_map_ee01760[] = {
+ NSPAIR(_ZN7ee01760C1Ev),
+ NSPAIR(_ZN7ee01760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee01760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01760[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee01760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee01760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee01760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee01760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee01760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee01760[] = {
+ {&(_ZTV7ee01760[4]), 4,17},
+ {&(_tg__ZTV6dd1760__7ee01760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee01760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee01760[4]), 4,6},
+ {&(_ZTV7ee01760[9]), 9,17},
+ {&(_ZTV7ee01760[15]), 15,17},
+ {&(_tg__ZTV5cc760__7ee01760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee01760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01760[];
+extern VTBL_ENTRY _ZTV7ee01760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01760[];
+static VTBL_ENTRY alt_thunk_names404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01760 = { "ee01760", // class name
+ bases_ee01760, 4,
+ &(vtc_ee01760[0]), // expected_vtbl_contents
+ &(vtt_ee01760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01760),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 ee11760 : virtual dd1760 {
+ int e;
+ ~ee11760(); // tgen
+ ee11760(); // tgen
+};
+//SIG(1 ee11760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11760 ::~ee11760(){ note_dtor("ee11760", this);} // tgen
+ee11760 ::ee11760(){ note_ctor("ee11760", this);} // tgen
+
+static void Test_ee11760()
+{
+ extern Class_Descriptor cd_ee11760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11760, buf);
+ ee11760 *dp, &lv = *(dp=new (buf) ee11760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee11760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee11760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(32,16), "ee11760");
+ check_base_class_offset(lv, (dd1760*), ABISELECT(16,8), "ee11760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11760.e");
+ test_class_info(&lv, &cd_ee11760);
+ dp->~ee11760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11760(Test_ee11760, "ee11760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11760C1Ev();
+extern void _ZN7ee11760D1Ev();
+Name_Map name_map_ee11760[] = {
+ NSPAIR(_ZN7ee11760C1Ev),
+ NSPAIR(_ZN7ee11760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee11760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, ABISELECT(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 _ZTI7ee11760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11760[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11760[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee11760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee11760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee11760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee11760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee11760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee11760[] = {
+ {&(_ZTV7ee11760[5]), 5,22},
+ {&(_ZTV7ee11760[9]), 9,22},
+ {&(_ZTV7ee11760[14]), 14,22},
+ {&(_ZTV7ee11760[20]), 20,22},
+ {&(_tg__ZTV6dd1760__7ee11760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee11760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee11760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee11760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee11760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11760[];
+extern VTBL_ENTRY _ZTV7ee11760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11760[];
+static VTBL_ENTRY alt_thunk_names405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11760 = { "ee11760", // class name
+ bases_ee11760, 4,
+ &(vtc_ee11760[0]), // expected_vtbl_contents
+ &(vtt_ee11760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11760),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11760),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 ee21760 : dd1760 {
+ int e;
+ virtual void foo(); // _ZN7ee217603fooEv
+ ~ee21760(); // tgen
+ ee21760(); // tgen
+};
+//SIG(1 ee21760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21760 ::foo(){vfunc_called(this, "_ZN7ee217603fooEv");}
+ee21760 ::~ee21760(){ note_dtor("ee21760", this);} // tgen
+ee21760 ::ee21760(){ note_ctor("ee21760", this);} // tgen
+
+static void Test_ee21760()
+{
+ extern Class_Descriptor cd_ee21760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21760, buf);
+ ee21760 *dp, &lv = *(dp=new (buf) ee21760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee21760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee21760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(16,12), "ee21760");
+ check_base_class_offset(lv, (dd1760*), 0, "ee21760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21760.e");
+ test_class_info(&lv, &cd_ee21760);
+ dp->~ee21760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21760(Test_ee21760, "ee21760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21760C1Ev();
+extern void _ZN7ee21760D1Ev();
+Name_Map name_map_ee21760[] = {
+ NSPAIR(_ZN7ee21760C1Ev),
+ NSPAIR(_ZN7ee21760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee21760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21760[];
+extern void _ZN7ee217603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217603fooEv,_ZTv0_n16_N7ee217603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217603fooEv,_ZThn12_N7ee217603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee217603fooEv,_ZTv0_n16_N7ee217603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217603fooEv,_ZThn20_N7ee217603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21760[0]),
+ (VTBL_ENTRY)&_ZN7ee217603fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217603fooEv,_ZTv0_n16_N7ee217603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217603fooEv,_ZTv0_n16_N7ee217603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee21760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee21760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee21760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee21760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee21760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee21760[] = {
+ {&(_ZTV7ee21760[4]), 4,18},
+ {&(_tg__ZTV6dd1760__7ee21760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee21760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee21760[4]), 4,6},
+ {&(_ZTV7ee21760[10]), 10,18},
+ {&(_ZTV7ee21760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee21760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee21760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21760[];
+extern VTBL_ENTRY _ZTV7ee21760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21760[];
+static VTBL_ENTRY alt_thunk_names406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217603fooEv,_ZTv0_n16_N7ee217603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217603fooEv,_ZThn20_N7ee217603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217603fooEv,_ZThn12_N7ee217603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21760 = { "ee21760", // class name
+ bases_ee21760, 4,
+ &(vtc_ee21760[0]), // expected_vtbl_contents
+ &(vtt_ee21760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21760),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 ee31760 : virtual dd1760 {
+ int e;
+ virtual void foo(); // _ZN7ee317603fooEv
+ ~ee31760(); // tgen
+ ee31760(); // tgen
+};
+//SIG(1 ee31760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31760 ::foo(){vfunc_called(this, "_ZN7ee317603fooEv");}
+ee31760 ::~ee31760(){ note_dtor("ee31760", this);} // tgen
+ee31760 ::ee31760(){ note_ctor("ee31760", this);} // tgen
+
+static void Test_ee31760()
+{
+ extern Class_Descriptor cd_ee31760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31760, buf);
+ ee31760 *dp, &lv = *(dp=new (buf) ee31760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee31760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee31760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(32,16), "ee31760");
+ check_base_class_offset(lv, (dd1760*), ABISELECT(16,8), "ee31760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31760.e");
+ test_class_info(&lv, &cd_ee31760);
+ dp->~ee31760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31760(Test_ee31760, "ee31760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31760C1Ev();
+extern void _ZN7ee31760D1Ev();
+Name_Map name_map_ee31760[] = {
+ NSPAIR(_ZN7ee31760C1Ev),
+ NSPAIR(_ZN7ee31760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee31760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 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 _ZTI7ee31760[];
+extern void _ZN7ee317603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317603fooEv,_ZTv0_n16_N7ee317603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317603fooEv,_ZThn16_N7ee317603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee317603fooEv,_ZTv0_n16_N7ee317603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317603fooEv,_ZThn24_N7ee317603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31760[0]),
+ (VTBL_ENTRY)&_ZN7ee317603fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31760[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317603fooEv,_ZTv0_n16_N7ee317603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317603fooEv,_ZTv0_n16_N7ee317603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee31760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee31760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee31760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee31760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee31760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee31760[] = {
+ {&(_ZTV7ee31760[5]), 5,23},
+ {&(_ZTV7ee31760[10]), 10,23},
+ {&(_ZTV7ee31760[15]), 15,23},
+ {&(_ZTV7ee31760[21]), 21,23},
+ {&(_tg__ZTV6dd1760__7ee31760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee31760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee31760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee31760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee31760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31760[];
+extern VTBL_ENTRY _ZTV7ee31760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31760[];
+static VTBL_ENTRY alt_thunk_names407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317603fooEv,_ZTv0_n16_N7ee317603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317603fooEv,_ZThn24_N7ee317603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317603fooEv,_ZThn16_N7ee317603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31760 = { "ee31760", // class name
+ bases_ee31760, 4,
+ &(vtc_ee31760[0]), // expected_vtbl_contents
+ &(vtt_ee31760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31760),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31760),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 ee41760 : dd1760 {
+ int e;
+ virtual void bar(); // _ZN7ee417603barEv
+ ~ee41760(); // tgen
+ ee41760(); // tgen
+};
+//SIG(1 ee41760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41760 ::bar(){vfunc_called(this, "_ZN7ee417603barEv");}
+ee41760 ::~ee41760(){ note_dtor("ee41760", this);} // tgen
+ee41760 ::ee41760(){ note_ctor("ee41760", this);} // tgen
+
+static void Test_ee41760()
+{
+ extern Class_Descriptor cd_ee41760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41760, buf);
+ ee41760 *dp, &lv = *(dp=new (buf) ee41760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee41760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee41760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(16,12), "ee41760");
+ check_base_class_offset(lv, (dd1760*), 0, "ee41760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41760.e");
+ test_class_info(&lv, &cd_ee41760);
+ dp->~ee41760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41760(Test_ee41760, "ee41760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41760C1Ev();
+extern void _ZN7ee41760D1Ev();
+Name_Map name_map_ee41760[] = {
+ NSPAIR(_ZN7ee41760C1Ev),
+ NSPAIR(_ZN7ee41760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee41760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41760[];
+extern void _ZN7ee417603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417603barEv,_ZTv0_n20_N7ee417603barEv)();
+extern void ABISELECT(_ZThn16_N7ee417603barEv,_ZThn12_N7ee417603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee417603barEv,_ZTv0_n12_N7ee417603barEv)();
+extern void ABISELECT(_ZThn32_N7ee417603barEv,_ZThn20_N7ee417603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41760[0]),
+ (VTBL_ENTRY)&_ZN7ee417603barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417603barEv,_ZTv0_n20_N7ee417603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee417603barEv,_ZTv0_n12_N7ee417603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee41760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee41760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee41760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee41760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee41760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee41760[] = {
+ {&(_ZTV7ee41760[4]), 4,18},
+ {&(_tg__ZTV6dd1760__7ee41760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee41760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee41760[4]), 4,6},
+ {&(_ZTV7ee41760[10]), 10,18},
+ {&(_ZTV7ee41760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee41760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee41760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41760[];
+extern VTBL_ENTRY _ZTV7ee41760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41760[];
+static VTBL_ENTRY alt_thunk_names408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee417603barEv,_ZTv0_n12_N7ee417603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417603barEv,_ZThn20_N7ee417603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417603barEv,_ZTv0_n20_N7ee417603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417603barEv,_ZThn12_N7ee417603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41760 = { "ee41760", // class name
+ bases_ee41760, 4,
+ &(vtc_ee41760[0]), // expected_vtbl_contents
+ &(vtt_ee41760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51760 : virtual dd1760 {
+ int e;
+ virtual void bar(); // _ZN7ee517603barEv
+ ~ee51760(); // tgen
+ ee51760(); // tgen
+};
+//SIG(1 ee51760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51760 ::bar(){vfunc_called(this, "_ZN7ee517603barEv");}
+ee51760 ::~ee51760(){ note_dtor("ee51760", this);} // tgen
+ee51760 ::ee51760(){ note_ctor("ee51760", this);} // tgen
+
+static void Test_ee51760()
+{
+ extern Class_Descriptor cd_ee51760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51760, buf);
+ ee51760 *dp, &lv = *(dp=new (buf) ee51760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee51760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee51760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(32,16), "ee51760");
+ check_base_class_offset(lv, (dd1760*), ABISELECT(16,8), "ee51760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51760.e");
+ test_class_info(&lv, &cd_ee51760);
+ dp->~ee51760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51760(Test_ee51760, "ee51760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51760C1Ev();
+extern void _ZN7ee51760D1Ev();
+Name_Map name_map_ee51760[] = {
+ NSPAIR(_ZN7ee51760C1Ev),
+ NSPAIR(_ZN7ee51760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee51760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 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 _ZTI7ee51760[];
+extern void _ZN7ee517603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517603barEv,_ZTv0_n20_N7ee517603barEv)();
+extern void ABISELECT(_ZThn32_N7ee517603barEv,_ZThn16_N7ee517603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee517603barEv,_ZTv0_n12_N7ee517603barEv)();
+extern void ABISELECT(_ZThn48_N7ee517603barEv,_ZThn24_N7ee517603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51760[0]),
+ (VTBL_ENTRY)&_ZN7ee517603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51760[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517603barEv,_ZTv0_n20_N7ee517603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee517603barEv,_ZTv0_n12_N7ee517603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee51760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee51760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee51760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee51760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee51760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee51760[] = {
+ {&(_ZTV7ee51760[5]), 5,23},
+ {&(_ZTV7ee51760[10]), 10,23},
+ {&(_ZTV7ee51760[15]), 15,23},
+ {&(_ZTV7ee51760[21]), 21,23},
+ {&(_tg__ZTV6dd1760__7ee51760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee51760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee51760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee51760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee51760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51760[];
+extern VTBL_ENTRY _ZTV7ee51760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51760[];
+static VTBL_ENTRY alt_thunk_names409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee517603barEv,_ZTv0_n12_N7ee517603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517603barEv,_ZThn24_N7ee517603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517603barEv,_ZTv0_n20_N7ee517603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517603barEv,_ZThn16_N7ee517603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51760 = { "ee51760", // class name
+ bases_ee51760, 4,
+ &(vtc_ee51760[0]), // expected_vtbl_contents
+ &(vtt_ee51760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51760),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51760),9, //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 ee61760 : dd1760 {
+ int e;
+ virtual void foo(); // _ZN7ee617603fooEv
+ virtual void bar(); // _ZN7ee617603barEv
+ ~ee61760(); // tgen
+ ee61760(); // tgen
+};
+//SIG(1 ee61760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61760 ::foo(){vfunc_called(this, "_ZN7ee617603fooEv");}
+void ee61760 ::bar(){vfunc_called(this, "_ZN7ee617603barEv");}
+ee61760 ::~ee61760(){ note_dtor("ee61760", this);} // tgen
+ee61760 ::ee61760(){ note_ctor("ee61760", this);} // tgen
+
+static void Test_ee61760()
+{
+ extern Class_Descriptor cd_ee61760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61760, buf);
+ ee61760 *dp, &lv = *(dp=new (buf) ee61760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee61760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee61760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(16,12), "ee61760");
+ check_base_class_offset(lv, (dd1760*), 0, "ee61760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61760.e");
+ test_class_info(&lv, &cd_ee61760);
+ dp->~ee61760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61760(Test_ee61760, "ee61760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61760C1Ev();
+extern void _ZN7ee61760D1Ev();
+Name_Map name_map_ee61760[] = {
+ NSPAIR(_ZN7ee61760C1Ev),
+ NSPAIR(_ZN7ee61760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee61760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61760[];
+extern void _ZN7ee617603fooEv();
+extern void _ZN7ee617603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617603fooEv,_ZTv0_n16_N7ee617603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617603fooEv,_ZThn12_N7ee617603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617603barEv,_ZTv0_n20_N7ee617603barEv)();
+extern void ABISELECT(_ZThn16_N7ee617603barEv,_ZThn12_N7ee617603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617603barEv,_ZTv0_n12_N7ee617603barEv)();
+extern void ABISELECT(_ZThn32_N7ee617603barEv,_ZThn20_N7ee617603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617603fooEv,_ZTv0_n16_N7ee617603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617603fooEv,_ZThn20_N7ee617603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61760[0]),
+ (VTBL_ENTRY)&_ZN7ee617603fooEv,
+ (VTBL_ENTRY)&_ZN7ee617603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617603fooEv,_ZTv0_n16_N7ee617603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617603barEv,_ZTv0_n20_N7ee617603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617603barEv,_ZTv0_n12_N7ee617603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617603fooEv,_ZTv0_n16_N7ee617603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee61760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee61760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee61760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee61760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee61760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee61760[] = {
+ {&(_ZTV7ee61760[4]), 4,19},
+ {&(_tg__ZTV6dd1760__7ee61760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee61760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee61760[4]), 4,6},
+ {&(_ZTV7ee61760[11]), 11,19},
+ {&(_ZTV7ee61760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee61760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee61760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61760[];
+extern VTBL_ENTRY _ZTV7ee61760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61760[];
+static VTBL_ENTRY alt_thunk_names410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617603barEv,_ZTv0_n12_N7ee617603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617603barEv,_ZThn20_N7ee617603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617603barEv,_ZTv0_n20_N7ee617603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617603barEv,_ZThn12_N7ee617603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617603fooEv,_ZTv0_n16_N7ee617603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617603fooEv,_ZThn20_N7ee617603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617603fooEv,_ZThn12_N7ee617603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61760 = { "ee61760", // class name
+ bases_ee61760, 4,
+ &(vtc_ee61760[0]), // expected_vtbl_contents
+ &(vtt_ee61760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71760 : virtual dd1760 {
+ int e;
+ virtual void foo(); // _ZN7ee717603fooEv
+ virtual void bar(); // _ZN7ee717603barEv
+ ~ee71760(); // tgen
+ ee71760(); // tgen
+};
+//SIG(1 ee71760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71760 ::foo(){vfunc_called(this, "_ZN7ee717603fooEv");}
+void ee71760 ::bar(){vfunc_called(this, "_ZN7ee717603barEv");}
+ee71760 ::~ee71760(){ note_dtor("ee71760", this);} // tgen
+ee71760 ::ee71760(){ note_ctor("ee71760", this);} // tgen
+
+static void Test_ee71760()
+{
+ extern Class_Descriptor cd_ee71760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71760, buf);
+ ee71760 *dp, &lv = *(dp=new (buf) ee71760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee71760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee71760");
+ check_base_class_offset(lv, (cc760*)(dd1760*), ABISELECT(32,16), "ee71760");
+ check_base_class_offset(lv, (dd1760*), ABISELECT(16,8), "ee71760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71760.e");
+ test_class_info(&lv, &cd_ee71760);
+ dp->~ee71760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71760(Test_ee71760, "ee71760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71760C1Ev();
+extern void _ZN7ee71760D1Ev();
+Name_Map name_map_ee71760[] = {
+ NSPAIR(_ZN7ee71760C1Ev),
+ NSPAIR(_ZN7ee71760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd1760;
+extern VTBL_ENTRY _ZTI6dd1760[];
+extern VTBL_ENTRY _ZTV6dd1760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1760[];
+static Base_Class bases_ee71760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd1760, 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 _ZTI7ee71760[];
+extern void _ZN7ee717603fooEv();
+extern void _ZN7ee717603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717603fooEv,_ZTv0_n16_N7ee717603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717603fooEv,_ZThn16_N7ee717603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717603barEv,_ZTv0_n20_N7ee717603barEv)();
+extern void ABISELECT(_ZThn32_N7ee717603barEv,_ZThn16_N7ee717603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717603barEv,_ZTv0_n12_N7ee717603barEv)();
+extern void ABISELECT(_ZThn48_N7ee717603barEv,_ZThn24_N7ee717603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717603fooEv,_ZTv0_n16_N7ee717603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717603fooEv,_ZThn24_N7ee717603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71760[0]),
+ (VTBL_ENTRY)&_ZN7ee717603fooEv,
+ (VTBL_ENTRY)&_ZN7ee717603barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71760[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717603fooEv,_ZTv0_n16_N7ee717603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717603barEv,_ZTv0_n20_N7ee717603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717603barEv,_ZTv0_n12_N7ee717603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717603fooEv,_ZTv0_n16_N7ee717603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71760[];
+static VTBL_ENTRY _tg__ZTV6dd1760__7ee71760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd1760__7ee71760[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd1760__7ee71760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee71760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee71760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee71760[] = {
+ {&(_ZTV7ee71760[5]), 5,24},
+ {&(_ZTV7ee71760[11]), 11,24},
+ {&(_ZTV7ee71760[16]), 16,24},
+ {&(_ZTV7ee71760[22]), 22,24},
+ {&(_tg__ZTV6dd1760__7ee71760[4]), 4,4},
+ {&(_tg__ZTV5cc760__6dd1760__7ee71760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd1760__7ee71760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee71760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee71760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71760[];
+extern VTBL_ENTRY _ZTV7ee71760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71760[];
+static VTBL_ENTRY alt_thunk_names411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717603barEv,_ZTv0_n12_N7ee717603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717603barEv,_ZThn24_N7ee717603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717603barEv,_ZTv0_n20_N7ee717603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717603barEv,_ZThn16_N7ee717603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717603fooEv,_ZTv0_n16_N7ee717603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717603fooEv,_ZThn24_N7ee717603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717603fooEv,_ZThn16_N7ee717603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71760 = { "ee71760", // class name
+ bases_ee71760, 4,
+ &(vtc_ee71760[0]), // expected_vtbl_contents
+ &(vtt_ee71760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71760),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71760),9, //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 dd2760 : cc760 {
+ int d;
+ virtual void foo(); // _ZN6dd27603fooEv
+ ~dd2760(); // tgen
+ dd2760(); // tgen
+};
+//SIG(-1 dd2760) C1{ BC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2760 ::foo(){vfunc_called(this, "_ZN6dd27603fooEv");}
+dd2760 ::~dd2760(){ note_dtor("dd2760", this);} // tgen
+dd2760 ::dd2760(){ note_ctor("dd2760", this);} // tgen
+
+static void Test_dd2760()
+{
+ extern Class_Descriptor cd_dd2760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2760, buf);
+ dd2760 *dp, &lv = *(dp=new (buf) dd2760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd2760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(16,12), "dd2760");
+ check_base_class_offset(lv, (cc760*), 0, "dd2760");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2760.d");
+ test_class_info(&lv, &cd_dd2760);
+ dp->~dd2760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2760(Test_dd2760, "dd2760", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2760C1Ev();
+extern void _ZN6dd2760D1Ev();
+Name_Map name_map_dd2760[] = {
+ NSPAIR(_ZN6dd2760C1Ev),
+ NSPAIR(_ZN6dd2760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd2760[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd2760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd2760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd2760[] = {
+ {&(_ZTV6dd2760[3]), 3,11},
+ {&(_tg__ZTV5cc760__6dd2760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd2760[4]), 4,6},
+ {&(_ZTV6dd2760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static VTBL_ENTRY alt_thunk_names412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2760 = { "dd2760", // class name
+ bases_dd2760, 3,
+ &(vtc_dd2760[0]), // expected_vtbl_contents
+ &(vtt_dd2760[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2760),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02760 : dd2760 {
+ int e;
+ ~ee02760(); // tgen
+ ee02760(); // tgen
+};
+//SIG(1 ee02760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02760 ::~ee02760(){ note_dtor("ee02760", this);} // tgen
+ee02760 ::ee02760(){ note_ctor("ee02760", this);} // tgen
+
+static void Test_ee02760()
+{
+ extern Class_Descriptor cd_ee02760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02760, buf);
+ ee02760 *dp, &lv = *(dp=new (buf) ee02760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee02760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(24,16), "ee02760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), 0, "ee02760");
+ check_base_class_offset(lv, (dd2760*), 0, "ee02760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02760.e");
+ test_class_info(&lv, &cd_ee02760);
+ dp->~ee02760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02760(Test_ee02760, "ee02760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02760C1Ev();
+extern void _ZN7ee02760D1Ev();
+Name_Map name_map_ee02760[] = {
+ NSPAIR(_ZN7ee02760C1Ev),
+ NSPAIR(_ZN7ee02760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee02760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee02760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee02760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee02760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee02760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee02760[] = {
+ {&(_ZTV7ee02760[3]), 3,11},
+ {&(_tg__ZTV6dd2760__7ee02760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee02760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee02760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee02760[4]), 4,6},
+ {&(_ZTV7ee02760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02760[];
+extern VTBL_ENTRY _ZTV7ee02760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02760[];
+static VTBL_ENTRY alt_thunk_names413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02760 = { "ee02760", // class name
+ bases_ee02760, 4,
+ &(vtc_ee02760[0]), // expected_vtbl_contents
+ &(vtt_ee02760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02760),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 ee12760 : virtual dd2760 {
+ int e;
+ ~ee12760(); // tgen
+ ee12760(); // tgen
+};
+//SIG(1 ee12760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12760 ::~ee12760(){ note_dtor("ee12760", this);} // tgen
+ee12760 ::ee12760(){ note_ctor("ee12760", this);} // tgen
+
+static void Test_ee12760()
+{
+ extern Class_Descriptor cd_ee12760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12760, buf);
+ ee12760 *dp, &lv = *(dp=new (buf) ee12760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee12760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(32,20), "ee12760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), ABISELECT(16,8), "ee12760");
+ check_base_class_offset(lv, (dd2760*), ABISELECT(16,8), "ee12760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12760.e");
+ test_class_info(&lv, &cd_ee12760);
+ dp->~ee12760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12760(Test_ee12760, "ee12760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12760C1Ev();
+extern void _ZN7ee12760D1Ev();
+Name_Map name_map_ee12760[] = {
+ NSPAIR(_ZN7ee12760C1Ev),
+ NSPAIR(_ZN7ee12760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee12760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, 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 _ZTI7ee12760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12760[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee12760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee12760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee12760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee12760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee12760[] = {
+ {&(_ZTV7ee12760[4]), 4,17},
+ {&(_ZTV7ee12760[9]), 9,17},
+ {&(_ZTV7ee12760[15]), 15,17},
+ {&(_tg__ZTV6dd2760__7ee12760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee12760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee12760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee12760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12760[];
+extern VTBL_ENTRY _ZTV7ee12760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12760[];
+static VTBL_ENTRY alt_thunk_names414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12760 = { "ee12760", // class name
+ bases_ee12760, 4,
+ &(vtc_ee12760[0]), // expected_vtbl_contents
+ &(vtt_ee12760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12760),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 ee22760 : dd2760 {
+ int e;
+ virtual void foo(); // _ZN7ee227603fooEv
+ ~ee22760(); // tgen
+ ee22760(); // tgen
+};
+//SIG(1 ee22760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22760 ::foo(){vfunc_called(this, "_ZN7ee227603fooEv");}
+ee22760 ::~ee22760(){ note_dtor("ee22760", this);} // tgen
+ee22760 ::ee22760(){ note_ctor("ee22760", this);} // tgen
+
+static void Test_ee22760()
+{
+ extern Class_Descriptor cd_ee22760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22760, buf);
+ ee22760 *dp, &lv = *(dp=new (buf) ee22760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee22760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(24,16), "ee22760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), 0, "ee22760");
+ check_base_class_offset(lv, (dd2760*), 0, "ee22760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22760.e");
+ test_class_info(&lv, &cd_ee22760);
+ dp->~ee22760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22760(Test_ee22760, "ee22760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22760C1Ev();
+extern void _ZN7ee22760D1Ev();
+Name_Map name_map_ee22760[] = {
+ NSPAIR(_ZN7ee22760C1Ev),
+ NSPAIR(_ZN7ee22760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee22760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22760[];
+extern void _ZN7ee227603fooEv();
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee227603fooEv,_ZTv0_n16_N7ee227603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227603fooEv,_ZThn16_N7ee227603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22760[0]),
+ (VTBL_ENTRY)&_ZN7ee227603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee227603fooEv,_ZTv0_n16_N7ee227603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee22760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee22760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee22760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee22760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee22760[] = {
+ {&(_ZTV7ee22760[3]), 3,11},
+ {&(_tg__ZTV6dd2760__7ee22760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee22760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee22760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee22760[4]), 4,6},
+ {&(_ZTV7ee22760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22760[];
+extern VTBL_ENTRY _ZTV7ee22760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22760[];
+static VTBL_ENTRY alt_thunk_names415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee227603fooEv,_ZTv0_n16_N7ee227603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227603fooEv,_ZThn16_N7ee227603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22760 = { "ee22760", // class name
+ bases_ee22760, 4,
+ &(vtc_ee22760[0]), // expected_vtbl_contents
+ &(vtt_ee22760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22760),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 ee32760 : virtual dd2760 {
+ int e;
+ virtual void foo(); // _ZN7ee327603fooEv
+ ~ee32760(); // tgen
+ ee32760(); // tgen
+};
+//SIG(1 ee32760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32760 ::foo(){vfunc_called(this, "_ZN7ee327603fooEv");}
+ee32760 ::~ee32760(){ note_dtor("ee32760", this);} // tgen
+ee32760 ::ee32760(){ note_ctor("ee32760", this);} // tgen
+
+static void Test_ee32760()
+{
+ extern Class_Descriptor cd_ee32760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32760, buf);
+ ee32760 *dp, &lv = *(dp=new (buf) ee32760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee32760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(32,20), "ee32760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), ABISELECT(16,8), "ee32760");
+ check_base_class_offset(lv, (dd2760*), ABISELECT(16,8), "ee32760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32760.e");
+ test_class_info(&lv, &cd_ee32760);
+ dp->~ee32760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32760(Test_ee32760, "ee32760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32760C1Ev();
+extern void _ZN7ee32760D1Ev();
+Name_Map name_map_ee32760[] = {
+ NSPAIR(_ZN7ee32760C1Ev),
+ NSPAIR(_ZN7ee32760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee32760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, ABISELECT(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 _ZTI7ee32760[];
+extern void _ZN7ee327603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327603fooEv,_ZTv0_n16_N7ee327603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327603fooEv,_ZThn8_N7ee327603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee327603fooEv,_ZTv0_n16_N7ee327603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327603fooEv,_ZThn20_N7ee327603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32760[0]),
+ (VTBL_ENTRY)&_ZN7ee327603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327603fooEv,_ZTv0_n16_N7ee327603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327603fooEv,_ZTv0_n16_N7ee327603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee32760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee32760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee32760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee32760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee32760[] = {
+ {&(_ZTV7ee32760[4]), 4,18},
+ {&(_ZTV7ee32760[10]), 10,18},
+ {&(_ZTV7ee32760[16]), 16,18},
+ {&(_tg__ZTV6dd2760__7ee32760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee32760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee32760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee32760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32760[];
+extern VTBL_ENTRY _ZTV7ee32760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32760[];
+static VTBL_ENTRY alt_thunk_names416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327603fooEv,_ZTv0_n16_N7ee327603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327603fooEv,_ZThn20_N7ee327603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327603fooEv,_ZThn8_N7ee327603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32760 = { "ee32760", // class name
+ bases_ee32760, 4,
+ &(vtc_ee32760[0]), // expected_vtbl_contents
+ &(vtt_ee32760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32760),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 ee42760 : dd2760 {
+ int e;
+ virtual void bar(); // _ZN7ee427603barEv
+ ~ee42760(); // tgen
+ ee42760(); // tgen
+};
+//SIG(1 ee42760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42760 ::bar(){vfunc_called(this, "_ZN7ee427603barEv");}
+ee42760 ::~ee42760(){ note_dtor("ee42760", this);} // tgen
+ee42760 ::ee42760(){ note_ctor("ee42760", this);} // tgen
+
+static void Test_ee42760()
+{
+ extern Class_Descriptor cd_ee42760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42760, buf);
+ ee42760 *dp, &lv = *(dp=new (buf) ee42760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee42760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(24,16), "ee42760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), 0, "ee42760");
+ check_base_class_offset(lv, (dd2760*), 0, "ee42760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42760.e");
+ test_class_info(&lv, &cd_ee42760);
+ dp->~ee42760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42760(Test_ee42760, "ee42760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42760C1Ev();
+extern void _ZN7ee42760D1Ev();
+Name_Map name_map_ee42760[] = {
+ NSPAIR(_ZN7ee42760C1Ev),
+ NSPAIR(_ZN7ee42760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee42760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN7ee427603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee427603barEv,_ZTv0_n12_N7ee427603barEv)();
+extern void ABISELECT(_ZThn24_N7ee427603barEv,_ZThn16_N7ee427603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN7ee427603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee427603barEv,_ZTv0_n12_N7ee427603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee42760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee42760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee42760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee42760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee42760[] = {
+ {&(_ZTV7ee42760[3]), 3,11},
+ {&(_tg__ZTV6dd2760__7ee42760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee42760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee42760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee42760[4]), 4,6},
+ {&(_ZTV7ee42760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42760[];
+extern VTBL_ENTRY _ZTV7ee42760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42760[];
+static VTBL_ENTRY alt_thunk_names417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee427603barEv,_ZTv0_n12_N7ee427603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427603barEv,_ZThn16_N7ee427603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42760 = { "ee42760", // class name
+ bases_ee42760, 4,
+ &(vtc_ee42760[0]), // expected_vtbl_contents
+ &(vtt_ee42760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52760 : virtual dd2760 {
+ int e;
+ virtual void bar(); // _ZN7ee527603barEv
+ ~ee52760(); // tgen
+ ee52760(); // tgen
+};
+//SIG(1 ee52760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52760 ::bar(){vfunc_called(this, "_ZN7ee527603barEv");}
+ee52760 ::~ee52760(){ note_dtor("ee52760", this);} // tgen
+ee52760 ::ee52760(){ note_ctor("ee52760", this);} // tgen
+
+static void Test_ee52760()
+{
+ extern Class_Descriptor cd_ee52760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52760, buf);
+ ee52760 *dp, &lv = *(dp=new (buf) ee52760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee52760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(32,20), "ee52760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), ABISELECT(16,8), "ee52760");
+ check_base_class_offset(lv, (dd2760*), ABISELECT(16,8), "ee52760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52760.e");
+ test_class_info(&lv, &cd_ee52760);
+ dp->~ee52760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52760(Test_ee52760, "ee52760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52760C1Ev();
+extern void _ZN7ee52760D1Ev();
+Name_Map name_map_ee52760[] = {
+ NSPAIR(_ZN7ee52760C1Ev),
+ NSPAIR(_ZN7ee52760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee52760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, ABISELECT(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 _ZTI7ee52760[];
+extern void _ZN7ee527603barEv();
+extern void _ZN6dd27603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527603barEv,_ZTv0_n20_N7ee527603barEv)();
+extern void ABISELECT(_ZThn16_N7ee527603barEv,_ZThn8_N7ee527603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee527603barEv,_ZTv0_n12_N7ee527603barEv)();
+extern void ABISELECT(_ZThn32_N7ee527603barEv,_ZThn20_N7ee527603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52760[0]),
+ (VTBL_ENTRY)&_ZN7ee527603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527603barEv,_ZTv0_n20_N7ee527603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee527603barEv,_ZTv0_n12_N7ee527603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee52760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee52760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee52760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee52760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee52760[] = {
+ {&(_ZTV7ee52760[4]), 4,18},
+ {&(_ZTV7ee52760[10]), 10,18},
+ {&(_ZTV7ee52760[16]), 16,18},
+ {&(_tg__ZTV6dd2760__7ee52760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee52760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee52760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee52760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52760[];
+extern VTBL_ENTRY _ZTV7ee52760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52760[];
+static VTBL_ENTRY alt_thunk_names418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee527603barEv,_ZTv0_n12_N7ee527603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527603barEv,_ZThn20_N7ee527603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527603barEv,_ZTv0_n20_N7ee527603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527603barEv,_ZThn8_N7ee527603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52760 = { "ee52760", // class name
+ bases_ee52760, 4,
+ &(vtc_ee52760[0]), // expected_vtbl_contents
+ &(vtt_ee52760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52760),7, //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 ee62760 : dd2760 {
+ int e;
+ virtual void foo(); // _ZN7ee627603fooEv
+ virtual void bar(); // _ZN7ee627603barEv
+ ~ee62760(); // tgen
+ ee62760(); // tgen
+};
+//SIG(1 ee62760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62760 ::foo(){vfunc_called(this, "_ZN7ee627603fooEv");}
+void ee62760 ::bar(){vfunc_called(this, "_ZN7ee627603barEv");}
+ee62760 ::~ee62760(){ note_dtor("ee62760", this);} // tgen
+ee62760 ::ee62760(){ note_ctor("ee62760", this);} // tgen
+
+static void Test_ee62760()
+{
+ extern Class_Descriptor cd_ee62760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62760, buf);
+ ee62760 *dp, &lv = *(dp=new (buf) ee62760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee62760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(24,16), "ee62760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), 0, "ee62760");
+ check_base_class_offset(lv, (dd2760*), 0, "ee62760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62760.e");
+ test_class_info(&lv, &cd_ee62760);
+ dp->~ee62760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62760(Test_ee62760, "ee62760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62760C1Ev();
+extern void _ZN7ee62760D1Ev();
+Name_Map name_map_ee62760[] = {
+ NSPAIR(_ZN7ee62760C1Ev),
+ NSPAIR(_ZN7ee62760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee62760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62760[];
+extern void _ZN7ee627603fooEv();
+extern void _ZN7ee627603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627603barEv,_ZTv0_n12_N7ee627603barEv)();
+extern void ABISELECT(_ZThn24_N7ee627603barEv,_ZThn16_N7ee627603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627603fooEv,_ZTv0_n16_N7ee627603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627603fooEv,_ZThn16_N7ee627603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62760[0]),
+ (VTBL_ENTRY)&_ZN7ee627603fooEv,
+ (VTBL_ENTRY)&_ZN7ee627603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627603barEv,_ZTv0_n12_N7ee627603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627603fooEv,_ZTv0_n16_N7ee627603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee62760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee62760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee62760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee62760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee62760[] = {
+ {&(_ZTV7ee62760[3]), 3,11},
+ {&(_tg__ZTV6dd2760__7ee62760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee62760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee62760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee62760[4]), 4,6},
+ {&(_ZTV7ee62760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62760[];
+extern VTBL_ENTRY _ZTV7ee62760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62760[];
+static VTBL_ENTRY alt_thunk_names419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27603fooEv,_ZThn16_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627603fooEv,_ZTv0_n16_N7ee627603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627603fooEv,_ZThn16_N7ee627603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627603barEv,_ZTv0_n12_N7ee627603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627603barEv,_ZThn16_N7ee627603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62760 = { "ee62760", // class name
+ bases_ee62760, 4,
+ &(vtc_ee62760[0]), // expected_vtbl_contents
+ &(vtt_ee62760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62760),6, //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 ee72760 : virtual dd2760 {
+ int e;
+ virtual void foo(); // _ZN7ee727603fooEv
+ virtual void bar(); // _ZN7ee727603barEv
+ ~ee72760(); // tgen
+ ee72760(); // tgen
+};
+//SIG(1 ee72760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72760 ::foo(){vfunc_called(this, "_ZN7ee727603fooEv");}
+void ee72760 ::bar(){vfunc_called(this, "_ZN7ee727603barEv");}
+ee72760 ::~ee72760(){ note_dtor("ee72760", this);} // tgen
+ee72760 ::ee72760(){ note_ctor("ee72760", this);} // tgen
+
+static void Test_ee72760()
+{
+ extern Class_Descriptor cd_ee72760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72760, buf);
+ ee72760 *dp, &lv = *(dp=new (buf) ee72760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee72760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd2760*), ABISELECT(32,20), "ee72760");
+ check_base_class_offset(lv, (cc760*)(dd2760*), ABISELECT(16,8), "ee72760");
+ check_base_class_offset(lv, (dd2760*), ABISELECT(16,8), "ee72760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72760.e");
+ test_class_info(&lv, &cd_ee72760);
+ dp->~ee72760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72760(Test_ee72760, "ee72760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72760C1Ev();
+extern void _ZN7ee72760D1Ev();
+Name_Map name_map_ee72760[] = {
+ NSPAIR(_ZN7ee72760C1Ev),
+ NSPAIR(_ZN7ee72760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd2760;
+extern VTBL_ENTRY _ZTI6dd2760[];
+extern VTBL_ENTRY _ZTV6dd2760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2760[];
+static Base_Class bases_ee72760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2760, ABISELECT(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 _ZTI7ee72760[];
+extern void _ZN7ee727603fooEv();
+extern void _ZN7ee727603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727603fooEv,_ZTv0_n16_N7ee727603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727603fooEv,_ZThn8_N7ee727603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727603barEv,_ZTv0_n20_N7ee727603barEv)();
+extern void ABISELECT(_ZThn16_N7ee727603barEv,_ZThn8_N7ee727603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727603barEv,_ZTv0_n12_N7ee727603barEv)();
+extern void ABISELECT(_ZThn32_N7ee727603barEv,_ZThn20_N7ee727603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727603fooEv,_ZTv0_n16_N7ee727603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727603fooEv,_ZThn20_N7ee727603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72760[0]),
+ (VTBL_ENTRY)&_ZN7ee727603fooEv,
+ (VTBL_ENTRY)&_ZN7ee727603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727603fooEv,_ZTv0_n16_N7ee727603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727603barEv,_ZTv0_n20_N7ee727603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727603barEv,_ZTv0_n12_N7ee727603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727603fooEv,_ZTv0_n16_N7ee727603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72760[];
+extern void _ZN6dd27603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV6dd2760__7ee72760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&_ZN6dd27603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd2760__7ee72760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd2760__7ee72760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd2760__7ee72760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv),
+};
+static VTT_ENTRY vtt_ee72760[] = {
+ {&(_ZTV7ee72760[4]), 4,19},
+ {&(_ZTV7ee72760[11]), 11,19},
+ {&(_ZTV7ee72760[17]), 17,19},
+ {&(_tg__ZTV6dd2760__7ee72760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd2760__7ee72760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd2760__7ee72760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd2760__7ee72760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72760[];
+extern VTBL_ENTRY _ZTV7ee72760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72760[];
+static VTBL_ENTRY alt_thunk_names420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd27603fooEv,_ZTv0_n16_N6dd27603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27603fooEv,_ZThn12_N6dd27603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727603barEv,_ZTv0_n12_N7ee727603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727603barEv,_ZThn20_N7ee727603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727603barEv,_ZTv0_n20_N7ee727603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727603barEv,_ZThn8_N7ee727603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727603fooEv,_ZTv0_n16_N7ee727603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727603fooEv,_ZThn20_N7ee727603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727603fooEv,_ZThn8_N7ee727603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72760 = { "ee72760", // class name
+ bases_ee72760, 4,
+ &(vtc_ee72760[0]), // expected_vtbl_contents
+ &(vtt_ee72760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72760),7, //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 dd3760 : virtual cc760 {
+ int d;
+ virtual void foo(); // _ZN6dd37603fooEv
+ ~dd3760(); // tgen
+ dd3760(); // tgen
+};
+//SIG(-1 dd3760) C1{ VBC2{ VBC3{ BC4{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3760 ::foo(){vfunc_called(this, "_ZN6dd37603fooEv");}
+dd3760 ::~dd3760(){ note_dtor("dd3760", this);} // tgen
+dd3760 ::dd3760(){ note_ctor("dd3760", this);} // tgen
+
+static void Test_dd3760()
+{
+ extern Class_Descriptor cd_dd3760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3760, buf);
+ dd3760 *dp, &lv = *(dp=new (buf) dd3760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd3760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,16), "dd3760");
+ check_base_class_offset(lv, (cc760*), ABISELECT(16,8), "dd3760");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3760.d");
+ test_class_info(&lv, &cd_dd3760);
+ dp->~dd3760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3760(Test_dd3760, "dd3760", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3760C1Ev();
+extern void _ZN6dd3760D1Ev();
+Name_Map name_map_dd3760[] = {
+ NSPAIR(_ZN6dd3760C1Ev),
+ NSPAIR(_ZN6dd3760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd3760[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(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 _ZTI6dd3760[];
+extern void _ZN6dd37603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd3760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd3760[] = {
+ {&(_ZTV6dd3760[4]), 4,18},
+ {&(_ZTV6dd3760[10]), 10,18},
+ {&(_ZTV6dd3760[16]), 16,18},
+ {&(_tg__ZTV5cc760__6dd3760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd3760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static VTBL_ENTRY alt_thunk_names421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3760 = { "dd3760", // class name
+ bases_dd3760, 3,
+ &(vtc_dd3760[0]), // expected_vtbl_contents
+ &(vtt_dd3760[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3760),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03760 : dd3760 {
+ int e;
+ ~ee03760(); // tgen
+ ee03760(); // tgen
+};
+//SIG(1 ee03760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03760 ::~ee03760(){ note_dtor("ee03760", this);} // tgen
+ee03760 ::ee03760(){ note_ctor("ee03760", this);} // tgen
+
+static void Test_ee03760()
+{
+ extern Class_Descriptor cd_ee03760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03760, buf);
+ ee03760 *dp, &lv = *(dp=new (buf) ee03760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee03760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee03760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(16,12), "ee03760");
+ check_base_class_offset(lv, (dd3760*), 0, "ee03760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03760.e");
+ test_class_info(&lv, &cd_ee03760);
+ dp->~ee03760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03760(Test_ee03760, "ee03760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03760C1Ev();
+extern void _ZN7ee03760D1Ev();
+Name_Map name_map_ee03760[] = {
+ NSPAIR(_ZN7ee03760C1Ev),
+ NSPAIR(_ZN7ee03760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee03760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03760[];
+extern void _ZN6dd37603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee03760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee03760[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee03760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee03760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee03760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee03760[] = {
+ {&(_ZTV7ee03760[4]), 4,18},
+ {&(_tg__ZTV6dd3760__7ee03760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee03760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee03760[4]), 4,6},
+ {&(_ZTV7ee03760[10]), 10,18},
+ {&(_ZTV7ee03760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee03760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee03760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03760[];
+extern VTBL_ENTRY _ZTV7ee03760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03760[];
+static VTBL_ENTRY alt_thunk_names422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03760 = { "ee03760", // class name
+ bases_ee03760, 4,
+ &(vtc_ee03760[0]), // expected_vtbl_contents
+ &(vtt_ee03760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03760),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 ee13760 : virtual dd3760 {
+ int e;
+ ~ee13760(); // tgen
+ ee13760(); // tgen
+};
+//SIG(1 ee13760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13760 ::~ee13760(){ note_dtor("ee13760", this);} // tgen
+ee13760 ::ee13760(){ note_ctor("ee13760", this);} // tgen
+
+static void Test_ee13760()
+{
+ extern Class_Descriptor cd_ee13760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13760, buf);
+ ee13760 *dp, &lv = *(dp=new (buf) ee13760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee13760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee13760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(32,16), "ee13760");
+ check_base_class_offset(lv, (dd3760*), ABISELECT(16,8), "ee13760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13760.e");
+ test_class_info(&lv, &cd_ee13760);
+ dp->~ee13760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13760(Test_ee13760, "ee13760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13760C1Ev();
+extern void _ZN7ee13760D1Ev();
+Name_Map name_map_ee13760[] = {
+ NSPAIR(_ZN7ee13760C1Ev),
+ NSPAIR(_ZN7ee13760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee13760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, ABISELECT(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 _ZTI7ee13760[];
+extern void _ZN6dd37603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13760[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee13760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee13760[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee13760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee13760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee13760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee13760[] = {
+ {&(_ZTV7ee13760[5]), 5,24},
+ {&(_ZTV7ee13760[10]), 10,24},
+ {&(_ZTV7ee13760[16]), 16,24},
+ {&(_ZTV7ee13760[22]), 22,24},
+ {&(_tg__ZTV6dd3760__7ee13760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee13760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee13760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee13760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee13760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13760[];
+extern VTBL_ENTRY _ZTV7ee13760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13760[];
+static VTBL_ENTRY alt_thunk_names423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13760 = { "ee13760", // class name
+ bases_ee13760, 4,
+ &(vtc_ee13760[0]), // expected_vtbl_contents
+ &(vtt_ee13760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13760),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13760),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 ee23760 : dd3760 {
+ int e;
+ virtual void foo(); // _ZN7ee237603fooEv
+ ~ee23760(); // tgen
+ ee23760(); // tgen
+};
+//SIG(1 ee23760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23760 ::foo(){vfunc_called(this, "_ZN7ee237603fooEv");}
+ee23760 ::~ee23760(){ note_dtor("ee23760", this);} // tgen
+ee23760 ::ee23760(){ note_ctor("ee23760", this);} // tgen
+
+static void Test_ee23760()
+{
+ extern Class_Descriptor cd_ee23760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23760, buf);
+ ee23760 *dp, &lv = *(dp=new (buf) ee23760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee23760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee23760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(16,12), "ee23760");
+ check_base_class_offset(lv, (dd3760*), 0, "ee23760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23760.e");
+ test_class_info(&lv, &cd_ee23760);
+ dp->~ee23760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23760(Test_ee23760, "ee23760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23760C1Ev();
+extern void _ZN7ee23760D1Ev();
+Name_Map name_map_ee23760[] = {
+ NSPAIR(_ZN7ee23760C1Ev),
+ NSPAIR(_ZN7ee23760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee23760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23760[];
+extern void _ZN7ee237603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237603fooEv,_ZTv0_n16_N7ee237603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237603fooEv,_ZThn12_N7ee237603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee237603fooEv,_ZTv0_n16_N7ee237603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237603fooEv,_ZThn20_N7ee237603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23760[0]),
+ (VTBL_ENTRY)&_ZN7ee237603fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237603fooEv,_ZTv0_n16_N7ee237603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237603fooEv,_ZTv0_n16_N7ee237603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee23760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee23760[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee23760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee23760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee23760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee23760[] = {
+ {&(_ZTV7ee23760[4]), 4,18},
+ {&(_tg__ZTV6dd3760__7ee23760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee23760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee23760[4]), 4,6},
+ {&(_ZTV7ee23760[10]), 10,18},
+ {&(_ZTV7ee23760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee23760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee23760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23760[];
+extern VTBL_ENTRY _ZTV7ee23760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23760[];
+static VTBL_ENTRY alt_thunk_names424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237603fooEv,_ZTv0_n16_N7ee237603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237603fooEv,_ZThn20_N7ee237603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237603fooEv,_ZThn12_N7ee237603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23760 = { "ee23760", // class name
+ bases_ee23760, 4,
+ &(vtc_ee23760[0]), // expected_vtbl_contents
+ &(vtt_ee23760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23760),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 ee33760 : virtual dd3760 {
+ int e;
+ virtual void foo(); // _ZN7ee337603fooEv
+ ~ee33760(); // tgen
+ ee33760(); // tgen
+};
+//SIG(1 ee33760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33760 ::foo(){vfunc_called(this, "_ZN7ee337603fooEv");}
+ee33760 ::~ee33760(){ note_dtor("ee33760", this);} // tgen
+ee33760 ::ee33760(){ note_ctor("ee33760", this);} // tgen
+
+static void Test_ee33760()
+{
+ extern Class_Descriptor cd_ee33760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33760, buf);
+ ee33760 *dp, &lv = *(dp=new (buf) ee33760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee33760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee33760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(32,16), "ee33760");
+ check_base_class_offset(lv, (dd3760*), ABISELECT(16,8), "ee33760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33760.e");
+ test_class_info(&lv, &cd_ee33760);
+ dp->~ee33760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33760(Test_ee33760, "ee33760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33760C1Ev();
+extern void _ZN7ee33760D1Ev();
+Name_Map name_map_ee33760[] = {
+ NSPAIR(_ZN7ee33760C1Ev),
+ NSPAIR(_ZN7ee33760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee33760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, ABISELECT(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 _ZTI7ee33760[];
+extern void _ZN7ee337603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337603fooEv,_ZTv0_n20_N7ee337603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337603fooEv,_ZThn8_N7ee337603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337603fooEv,_ZTv0_n16_N7ee337603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337603fooEv,_ZThn16_N7ee337603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337603fooEv,_ZTv0_n16_N7ee337603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337603fooEv,_ZThn24_N7ee337603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33760[0]),
+ (VTBL_ENTRY)&_ZN7ee337603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337603fooEv,_ZTv0_n20_N7ee337603fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337603fooEv,_ZTv0_n16_N7ee337603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337603fooEv,_ZTv0_n16_N7ee337603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee33760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee33760[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee33760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee33760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee33760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee33760[] = {
+ {&(_ZTV7ee33760[5]), 5,25},
+ {&(_ZTV7ee33760[11]), 11,25},
+ {&(_ZTV7ee33760[17]), 17,25},
+ {&(_ZTV7ee33760[23]), 23,25},
+ {&(_tg__ZTV6dd3760__7ee33760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee33760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee33760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee33760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee33760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33760[];
+extern VTBL_ENTRY _ZTV7ee33760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33760[];
+static VTBL_ENTRY alt_thunk_names425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337603fooEv,_ZTv0_n16_N7ee337603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337603fooEv,_ZThn24_N7ee337603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337603fooEv,_ZThn16_N7ee337603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337603fooEv,_ZTv0_n20_N7ee337603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337603fooEv,_ZThn8_N7ee337603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33760 = { "ee33760", // class name
+ bases_ee33760, 4,
+ &(vtc_ee33760[0]), // expected_vtbl_contents
+ &(vtt_ee33760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33760),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33760),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 ee43760 : dd3760 {
+ int e;
+ virtual void bar(); // _ZN7ee437603barEv
+ ~ee43760(); // tgen
+ ee43760(); // tgen
+};
+//SIG(1 ee43760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43760 ::bar(){vfunc_called(this, "_ZN7ee437603barEv");}
+ee43760 ::~ee43760(){ note_dtor("ee43760", this);} // tgen
+ee43760 ::ee43760(){ note_ctor("ee43760", this);} // tgen
+
+static void Test_ee43760()
+{
+ extern Class_Descriptor cd_ee43760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43760, buf);
+ ee43760 *dp, &lv = *(dp=new (buf) ee43760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee43760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee43760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(16,12), "ee43760");
+ check_base_class_offset(lv, (dd3760*), 0, "ee43760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43760.e");
+ test_class_info(&lv, &cd_ee43760);
+ dp->~ee43760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43760(Test_ee43760, "ee43760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43760C1Ev();
+extern void _ZN7ee43760D1Ev();
+Name_Map name_map_ee43760[] = {
+ NSPAIR(_ZN7ee43760C1Ev),
+ NSPAIR(_ZN7ee43760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee43760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43760[];
+extern void _ZN6dd37603fooEv();
+extern void _ZN7ee437603barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437603barEv,_ZTv0_n20_N7ee437603barEv)();
+extern void ABISELECT(_ZThn16_N7ee437603barEv,_ZThn12_N7ee437603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee437603barEv,_ZTv0_n12_N7ee437603barEv)();
+extern void ABISELECT(_ZThn32_N7ee437603barEv,_ZThn20_N7ee437603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+ (VTBL_ENTRY)&_ZN7ee437603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437603barEv,_ZTv0_n20_N7ee437603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee437603barEv,_ZTv0_n12_N7ee437603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee43760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee43760[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee43760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee43760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee43760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee43760[] = {
+ {&(_ZTV7ee43760[4]), 4,19},
+ {&(_tg__ZTV6dd3760__7ee43760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee43760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee43760[4]), 4,6},
+ {&(_ZTV7ee43760[11]), 11,19},
+ {&(_ZTV7ee43760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee43760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee43760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43760[];
+extern VTBL_ENTRY _ZTV7ee43760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43760[];
+static VTBL_ENTRY alt_thunk_names426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee437603barEv,_ZTv0_n12_N7ee437603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437603barEv,_ZThn20_N7ee437603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437603barEv,_ZTv0_n20_N7ee437603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437603barEv,_ZThn12_N7ee437603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43760 = { "ee43760", // class name
+ bases_ee43760, 4,
+ &(vtc_ee43760[0]), // expected_vtbl_contents
+ &(vtt_ee43760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names426,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53760 : virtual dd3760 {
+ int e;
+ virtual void bar(); // _ZN7ee537603barEv
+ ~ee53760(); // tgen
+ ee53760(); // tgen
+};
+//SIG(1 ee53760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53760 ::bar(){vfunc_called(this, "_ZN7ee537603barEv");}
+ee53760 ::~ee53760(){ note_dtor("ee53760", this);} // tgen
+ee53760 ::ee53760(){ note_ctor("ee53760", this);} // tgen
+
+static void Test_ee53760()
+{
+ extern Class_Descriptor cd_ee53760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53760, buf);
+ ee53760 *dp, &lv = *(dp=new (buf) ee53760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee53760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee53760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(32,16), "ee53760");
+ check_base_class_offset(lv, (dd3760*), ABISELECT(16,8), "ee53760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53760.e");
+ test_class_info(&lv, &cd_ee53760);
+ dp->~ee53760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53760(Test_ee53760, "ee53760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53760C1Ev();
+extern void _ZN7ee53760D1Ev();
+Name_Map name_map_ee53760[] = {
+ NSPAIR(_ZN7ee53760C1Ev),
+ NSPAIR(_ZN7ee53760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee53760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, ABISELECT(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 _ZTI7ee53760[];
+extern void _ZN7ee537603barEv();
+extern void _ZN6dd37603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537603barEv,_ZTv0_n20_N7ee537603barEv)();
+extern void ABISELECT(_ZThn32_N7ee537603barEv,_ZThn16_N7ee537603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee537603barEv,_ZTv0_n12_N7ee537603barEv)();
+extern void ABISELECT(_ZThn48_N7ee537603barEv,_ZThn24_N7ee537603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53760[0]),
+ (VTBL_ENTRY)&_ZN7ee537603barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537603barEv,_ZTv0_n20_N7ee537603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee537603barEv,_ZTv0_n12_N7ee537603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee53760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee53760[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee53760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee53760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee53760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee53760[] = {
+ {&(_ZTV7ee53760[5]), 5,25},
+ {&(_ZTV7ee53760[11]), 11,25},
+ {&(_ZTV7ee53760[17]), 17,25},
+ {&(_ZTV7ee53760[23]), 23,25},
+ {&(_tg__ZTV6dd3760__7ee53760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee53760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee53760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee53760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee53760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53760[];
+extern VTBL_ENTRY _ZTV7ee53760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53760[];
+static VTBL_ENTRY alt_thunk_names427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee537603barEv,_ZTv0_n12_N7ee537603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537603barEv,_ZThn24_N7ee537603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537603barEv,_ZTv0_n20_N7ee537603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537603barEv,_ZThn16_N7ee537603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53760 = { "ee53760", // class name
+ bases_ee53760, 4,
+ &(vtc_ee53760[0]), // expected_vtbl_contents
+ &(vtt_ee53760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53760),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names427,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63760 : dd3760 {
+ int e;
+ virtual void foo(); // _ZN7ee637603fooEv
+ virtual void bar(); // _ZN7ee637603barEv
+ ~ee63760(); // tgen
+ ee63760(); // tgen
+};
+//SIG(1 ee63760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63760 ::foo(){vfunc_called(this, "_ZN7ee637603fooEv");}
+void ee63760 ::bar(){vfunc_called(this, "_ZN7ee637603barEv");}
+ee63760 ::~ee63760(){ note_dtor("ee63760", this);} // tgen
+ee63760 ::ee63760(){ note_ctor("ee63760", this);} // tgen
+
+static void Test_ee63760()
+{
+ extern Class_Descriptor cd_ee63760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63760, buf);
+ ee63760 *dp, &lv = *(dp=new (buf) ee63760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee63760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee63760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(16,12), "ee63760");
+ check_base_class_offset(lv, (dd3760*), 0, "ee63760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63760.e");
+ test_class_info(&lv, &cd_ee63760);
+ dp->~ee63760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63760(Test_ee63760, "ee63760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63760C1Ev();
+extern void _ZN7ee63760D1Ev();
+Name_Map name_map_ee63760[] = {
+ NSPAIR(_ZN7ee63760C1Ev),
+ NSPAIR(_ZN7ee63760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee63760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63760[];
+extern void _ZN7ee637603fooEv();
+extern void _ZN7ee637603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637603fooEv,_ZTv0_n16_N7ee637603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637603fooEv,_ZThn12_N7ee637603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637603barEv,_ZTv0_n20_N7ee637603barEv)();
+extern void ABISELECT(_ZThn16_N7ee637603barEv,_ZThn12_N7ee637603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637603barEv,_ZTv0_n12_N7ee637603barEv)();
+extern void ABISELECT(_ZThn32_N7ee637603barEv,_ZThn20_N7ee637603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637603fooEv,_ZTv0_n16_N7ee637603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637603fooEv,_ZThn20_N7ee637603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63760[0]),
+ (VTBL_ENTRY)&_ZN7ee637603fooEv,
+ (VTBL_ENTRY)&_ZN7ee637603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637603fooEv,_ZTv0_n16_N7ee637603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637603barEv,_ZTv0_n20_N7ee637603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637603barEv,_ZTv0_n12_N7ee637603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637603fooEv,_ZTv0_n16_N7ee637603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee63760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee63760[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee63760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee63760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee63760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee63760[] = {
+ {&(_ZTV7ee63760[4]), 4,19},
+ {&(_tg__ZTV6dd3760__7ee63760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee63760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee63760[4]), 4,6},
+ {&(_ZTV7ee63760[11]), 11,19},
+ {&(_ZTV7ee63760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee63760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee63760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63760[];
+extern VTBL_ENTRY _ZTV7ee63760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63760[];
+static VTBL_ENTRY alt_thunk_names428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn20_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn12_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637603barEv,_ZTv0_n12_N7ee637603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637603barEv,_ZThn20_N7ee637603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637603barEv,_ZTv0_n20_N7ee637603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637603barEv,_ZThn12_N7ee637603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637603fooEv,_ZTv0_n16_N7ee637603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637603fooEv,_ZThn20_N7ee637603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637603fooEv,_ZThn12_N7ee637603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63760 = { "ee63760", // class name
+ bases_ee63760, 4,
+ &(vtc_ee63760[0]), // expected_vtbl_contents
+ &(vtt_ee63760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names428,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73760 : virtual dd3760 {
+ int e;
+ virtual void foo(); // _ZN7ee737603fooEv
+ virtual void bar(); // _ZN7ee737603barEv
+ ~ee73760(); // tgen
+ ee73760(); // tgen
+};
+//SIG(1 ee73760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73760 ::foo(){vfunc_called(this, "_ZN7ee737603fooEv");}
+void ee73760 ::bar(){vfunc_called(this, "_ZN7ee737603barEv");}
+ee73760 ::~ee73760(){ note_dtor("ee73760", this);} // tgen
+ee73760 ::ee73760(){ note_ctor("ee73760", this);} // tgen
+
+static void Test_ee73760()
+{
+ extern Class_Descriptor cd_ee73760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73760, buf);
+ ee73760 *dp, &lv = *(dp=new (buf) ee73760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee73760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee73760");
+ check_base_class_offset(lv, (cc760*)(dd3760*), ABISELECT(32,16), "ee73760");
+ check_base_class_offset(lv, (dd3760*), ABISELECT(16,8), "ee73760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73760.e");
+ test_class_info(&lv, &cd_ee73760);
+ dp->~ee73760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73760(Test_ee73760, "ee73760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73760C1Ev();
+extern void _ZN7ee73760D1Ev();
+Name_Map name_map_ee73760[] = {
+ NSPAIR(_ZN7ee73760C1Ev),
+ NSPAIR(_ZN7ee73760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd3760;
+extern VTBL_ENTRY _ZTI6dd3760[];
+extern VTBL_ENTRY _ZTV6dd3760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3760[];
+static Base_Class bases_ee73760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd3760, 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 _ZTI7ee73760[];
+extern void _ZN7ee737603fooEv();
+extern void _ZN7ee737603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737603fooEv,_ZTv0_n20_N7ee737603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737603fooEv,_ZThn8_N7ee737603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737603fooEv,_ZTv0_n16_N7ee737603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737603fooEv,_ZThn16_N7ee737603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737603barEv,_ZTv0_n20_N7ee737603barEv)();
+extern void ABISELECT(_ZThn32_N7ee737603barEv,_ZThn16_N7ee737603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737603barEv,_ZTv0_n12_N7ee737603barEv)();
+extern void ABISELECT(_ZThn48_N7ee737603barEv,_ZThn24_N7ee737603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737603fooEv,_ZTv0_n16_N7ee737603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737603fooEv,_ZThn24_N7ee737603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73760[0]),
+ (VTBL_ENTRY)&_ZN7ee737603fooEv,
+ (VTBL_ENTRY)&_ZN7ee737603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737603fooEv,_ZTv0_n20_N7ee737603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737603fooEv,_ZTv0_n16_N7ee737603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737603barEv,_ZTv0_n20_N7ee737603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737603barEv,_ZTv0_n12_N7ee737603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737603fooEv,_ZTv0_n16_N7ee737603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73760[];
+extern void _ZN6dd37603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3760__7ee73760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&_ZN6dd37603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv)() __attribute__((weak));
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd3760__7ee73760[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd3760__7ee73760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee73760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee73760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee73760[] = {
+ {&(_ZTV7ee73760[5]), 5,26},
+ {&(_ZTV7ee73760[12]), 12,26},
+ {&(_ZTV7ee73760[18]), 18,26},
+ {&(_ZTV7ee73760[24]), 24,26},
+ {&(_tg__ZTV6dd3760__7ee73760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd3760__7ee73760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd3760__7ee73760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee73760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee73760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73760[];
+extern VTBL_ENTRY _ZTV7ee73760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73760[];
+static VTBL_ENTRY alt_thunk_names429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37603fooEv,_ZTv0_n16_N6dd37603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37603fooEv,_ZThn16_N6dd37603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37603fooEv,_ZThn8_N6dd37603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737603barEv,_ZTv0_n12_N7ee737603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737603barEv,_ZThn24_N7ee737603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737603barEv,_ZTv0_n20_N7ee737603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737603barEv,_ZThn16_N7ee737603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737603fooEv,_ZTv0_n16_N7ee737603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737603fooEv,_ZThn24_N7ee737603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737603fooEv,_ZThn16_N7ee737603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737603fooEv,_ZTv0_n20_N7ee737603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737603fooEv,_ZThn8_N7ee737603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73760 = { "ee73760", // class name
+ bases_ee73760, 4,
+ &(vtc_ee73760[0]), // expected_vtbl_contents
+ &(vtt_ee73760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73760),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names429,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4760 : cc760 {
+ int d;
+ virtual void bar(); // _ZN6dd47603barEv
+ ~dd4760(); // tgen
+ dd4760(); // tgen
+};
+//SIG(-1 dd4760) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4760 ::bar(){vfunc_called(this, "_ZN6dd47603barEv");}
+dd4760 ::~dd4760(){ note_dtor("dd4760", this);} // tgen
+dd4760 ::dd4760(){ note_ctor("dd4760", this);} // tgen
+
+static void Test_dd4760()
+{
+ extern Class_Descriptor cd_dd4760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4760, buf);
+ dd4760 *dp, &lv = *(dp=new (buf) dd4760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd4760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(16,12), "dd4760");
+ check_base_class_offset(lv, (cc760*), 0, "dd4760");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4760.d");
+ test_class_info(&lv, &cd_dd4760);
+ dp->~dd4760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4760(Test_dd4760, "dd4760", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4760C1Ev();
+extern void _ZN6dd4760D1Ev();
+Name_Map name_map_dd4760[] = {
+ NSPAIR(_ZN6dd4760C1Ev),
+ NSPAIR(_ZN6dd4760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd4760[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd4760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd4760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd4760[] = {
+ {&(_ZTV6dd4760[3]), 3,11},
+ {&(_tg__ZTV5cc760__6dd4760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd4760[4]), 4,6},
+ {&(_ZTV6dd4760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static VTBL_ENTRY alt_thunk_names430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4760 = { "dd4760", // class name
+ bases_dd4760, 3,
+ &(vtc_dd4760[0]), // expected_vtbl_contents
+ &(vtt_dd4760[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4760),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names430,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04760 : dd4760 {
+ int e;
+ ~ee04760(); // tgen
+ ee04760(); // tgen
+};
+//SIG(1 ee04760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04760 ::~ee04760(){ note_dtor("ee04760", this);} // tgen
+ee04760 ::ee04760(){ note_ctor("ee04760", this);} // tgen
+
+static void Test_ee04760()
+{
+ extern Class_Descriptor cd_ee04760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04760, buf);
+ ee04760 *dp, &lv = *(dp=new (buf) ee04760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee04760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(24,16), "ee04760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), 0, "ee04760");
+ check_base_class_offset(lv, (dd4760*), 0, "ee04760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04760.e");
+ test_class_info(&lv, &cd_ee04760);
+ dp->~ee04760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04760(Test_ee04760, "ee04760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04760C1Ev();
+extern void _ZN7ee04760D1Ev();
+Name_Map name_map_ee04760[] = {
+ NSPAIR(_ZN7ee04760C1Ev),
+ NSPAIR(_ZN7ee04760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee04760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee04760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee04760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee04760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee04760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee04760[] = {
+ {&(_ZTV7ee04760[3]), 3,11},
+ {&(_tg__ZTV6dd4760__7ee04760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee04760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee04760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee04760[4]), 4,6},
+ {&(_ZTV7ee04760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04760[];
+extern VTBL_ENTRY _ZTV7ee04760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04760[];
+static VTBL_ENTRY alt_thunk_names431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04760 = { "ee04760", // class name
+ bases_ee04760, 4,
+ &(vtc_ee04760[0]), // expected_vtbl_contents
+ &(vtt_ee04760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names431,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14760 : virtual dd4760 {
+ int e;
+ ~ee14760(); // tgen
+ ee14760(); // tgen
+};
+//SIG(1 ee14760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14760 ::~ee14760(){ note_dtor("ee14760", this);} // tgen
+ee14760 ::ee14760(){ note_ctor("ee14760", this);} // tgen
+
+static void Test_ee14760()
+{
+ extern Class_Descriptor cd_ee14760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14760, buf);
+ ee14760 *dp, &lv = *(dp=new (buf) ee14760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee14760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(32,20), "ee14760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), ABISELECT(16,8), "ee14760");
+ check_base_class_offset(lv, (dd4760*), ABISELECT(16,8), "ee14760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14760.e");
+ test_class_info(&lv, &cd_ee14760);
+ dp->~ee14760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14760(Test_ee14760, "ee14760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14760C1Ev();
+extern void _ZN7ee14760D1Ev();
+Name_Map name_map_ee14760[] = {
+ NSPAIR(_ZN7ee14760C1Ev),
+ NSPAIR(_ZN7ee14760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee14760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, 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 _ZTI7ee14760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14760[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee14760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee14760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee14760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee14760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee14760[] = {
+ {&(_ZTV7ee14760[4]), 4,17},
+ {&(_ZTV7ee14760[9]), 9,17},
+ {&(_ZTV7ee14760[15]), 15,17},
+ {&(_tg__ZTV6dd4760__7ee14760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee14760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee14760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee14760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14760[];
+extern VTBL_ENTRY _ZTV7ee14760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14760[];
+static VTBL_ENTRY alt_thunk_names432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14760 = { "ee14760", // class name
+ bases_ee14760, 4,
+ &(vtc_ee14760[0]), // expected_vtbl_contents
+ &(vtt_ee14760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24760 : dd4760 {
+ int e;
+ virtual void foo(); // _ZN7ee247603fooEv
+ ~ee24760(); // tgen
+ ee24760(); // tgen
+};
+//SIG(1 ee24760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24760 ::foo(){vfunc_called(this, "_ZN7ee247603fooEv");}
+ee24760 ::~ee24760(){ note_dtor("ee24760", this);} // tgen
+ee24760 ::ee24760(){ note_ctor("ee24760", this);} // tgen
+
+static void Test_ee24760()
+{
+ extern Class_Descriptor cd_ee24760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24760, buf);
+ ee24760 *dp, &lv = *(dp=new (buf) ee24760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee24760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(24,16), "ee24760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), 0, "ee24760");
+ check_base_class_offset(lv, (dd4760*), 0, "ee24760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24760.e");
+ test_class_info(&lv, &cd_ee24760);
+ dp->~ee24760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24760(Test_ee24760, "ee24760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24760C1Ev();
+extern void _ZN7ee24760D1Ev();
+Name_Map name_map_ee24760[] = {
+ NSPAIR(_ZN7ee24760C1Ev),
+ NSPAIR(_ZN7ee24760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee24760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24760[];
+extern void _ZN7ee247603fooEv();
+extern void _ZN6dd47603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee247603fooEv,_ZTv0_n16_N7ee247603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247603fooEv,_ZThn16_N7ee247603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24760[0]),
+ (VTBL_ENTRY)&_ZN7ee247603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee247603fooEv,_ZTv0_n16_N7ee247603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee24760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee24760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee24760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee24760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee24760[] = {
+ {&(_ZTV7ee24760[3]), 3,11},
+ {&(_tg__ZTV6dd4760__7ee24760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee24760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee24760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee24760[4]), 4,6},
+ {&(_ZTV7ee24760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24760[];
+extern VTBL_ENTRY _ZTV7ee24760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24760[];
+static VTBL_ENTRY alt_thunk_names433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee247603fooEv,_ZTv0_n16_N7ee247603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247603fooEv,_ZThn16_N7ee247603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24760 = { "ee24760", // class name
+ bases_ee24760, 4,
+ &(vtc_ee24760[0]), // expected_vtbl_contents
+ &(vtt_ee24760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names433,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34760 : virtual dd4760 {
+ int e;
+ virtual void foo(); // _ZN7ee347603fooEv
+ ~ee34760(); // tgen
+ ee34760(); // tgen
+};
+//SIG(1 ee34760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34760 ::foo(){vfunc_called(this, "_ZN7ee347603fooEv");}
+ee34760 ::~ee34760(){ note_dtor("ee34760", this);} // tgen
+ee34760 ::ee34760(){ note_ctor("ee34760", this);} // tgen
+
+static void Test_ee34760()
+{
+ extern Class_Descriptor cd_ee34760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34760, buf);
+ ee34760 *dp, &lv = *(dp=new (buf) ee34760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee34760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(32,20), "ee34760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), ABISELECT(16,8), "ee34760");
+ check_base_class_offset(lv, (dd4760*), ABISELECT(16,8), "ee34760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34760.e");
+ test_class_info(&lv, &cd_ee34760);
+ dp->~ee34760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34760(Test_ee34760, "ee34760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34760C1Ev();
+extern void _ZN7ee34760D1Ev();
+Name_Map name_map_ee34760[] = {
+ NSPAIR(_ZN7ee34760C1Ev),
+ NSPAIR(_ZN7ee34760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee34760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, ABISELECT(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 _ZTI7ee34760[];
+extern void _ZN7ee347603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347603fooEv,_ZTv0_n16_N7ee347603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347603fooEv,_ZThn8_N7ee347603fooEv)() __attribute__((weak));
+extern void _ZN6dd47603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee347603fooEv,_ZTv0_n16_N7ee347603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347603fooEv,_ZThn20_N7ee347603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34760[0]),
+ (VTBL_ENTRY)&_ZN7ee347603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347603fooEv,_ZTv0_n16_N7ee347603fooEv),
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347603fooEv,_ZTv0_n16_N7ee347603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee34760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee34760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee34760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee34760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee34760[] = {
+ {&(_ZTV7ee34760[4]), 4,18},
+ {&(_ZTV7ee34760[10]), 10,18},
+ {&(_ZTV7ee34760[16]), 16,18},
+ {&(_tg__ZTV6dd4760__7ee34760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee34760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee34760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee34760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34760[];
+extern VTBL_ENTRY _ZTV7ee34760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34760[];
+static VTBL_ENTRY alt_thunk_names434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347603fooEv,_ZTv0_n16_N7ee347603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347603fooEv,_ZThn20_N7ee347603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347603fooEv,_ZThn8_N7ee347603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34760 = { "ee34760", // class name
+ bases_ee34760, 4,
+ &(vtc_ee34760[0]), // expected_vtbl_contents
+ &(vtt_ee34760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34760),7, //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 ee44760 : dd4760 {
+ int e;
+ virtual void bar(); // _ZN7ee447603barEv
+ ~ee44760(); // tgen
+ ee44760(); // tgen
+};
+//SIG(1 ee44760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44760 ::bar(){vfunc_called(this, "_ZN7ee447603barEv");}
+ee44760 ::~ee44760(){ note_dtor("ee44760", this);} // tgen
+ee44760 ::ee44760(){ note_ctor("ee44760", this);} // tgen
+
+static void Test_ee44760()
+{
+ extern Class_Descriptor cd_ee44760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44760, buf);
+ ee44760 *dp, &lv = *(dp=new (buf) ee44760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee44760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(24,16), "ee44760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), 0, "ee44760");
+ check_base_class_offset(lv, (dd4760*), 0, "ee44760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44760.e");
+ test_class_info(&lv, &cd_ee44760);
+ dp->~ee44760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44760(Test_ee44760, "ee44760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44760C1Ev();
+extern void _ZN7ee44760D1Ev();
+Name_Map name_map_ee44760[] = {
+ NSPAIR(_ZN7ee44760C1Ev),
+ NSPAIR(_ZN7ee44760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee44760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN7ee447603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee447603barEv,_ZTv0_n12_N7ee447603barEv)();
+extern void ABISELECT(_ZThn24_N7ee447603barEv,_ZThn16_N7ee447603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN7ee447603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee447603barEv,_ZTv0_n12_N7ee447603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee44760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee44760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee44760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee44760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee44760[] = {
+ {&(_ZTV7ee44760[3]), 3,11},
+ {&(_tg__ZTV6dd4760__7ee44760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee44760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee44760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee44760[4]), 4,6},
+ {&(_ZTV7ee44760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44760[];
+extern VTBL_ENTRY _ZTV7ee44760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44760[];
+static VTBL_ENTRY alt_thunk_names435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee447603barEv,_ZTv0_n12_N7ee447603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447603barEv,_ZThn16_N7ee447603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44760 = { "ee44760", // class name
+ bases_ee44760, 4,
+ &(vtc_ee44760[0]), // expected_vtbl_contents
+ &(vtt_ee44760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names435,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54760 : virtual dd4760 {
+ int e;
+ virtual void bar(); // _ZN7ee547603barEv
+ ~ee54760(); // tgen
+ ee54760(); // tgen
+};
+//SIG(1 ee54760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54760 ::bar(){vfunc_called(this, "_ZN7ee547603barEv");}
+ee54760 ::~ee54760(){ note_dtor("ee54760", this);} // tgen
+ee54760 ::ee54760(){ note_ctor("ee54760", this);} // tgen
+
+static void Test_ee54760()
+{
+ extern Class_Descriptor cd_ee54760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54760, buf);
+ ee54760 *dp, &lv = *(dp=new (buf) ee54760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee54760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(32,20), "ee54760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), ABISELECT(16,8), "ee54760");
+ check_base_class_offset(lv, (dd4760*), ABISELECT(16,8), "ee54760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54760.e");
+ test_class_info(&lv, &cd_ee54760);
+ dp->~ee54760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54760(Test_ee54760, "ee54760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54760C1Ev();
+extern void _ZN7ee54760D1Ev();
+Name_Map name_map_ee54760[] = {
+ NSPAIR(_ZN7ee54760C1Ev),
+ NSPAIR(_ZN7ee54760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee54760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, ABISELECT(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 _ZTI7ee54760[];
+extern void _ZN7ee547603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547603barEv,_ZTv0_n20_N7ee547603barEv)();
+extern void ABISELECT(_ZThn16_N7ee547603barEv,_ZThn8_N7ee547603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee547603barEv,_ZTv0_n12_N7ee547603barEv)();
+extern void ABISELECT(_ZThn32_N7ee547603barEv,_ZThn20_N7ee547603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54760[0]),
+ (VTBL_ENTRY)&_ZN7ee547603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547603barEv,_ZTv0_n20_N7ee547603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee547603barEv,_ZTv0_n12_N7ee547603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee54760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee54760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee54760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee54760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee54760[] = {
+ {&(_ZTV7ee54760[4]), 4,18},
+ {&(_ZTV7ee54760[10]), 10,18},
+ {&(_ZTV7ee54760[16]), 16,18},
+ {&(_tg__ZTV6dd4760__7ee54760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee54760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee54760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee54760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54760[];
+extern VTBL_ENTRY _ZTV7ee54760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54760[];
+static VTBL_ENTRY alt_thunk_names436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee547603barEv,_ZTv0_n12_N7ee547603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547603barEv,_ZThn20_N7ee547603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547603barEv,_ZTv0_n20_N7ee547603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547603barEv,_ZThn8_N7ee547603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54760 = { "ee54760", // class name
+ bases_ee54760, 4,
+ &(vtc_ee54760[0]), // expected_vtbl_contents
+ &(vtt_ee54760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names436,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64760 : dd4760 {
+ int e;
+ virtual void foo(); // _ZN7ee647603fooEv
+ virtual void bar(); // _ZN7ee647603barEv
+ ~ee64760(); // tgen
+ ee64760(); // tgen
+};
+//SIG(1 ee64760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64760 ::foo(){vfunc_called(this, "_ZN7ee647603fooEv");}
+void ee64760 ::bar(){vfunc_called(this, "_ZN7ee647603barEv");}
+ee64760 ::~ee64760(){ note_dtor("ee64760", this);} // tgen
+ee64760 ::ee64760(){ note_ctor("ee64760", this);} // tgen
+
+static void Test_ee64760()
+{
+ extern Class_Descriptor cd_ee64760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64760, buf);
+ ee64760 *dp, &lv = *(dp=new (buf) ee64760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee64760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(24,16), "ee64760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), 0, "ee64760");
+ check_base_class_offset(lv, (dd4760*), 0, "ee64760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64760.e");
+ test_class_info(&lv, &cd_ee64760);
+ dp->~ee64760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64760(Test_ee64760, "ee64760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64760C1Ev();
+extern void _ZN7ee64760D1Ev();
+Name_Map name_map_ee64760[] = {
+ NSPAIR(_ZN7ee64760C1Ev),
+ NSPAIR(_ZN7ee64760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee64760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64760[];
+extern void _ZN7ee647603fooEv();
+extern void _ZN7ee647603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647603barEv,_ZTv0_n12_N7ee647603barEv)();
+extern void ABISELECT(_ZThn24_N7ee647603barEv,_ZThn16_N7ee647603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647603fooEv,_ZTv0_n16_N7ee647603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647603fooEv,_ZThn16_N7ee647603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64760[0]),
+ (VTBL_ENTRY)&_ZN7ee647603fooEv,
+ (VTBL_ENTRY)&_ZN7ee647603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647603barEv,_ZTv0_n12_N7ee647603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647603fooEv,_ZTv0_n16_N7ee647603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee64760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee64760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee64760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee64760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee64760[] = {
+ {&(_ZTV7ee64760[3]), 3,11},
+ {&(_tg__ZTV6dd4760__7ee64760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee64760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee64760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee64760[4]), 4,6},
+ {&(_ZTV7ee64760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64760[];
+extern VTBL_ENTRY _ZTV7ee64760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64760[];
+static VTBL_ENTRY alt_thunk_names437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47603barEv,_ZThn16_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647603fooEv,_ZTv0_n16_N7ee647603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647603fooEv,_ZThn16_N7ee647603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647603barEv,_ZTv0_n12_N7ee647603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647603barEv,_ZThn16_N7ee647603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64760 = { "ee64760", // class name
+ bases_ee64760, 4,
+ &(vtc_ee64760[0]), // expected_vtbl_contents
+ &(vtt_ee64760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names437,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74760 : virtual dd4760 {
+ int e;
+ virtual void foo(); // _ZN7ee747603fooEv
+ virtual void bar(); // _ZN7ee747603barEv
+ ~ee74760(); // tgen
+ ee74760(); // tgen
+};
+//SIG(1 ee74760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74760 ::foo(){vfunc_called(this, "_ZN7ee747603fooEv");}
+void ee74760 ::bar(){vfunc_called(this, "_ZN7ee747603barEv");}
+ee74760 ::~ee74760(){ note_dtor("ee74760", this);} // tgen
+ee74760 ::ee74760(){ note_ctor("ee74760", this);} // tgen
+
+static void Test_ee74760()
+{
+ extern Class_Descriptor cd_ee74760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74760, buf);
+ ee74760 *dp, &lv = *(dp=new (buf) ee74760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee74760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd4760*), ABISELECT(32,20), "ee74760");
+ check_base_class_offset(lv, (cc760*)(dd4760*), ABISELECT(16,8), "ee74760");
+ check_base_class_offset(lv, (dd4760*), ABISELECT(16,8), "ee74760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74760.e");
+ test_class_info(&lv, &cd_ee74760);
+ dp->~ee74760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74760(Test_ee74760, "ee74760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74760C1Ev();
+extern void _ZN7ee74760D1Ev();
+Name_Map name_map_ee74760[] = {
+ NSPAIR(_ZN7ee74760C1Ev),
+ NSPAIR(_ZN7ee74760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd4760;
+extern VTBL_ENTRY _ZTI6dd4760[];
+extern VTBL_ENTRY _ZTV6dd4760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4760[];
+static Base_Class bases_ee74760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4760, ABISELECT(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 _ZTI7ee74760[];
+extern void _ZN7ee747603fooEv();
+extern void _ZN7ee747603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747603fooEv,_ZTv0_n16_N7ee747603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747603fooEv,_ZThn8_N7ee747603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747603barEv,_ZTv0_n20_N7ee747603barEv)();
+extern void ABISELECT(_ZThn16_N7ee747603barEv,_ZThn8_N7ee747603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747603barEv,_ZTv0_n12_N7ee747603barEv)();
+extern void ABISELECT(_ZThn32_N7ee747603barEv,_ZThn20_N7ee747603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747603fooEv,_ZTv0_n16_N7ee747603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747603fooEv,_ZThn20_N7ee747603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74760[0]),
+ (VTBL_ENTRY)&_ZN7ee747603fooEv,
+ (VTBL_ENTRY)&_ZN7ee747603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747603fooEv,_ZTv0_n16_N7ee747603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747603barEv,_ZTv0_n20_N7ee747603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747603barEv,_ZTv0_n12_N7ee747603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747603fooEv,_ZTv0_n16_N7ee747603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN6dd47603barEv();
+static VTBL_ENTRY _tg__ZTV6dd4760__7ee74760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN6dd47603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd4760__7ee74760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd4760__7ee74760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv)();
+extern void ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd4760__7ee74760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee74760[] = {
+ {&(_ZTV7ee74760[4]), 4,19},
+ {&(_ZTV7ee74760[11]), 11,19},
+ {&(_ZTV7ee74760[17]), 17,19},
+ {&(_tg__ZTV6dd4760__7ee74760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd4760__7ee74760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd4760__7ee74760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd4760__7ee74760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74760[];
+extern VTBL_ENTRY _ZTV7ee74760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74760[];
+static VTBL_ENTRY alt_thunk_names438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd47603barEv,_ZTv0_n12_N6dd47603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47603barEv,_ZThn12_N6dd47603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747603barEv,_ZTv0_n12_N7ee747603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747603barEv,_ZThn20_N7ee747603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747603barEv,_ZTv0_n20_N7ee747603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747603barEv,_ZThn8_N7ee747603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747603fooEv,_ZTv0_n16_N7ee747603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747603fooEv,_ZThn20_N7ee747603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747603fooEv,_ZThn8_N7ee747603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74760 = { "ee74760", // class name
+ bases_ee74760, 4,
+ &(vtc_ee74760[0]), // expected_vtbl_contents
+ &(vtt_ee74760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names438,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5760 : virtual cc760 {
+ int d;
+ virtual void bar(); // _ZN6dd57603barEv
+ ~dd5760(); // tgen
+ dd5760(); // tgen
+};
+//SIG(-1 dd5760) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5760 ::bar(){vfunc_called(this, "_ZN6dd57603barEv");}
+dd5760 ::~dd5760(){ note_dtor("dd5760", this);} // tgen
+dd5760 ::dd5760(){ note_ctor("dd5760", this);} // tgen
+
+static void Test_dd5760()
+{
+ extern Class_Descriptor cd_dd5760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5760, buf);
+ dd5760 *dp, &lv = *(dp=new (buf) dd5760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd5760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,16), "dd5760");
+ check_base_class_offset(lv, (cc760*), ABISELECT(16,8), "dd5760");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5760.d");
+ test_class_info(&lv, &cd_dd5760);
+ dp->~dd5760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5760(Test_dd5760, "dd5760", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5760C1Ev();
+extern void _ZN6dd5760D1Ev();
+Name_Map name_map_dd5760[] = {
+ NSPAIR(_ZN6dd5760C1Ev),
+ NSPAIR(_ZN6dd5760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd5760[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(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 _ZTI6dd5760[];
+extern void _ZN6dd57603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd5760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd5760[] = {
+ {&(_ZTV6dd5760[4]), 4,18},
+ {&(_ZTV6dd5760[10]), 10,18},
+ {&(_ZTV6dd5760[16]), 16,18},
+ {&(_tg__ZTV5cc760__6dd5760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd5760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static VTBL_ENTRY alt_thunk_names439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5760 = { "dd5760", // class name
+ bases_dd5760, 3,
+ &(vtc_dd5760[0]), // expected_vtbl_contents
+ &(vtt_dd5760[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5760),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names439,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05760 : dd5760 {
+ int e;
+ ~ee05760(); // tgen
+ ee05760(); // tgen
+};
+//SIG(1 ee05760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05760 ::~ee05760(){ note_dtor("ee05760", this);} // tgen
+ee05760 ::ee05760(){ note_ctor("ee05760", this);} // tgen
+
+static void Test_ee05760()
+{
+ extern Class_Descriptor cd_ee05760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05760, buf);
+ ee05760 *dp, &lv = *(dp=new (buf) ee05760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee05760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee05760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(16,12), "ee05760");
+ check_base_class_offset(lv, (dd5760*), 0, "ee05760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05760.e");
+ test_class_info(&lv, &cd_ee05760);
+ dp->~ee05760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05760(Test_ee05760, "ee05760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05760C1Ev();
+extern void _ZN7ee05760D1Ev();
+Name_Map name_map_ee05760[] = {
+ NSPAIR(_ZN7ee05760C1Ev),
+ NSPAIR(_ZN7ee05760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee05760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05760[];
+extern void _ZN6dd57603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee05760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee05760[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee05760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee05760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee05760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee05760[] = {
+ {&(_ZTV7ee05760[4]), 4,18},
+ {&(_tg__ZTV6dd5760__7ee05760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee05760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee05760[4]), 4,6},
+ {&(_ZTV7ee05760[10]), 10,18},
+ {&(_ZTV7ee05760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee05760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee05760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05760[];
+extern VTBL_ENTRY _ZTV7ee05760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05760[];
+static VTBL_ENTRY alt_thunk_names440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05760 = { "ee05760", // class name
+ bases_ee05760, 4,
+ &(vtc_ee05760[0]), // expected_vtbl_contents
+ &(vtt_ee05760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names440,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15760 : virtual dd5760 {
+ int e;
+ ~ee15760(); // tgen
+ ee15760(); // tgen
+};
+//SIG(1 ee15760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15760 ::~ee15760(){ note_dtor("ee15760", this);} // tgen
+ee15760 ::ee15760(){ note_ctor("ee15760", this);} // tgen
+
+static void Test_ee15760()
+{
+ extern Class_Descriptor cd_ee15760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15760, buf);
+ ee15760 *dp, &lv = *(dp=new (buf) ee15760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee15760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee15760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(32,16), "ee15760");
+ check_base_class_offset(lv, (dd5760*), ABISELECT(16,8), "ee15760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15760.e");
+ test_class_info(&lv, &cd_ee15760);
+ dp->~ee15760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15760(Test_ee15760, "ee15760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15760C1Ev();
+extern void _ZN7ee15760D1Ev();
+Name_Map name_map_ee15760[] = {
+ NSPAIR(_ZN7ee15760C1Ev),
+ NSPAIR(_ZN7ee15760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee15760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, ABISELECT(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 _ZTI7ee15760[];
+extern void _ZN6dd57603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15760[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee15760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee15760[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee15760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee15760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee15760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee15760[] = {
+ {&(_ZTV7ee15760[5]), 5,24},
+ {&(_ZTV7ee15760[10]), 10,24},
+ {&(_ZTV7ee15760[16]), 16,24},
+ {&(_ZTV7ee15760[22]), 22,24},
+ {&(_tg__ZTV6dd5760__7ee15760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee15760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee15760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee15760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee15760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15760[];
+extern VTBL_ENTRY _ZTV7ee15760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15760[];
+static VTBL_ENTRY alt_thunk_names441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15760 = { "ee15760", // class name
+ bases_ee15760, 4,
+ &(vtc_ee15760[0]), // expected_vtbl_contents
+ &(vtt_ee15760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15760),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25760 : dd5760 {
+ int e;
+ virtual void foo(); // _ZN7ee257603fooEv
+ ~ee25760(); // tgen
+ ee25760(); // tgen
+};
+//SIG(1 ee25760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25760 ::foo(){vfunc_called(this, "_ZN7ee257603fooEv");}
+ee25760 ::~ee25760(){ note_dtor("ee25760", this);} // tgen
+ee25760 ::ee25760(){ note_ctor("ee25760", this);} // tgen
+
+static void Test_ee25760()
+{
+ extern Class_Descriptor cd_ee25760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25760, buf);
+ ee25760 *dp, &lv = *(dp=new (buf) ee25760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee25760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee25760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(16,12), "ee25760");
+ check_base_class_offset(lv, (dd5760*), 0, "ee25760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25760.e");
+ test_class_info(&lv, &cd_ee25760);
+ dp->~ee25760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25760(Test_ee25760, "ee25760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25760C1Ev();
+extern void _ZN7ee25760D1Ev();
+Name_Map name_map_ee25760[] = {
+ NSPAIR(_ZN7ee25760C1Ev),
+ NSPAIR(_ZN7ee25760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee25760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25760[];
+extern void _ZN6dd57603barEv();
+extern void _ZN7ee257603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257603fooEv,_ZTv0_n16_N7ee257603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257603fooEv,_ZThn12_N7ee257603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee257603fooEv,_ZTv0_n16_N7ee257603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257603fooEv,_ZThn20_N7ee257603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+ (VTBL_ENTRY)&_ZN7ee257603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257603fooEv,_ZTv0_n16_N7ee257603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257603fooEv,_ZTv0_n16_N7ee257603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee25760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee25760[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee25760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee25760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee25760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee25760[] = {
+ {&(_ZTV7ee25760[4]), 4,19},
+ {&(_tg__ZTV6dd5760__7ee25760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee25760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee25760[4]), 4,6},
+ {&(_ZTV7ee25760[11]), 11,19},
+ {&(_ZTV7ee25760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee25760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee25760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25760[];
+extern VTBL_ENTRY _ZTV7ee25760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25760[];
+static VTBL_ENTRY alt_thunk_names442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257603fooEv,_ZTv0_n16_N7ee257603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257603fooEv,_ZThn20_N7ee257603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257603fooEv,_ZThn12_N7ee257603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25760 = { "ee25760", // class name
+ bases_ee25760, 4,
+ &(vtc_ee25760[0]), // expected_vtbl_contents
+ &(vtt_ee25760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names442,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35760 : virtual dd5760 {
+ int e;
+ virtual void foo(); // _ZN7ee357603fooEv
+ ~ee35760(); // tgen
+ ee35760(); // tgen
+};
+//SIG(1 ee35760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35760 ::foo(){vfunc_called(this, "_ZN7ee357603fooEv");}
+ee35760 ::~ee35760(){ note_dtor("ee35760", this);} // tgen
+ee35760 ::ee35760(){ note_ctor("ee35760", this);} // tgen
+
+static void Test_ee35760()
+{
+ extern Class_Descriptor cd_ee35760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35760, buf);
+ ee35760 *dp, &lv = *(dp=new (buf) ee35760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee35760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee35760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(32,16), "ee35760");
+ check_base_class_offset(lv, (dd5760*), ABISELECT(16,8), "ee35760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35760.e");
+ test_class_info(&lv, &cd_ee35760);
+ dp->~ee35760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35760(Test_ee35760, "ee35760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35760C1Ev();
+extern void _ZN7ee35760D1Ev();
+Name_Map name_map_ee35760[] = {
+ NSPAIR(_ZN7ee35760C1Ev),
+ NSPAIR(_ZN7ee35760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee35760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, ABISELECT(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 _ZTI7ee35760[];
+extern void _ZN7ee357603fooEv();
+extern void _ZN6dd57603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357603fooEv,_ZTv0_n16_N7ee357603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357603fooEv,_ZThn16_N7ee357603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee357603fooEv,_ZTv0_n16_N7ee357603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357603fooEv,_ZThn24_N7ee357603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35760[0]),
+ (VTBL_ENTRY)&_ZN7ee357603fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357603fooEv,_ZTv0_n16_N7ee357603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357603fooEv,_ZTv0_n16_N7ee357603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee35760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee35760[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee35760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee35760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee35760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee35760[] = {
+ {&(_ZTV7ee35760[5]), 5,25},
+ {&(_ZTV7ee35760[11]), 11,25},
+ {&(_ZTV7ee35760[17]), 17,25},
+ {&(_ZTV7ee35760[23]), 23,25},
+ {&(_tg__ZTV6dd5760__7ee35760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee35760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee35760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee35760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee35760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35760[];
+extern VTBL_ENTRY _ZTV7ee35760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35760[];
+static VTBL_ENTRY alt_thunk_names443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357603fooEv,_ZTv0_n16_N7ee357603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357603fooEv,_ZThn24_N7ee357603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357603fooEv,_ZThn16_N7ee357603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35760 = { "ee35760", // class name
+ bases_ee35760, 4,
+ &(vtc_ee35760[0]), // expected_vtbl_contents
+ &(vtt_ee35760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35760),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names443,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45760 : dd5760 {
+ int e;
+ virtual void bar(); // _ZN7ee457603barEv
+ ~ee45760(); // tgen
+ ee45760(); // tgen
+};
+//SIG(1 ee45760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45760 ::bar(){vfunc_called(this, "_ZN7ee457603barEv");}
+ee45760 ::~ee45760(){ note_dtor("ee45760", this);} // tgen
+ee45760 ::ee45760(){ note_ctor("ee45760", this);} // tgen
+
+static void Test_ee45760()
+{
+ extern Class_Descriptor cd_ee45760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45760, buf);
+ ee45760 *dp, &lv = *(dp=new (buf) ee45760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee45760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee45760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(16,12), "ee45760");
+ check_base_class_offset(lv, (dd5760*), 0, "ee45760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45760.e");
+ test_class_info(&lv, &cd_ee45760);
+ dp->~ee45760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45760(Test_ee45760, "ee45760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45760C1Ev();
+extern void _ZN7ee45760D1Ev();
+Name_Map name_map_ee45760[] = {
+ NSPAIR(_ZN7ee45760C1Ev),
+ NSPAIR(_ZN7ee45760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee45760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45760[];
+extern void _ZN7ee457603barEv();
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457603barEv,_ZTv0_n20_N7ee457603barEv)();
+extern void ABISELECT(_ZThn16_N7ee457603barEv,_ZThn12_N7ee457603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee457603barEv,_ZTv0_n12_N7ee457603barEv)();
+extern void ABISELECT(_ZThn32_N7ee457603barEv,_ZThn20_N7ee457603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45760[0]),
+ (VTBL_ENTRY)&_ZN7ee457603barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457603barEv,_ZTv0_n20_N7ee457603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee457603barEv,_ZTv0_n12_N7ee457603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee45760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee45760[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee45760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee45760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee45760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee45760[] = {
+ {&(_ZTV7ee45760[4]), 4,18},
+ {&(_tg__ZTV6dd5760__7ee45760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee45760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee45760[4]), 4,6},
+ {&(_ZTV7ee45760[10]), 10,18},
+ {&(_ZTV7ee45760[16]), 16,18},
+ {&(_tg__ZTV5cc760__7ee45760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee45760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45760[];
+extern VTBL_ENTRY _ZTV7ee45760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45760[];
+static VTBL_ENTRY alt_thunk_names444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee457603barEv,_ZTv0_n12_N7ee457603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457603barEv,_ZThn20_N7ee457603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457603barEv,_ZTv0_n20_N7ee457603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457603barEv,_ZThn12_N7ee457603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45760 = { "ee45760", // class name
+ bases_ee45760, 4,
+ &(vtc_ee45760[0]), // expected_vtbl_contents
+ &(vtt_ee45760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names444,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55760 : virtual dd5760 {
+ int e;
+ virtual void bar(); // _ZN7ee557603barEv
+ ~ee55760(); // tgen
+ ee55760(); // tgen
+};
+//SIG(1 ee55760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55760 ::bar(){vfunc_called(this, "_ZN7ee557603barEv");}
+ee55760 ::~ee55760(){ note_dtor("ee55760", this);} // tgen
+ee55760 ::ee55760(){ note_ctor("ee55760", this);} // tgen
+
+static void Test_ee55760()
+{
+ extern Class_Descriptor cd_ee55760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55760, buf);
+ ee55760 *dp, &lv = *(dp=new (buf) ee55760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee55760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee55760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(32,16), "ee55760");
+ check_base_class_offset(lv, (dd5760*), ABISELECT(16,8), "ee55760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55760.e");
+ test_class_info(&lv, &cd_ee55760);
+ dp->~ee55760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55760(Test_ee55760, "ee55760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55760C1Ev();
+extern void _ZN7ee55760D1Ev();
+Name_Map name_map_ee55760[] = {
+ NSPAIR(_ZN7ee55760C1Ev),
+ NSPAIR(_ZN7ee55760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee55760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, ABISELECT(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 _ZTI7ee55760[];
+extern void _ZN7ee557603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557603barEv,_ZTv0_n20_N7ee557603barEv)();
+extern void ABISELECT(_ZThn16_N7ee557603barEv,_ZThn8_N7ee557603barEv)() __attribute__((weak));
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557603barEv,_ZTv0_n20_N7ee557603barEv)();
+extern void ABISELECT(_ZThn32_N7ee557603barEv,_ZThn16_N7ee557603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee557603barEv,_ZTv0_n12_N7ee557603barEv)();
+extern void ABISELECT(_ZThn48_N7ee557603barEv,_ZThn24_N7ee557603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55760[0]),
+ (VTBL_ENTRY)&_ZN7ee557603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557603barEv,_ZTv0_n20_N7ee557603barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557603barEv,_ZTv0_n20_N7ee557603barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee557603barEv,_ZTv0_n12_N7ee557603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee55760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee55760[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee55760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee55760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee55760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee55760[] = {
+ {&(_ZTV7ee55760[5]), 5,25},
+ {&(_ZTV7ee55760[11]), 11,25},
+ {&(_ZTV7ee55760[17]), 17,25},
+ {&(_ZTV7ee55760[23]), 23,25},
+ {&(_tg__ZTV6dd5760__7ee55760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee55760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee55760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee55760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee55760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55760[];
+extern VTBL_ENTRY _ZTV7ee55760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55760[];
+static VTBL_ENTRY alt_thunk_names445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee557603barEv,_ZTv0_n12_N7ee557603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557603barEv,_ZThn24_N7ee557603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557603barEv,_ZTv0_n20_N7ee557603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557603barEv,_ZThn16_N7ee557603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557603barEv,_ZThn8_N7ee557603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55760 = { "ee55760", // class name
+ bases_ee55760, 4,
+ &(vtc_ee55760[0]), // expected_vtbl_contents
+ &(vtt_ee55760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55760),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names445,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65760 : dd5760 {
+ int e;
+ virtual void foo(); // _ZN7ee657603fooEv
+ virtual void bar(); // _ZN7ee657603barEv
+ ~ee65760(); // tgen
+ ee65760(); // tgen
+};
+//SIG(1 ee65760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65760 ::foo(){vfunc_called(this, "_ZN7ee657603fooEv");}
+void ee65760 ::bar(){vfunc_called(this, "_ZN7ee657603barEv");}
+ee65760 ::~ee65760(){ note_dtor("ee65760", this);} // tgen
+ee65760 ::ee65760(){ note_ctor("ee65760", this);} // tgen
+
+static void Test_ee65760()
+{
+ extern Class_Descriptor cd_ee65760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65760, buf);
+ ee65760 *dp, &lv = *(dp=new (buf) ee65760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee65760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee65760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(16,12), "ee65760");
+ check_base_class_offset(lv, (dd5760*), 0, "ee65760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65760.e");
+ test_class_info(&lv, &cd_ee65760);
+ dp->~ee65760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65760(Test_ee65760, "ee65760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65760C1Ev();
+extern void _ZN7ee65760D1Ev();
+Name_Map name_map_ee65760[] = {
+ NSPAIR(_ZN7ee65760C1Ev),
+ NSPAIR(_ZN7ee65760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee65760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65760[];
+extern void _ZN7ee657603barEv();
+extern void _ZN7ee657603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657603fooEv,_ZTv0_n16_N7ee657603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657603fooEv,_ZThn12_N7ee657603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657603barEv,_ZTv0_n20_N7ee657603barEv)();
+extern void ABISELECT(_ZThn16_N7ee657603barEv,_ZThn12_N7ee657603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657603barEv,_ZTv0_n12_N7ee657603barEv)();
+extern void ABISELECT(_ZThn32_N7ee657603barEv,_ZThn20_N7ee657603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657603fooEv,_ZTv0_n16_N7ee657603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657603fooEv,_ZThn20_N7ee657603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65760[0]),
+ (VTBL_ENTRY)&_ZN7ee657603barEv,
+ (VTBL_ENTRY)&_ZN7ee657603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657603fooEv,_ZTv0_n16_N7ee657603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657603barEv,_ZTv0_n20_N7ee657603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657603barEv,_ZTv0_n12_N7ee657603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657603fooEv,_ZTv0_n16_N7ee657603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee65760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee65760[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee65760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee65760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee65760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee65760[] = {
+ {&(_ZTV7ee65760[4]), 4,19},
+ {&(_tg__ZTV6dd5760__7ee65760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee65760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee65760[4]), 4,6},
+ {&(_ZTV7ee65760[11]), 11,19},
+ {&(_ZTV7ee65760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee65760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee65760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65760[];
+extern VTBL_ENTRY _ZTV7ee65760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65760[];
+static VTBL_ENTRY alt_thunk_names446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn20_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn12_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657603barEv,_ZTv0_n12_N7ee657603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657603barEv,_ZThn20_N7ee657603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657603barEv,_ZTv0_n20_N7ee657603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657603barEv,_ZThn12_N7ee657603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657603fooEv,_ZTv0_n16_N7ee657603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657603fooEv,_ZThn20_N7ee657603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657603fooEv,_ZThn12_N7ee657603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65760 = { "ee65760", // class name
+ bases_ee65760, 4,
+ &(vtc_ee65760[0]), // expected_vtbl_contents
+ &(vtt_ee65760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names446,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75760 : virtual dd5760 {
+ int e;
+ virtual void foo(); // _ZN7ee757603fooEv
+ virtual void bar(); // _ZN7ee757603barEv
+ ~ee75760(); // tgen
+ ee75760(); // tgen
+};
+//SIG(1 ee75760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75760 ::foo(){vfunc_called(this, "_ZN7ee757603fooEv");}
+void ee75760 ::bar(){vfunc_called(this, "_ZN7ee757603barEv");}
+ee75760 ::~ee75760(){ note_dtor("ee75760", this);} // tgen
+ee75760 ::ee75760(){ note_ctor("ee75760", this);} // tgen
+
+static void Test_ee75760()
+{
+ extern Class_Descriptor cd_ee75760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75760, buf);
+ ee75760 *dp, &lv = *(dp=new (buf) ee75760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee75760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee75760");
+ check_base_class_offset(lv, (cc760*)(dd5760*), ABISELECT(32,16), "ee75760");
+ check_base_class_offset(lv, (dd5760*), ABISELECT(16,8), "ee75760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75760.e");
+ test_class_info(&lv, &cd_ee75760);
+ dp->~ee75760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75760(Test_ee75760, "ee75760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75760C1Ev();
+extern void _ZN7ee75760D1Ev();
+Name_Map name_map_ee75760[] = {
+ NSPAIR(_ZN7ee75760C1Ev),
+ NSPAIR(_ZN7ee75760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd5760;
+extern VTBL_ENTRY _ZTI6dd5760[];
+extern VTBL_ENTRY _ZTV6dd5760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5760[];
+static Base_Class bases_ee75760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd5760, 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 _ZTI7ee75760[];
+extern void _ZN7ee757603fooEv();
+extern void _ZN7ee757603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757603barEv,_ZTv0_n20_N7ee757603barEv)();
+extern void ABISELECT(_ZThn16_N7ee757603barEv,_ZThn8_N7ee757603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757603fooEv,_ZTv0_n16_N7ee757603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757603fooEv,_ZThn16_N7ee757603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757603barEv,_ZTv0_n20_N7ee757603barEv)();
+extern void ABISELECT(_ZThn32_N7ee757603barEv,_ZThn16_N7ee757603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757603barEv,_ZTv0_n12_N7ee757603barEv)();
+extern void ABISELECT(_ZThn48_N7ee757603barEv,_ZThn24_N7ee757603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757603fooEv,_ZTv0_n16_N7ee757603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757603fooEv,_ZThn24_N7ee757603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75760[0]),
+ (VTBL_ENTRY)&_ZN7ee757603fooEv,
+ (VTBL_ENTRY)&_ZN7ee757603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757603barEv,_ZTv0_n20_N7ee757603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757603fooEv,_ZTv0_n16_N7ee757603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757603barEv,_ZTv0_n20_N7ee757603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757603barEv,_ZTv0_n12_N7ee757603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757603fooEv,_ZTv0_n16_N7ee757603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75760[];
+extern void _ZN6dd57603barEv();
+static VTBL_ENTRY _tg__ZTV6dd5760__7ee75760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN6dd57603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv)();
+extern void ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd5760__7ee75760[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv)();
+extern void ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd5760__7ee75760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee75760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee75760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee75760[] = {
+ {&(_ZTV7ee75760[5]), 5,26},
+ {&(_ZTV7ee75760[12]), 12,26},
+ {&(_ZTV7ee75760[18]), 18,26},
+ {&(_ZTV7ee75760[24]), 24,26},
+ {&(_tg__ZTV6dd5760__7ee75760[4]), 4,5},
+ {&(_tg__ZTV5cc760__6dd5760__7ee75760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd5760__7ee75760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee75760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee75760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75760[];
+extern VTBL_ENTRY _ZTV7ee75760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75760[];
+static VTBL_ENTRY alt_thunk_names447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd57603barEv,_ZTv0_n12_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57603barEv,_ZThn16_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57603barEv,_ZTv0_n20_N6dd57603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57603barEv,_ZThn8_N6dd57603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757603barEv,_ZTv0_n12_N7ee757603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757603barEv,_ZThn24_N7ee757603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757603fooEv,_ZTv0_n16_N7ee757603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757603fooEv,_ZThn24_N7ee757603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757603fooEv,_ZThn16_N7ee757603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757603barEv,_ZTv0_n20_N7ee757603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757603barEv,_ZThn16_N7ee757603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757603barEv,_ZThn8_N7ee757603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75760 = { "ee75760", // class name
+ bases_ee75760, 4,
+ &(vtc_ee75760[0]), // expected_vtbl_contents
+ &(vtt_ee75760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75760),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names447,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6760 : cc760 {
+ int d;
+ virtual void bar(); // _ZN6dd67603barEv
+ virtual void foo(); // _ZN6dd67603fooEv
+ ~dd6760(); // tgen
+ dd6760(); // tgen
+};
+//SIG(-1 dd6760) C1{ BC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6760 ::bar(){vfunc_called(this, "_ZN6dd67603barEv");}
+void dd6760 ::foo(){vfunc_called(this, "_ZN6dd67603fooEv");}
+dd6760 ::~dd6760(){ note_dtor("dd6760", this);} // tgen
+dd6760 ::dd6760(){ note_ctor("dd6760", this);} // tgen
+
+static void Test_dd6760()
+{
+ extern Class_Descriptor cd_dd6760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6760, buf);
+ dd6760 *dp, &lv = *(dp=new (buf) dd6760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(24,16), "dd6760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(16,12), "dd6760");
+ check_base_class_offset(lv, (cc760*), 0, "dd6760");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6760.d");
+ test_class_info(&lv, &cd_dd6760);
+ dp->~dd6760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6760(Test_dd6760, "dd6760", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6760C1Ev();
+extern void _ZN6dd6760D1Ev();
+Name_Map name_map_dd6760[] = {
+ NSPAIR(_ZN6dd6760C1Ev),
+ NSPAIR(_ZN6dd6760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd6760[] = {
+ // 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_bb60, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd6760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd6760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd6760[] = {
+ {&(_ZTV6dd6760[3]), 3,11},
+ {&(_tg__ZTV5cc760__6dd6760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd6760[4]), 4,6},
+ {&(_ZTV6dd6760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static VTBL_ENTRY alt_thunk_names448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6760 = { "dd6760", // class name
+ bases_dd6760, 3,
+ &(vtc_dd6760[0]), // expected_vtbl_contents
+ &(vtt_dd6760[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6760),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names448,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06760 : dd6760 {
+ int e;
+ ~ee06760(); // tgen
+ ee06760(); // tgen
+};
+//SIG(1 ee06760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06760 ::~ee06760(){ note_dtor("ee06760", this);} // tgen
+ee06760 ::ee06760(){ note_ctor("ee06760", this);} // tgen
+
+static void Test_ee06760()
+{
+ extern Class_Descriptor cd_ee06760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06760, buf);
+ ee06760 *dp, &lv = *(dp=new (buf) ee06760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee06760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(24,16), "ee06760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), 0, "ee06760");
+ check_base_class_offset(lv, (dd6760*), 0, "ee06760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06760.e");
+ test_class_info(&lv, &cd_ee06760);
+ dp->~ee06760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06760(Test_ee06760, "ee06760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06760C1Ev();
+extern void _ZN7ee06760D1Ev();
+Name_Map name_map_ee06760[] = {
+ NSPAIR(_ZN7ee06760C1Ev),
+ NSPAIR(_ZN7ee06760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee06760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee06760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee06760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee06760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee06760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee06760[] = {
+ {&(_ZTV7ee06760[3]), 3,11},
+ {&(_tg__ZTV6dd6760__7ee06760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee06760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee06760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee06760[4]), 4,6},
+ {&(_ZTV7ee06760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06760[];
+extern VTBL_ENTRY _ZTV7ee06760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06760[];
+static VTBL_ENTRY alt_thunk_names449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06760 = { "ee06760", // class name
+ bases_ee06760, 4,
+ &(vtc_ee06760[0]), // expected_vtbl_contents
+ &(vtt_ee06760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names449,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16760 : virtual dd6760 {
+ int e;
+ ~ee16760(); // tgen
+ ee16760(); // tgen
+};
+//SIG(1 ee16760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16760 ::~ee16760(){ note_dtor("ee16760", this);} // tgen
+ee16760 ::ee16760(){ note_ctor("ee16760", this);} // tgen
+
+static void Test_ee16760()
+{
+ extern Class_Descriptor cd_ee16760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16760, buf);
+ ee16760 *dp, &lv = *(dp=new (buf) ee16760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee16760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(32,20), "ee16760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), ABISELECT(16,8), "ee16760");
+ check_base_class_offset(lv, (dd6760*), ABISELECT(16,8), "ee16760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16760.e");
+ test_class_info(&lv, &cd_ee16760);
+ dp->~ee16760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16760(Test_ee16760, "ee16760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16760C1Ev();
+extern void _ZN7ee16760D1Ev();
+Name_Map name_map_ee16760[] = {
+ NSPAIR(_ZN7ee16760C1Ev),
+ NSPAIR(_ZN7ee16760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee16760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, 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 _ZTI7ee16760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16760[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee16760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee16760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee16760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee16760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee16760[] = {
+ {&(_ZTV7ee16760[4]), 4,17},
+ {&(_ZTV7ee16760[9]), 9,17},
+ {&(_ZTV7ee16760[15]), 15,17},
+ {&(_tg__ZTV6dd6760__7ee16760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee16760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee16760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee16760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16760[];
+extern VTBL_ENTRY _ZTV7ee16760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16760[];
+static VTBL_ENTRY alt_thunk_names450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16760 = { "ee16760", // class name
+ bases_ee16760, 4,
+ &(vtc_ee16760[0]), // expected_vtbl_contents
+ &(vtt_ee16760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16760),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26760 : dd6760 {
+ int e;
+ virtual void foo(); // _ZN7ee267603fooEv
+ ~ee26760(); // tgen
+ ee26760(); // tgen
+};
+//SIG(1 ee26760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26760 ::foo(){vfunc_called(this, "_ZN7ee267603fooEv");}
+ee26760 ::~ee26760(){ note_dtor("ee26760", this);} // tgen
+ee26760 ::ee26760(){ note_ctor("ee26760", this);} // tgen
+
+static void Test_ee26760()
+{
+ extern Class_Descriptor cd_ee26760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26760, buf);
+ ee26760 *dp, &lv = *(dp=new (buf) ee26760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee26760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(24,16), "ee26760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), 0, "ee26760");
+ check_base_class_offset(lv, (dd6760*), 0, "ee26760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26760.e");
+ test_class_info(&lv, &cd_ee26760);
+ dp->~ee26760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26760(Test_ee26760, "ee26760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26760C1Ev();
+extern void _ZN7ee26760D1Ev();
+Name_Map name_map_ee26760[] = {
+ NSPAIR(_ZN7ee26760C1Ev),
+ NSPAIR(_ZN7ee26760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee26760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26760[];
+extern void _ZN7ee267603fooEv();
+extern void _ZN6dd67603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee267603fooEv,_ZTv0_n16_N7ee267603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267603fooEv,_ZThn16_N7ee267603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26760[0]),
+ (VTBL_ENTRY)&_ZN7ee267603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee267603fooEv,_ZTv0_n16_N7ee267603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee26760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee26760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee26760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee26760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee26760[] = {
+ {&(_ZTV7ee26760[3]), 3,11},
+ {&(_tg__ZTV6dd6760__7ee26760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee26760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee26760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee26760[4]), 4,6},
+ {&(_ZTV7ee26760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26760[];
+extern VTBL_ENTRY _ZTV7ee26760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26760[];
+static VTBL_ENTRY alt_thunk_names451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee267603fooEv,_ZTv0_n16_N7ee267603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267603fooEv,_ZThn16_N7ee267603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26760 = { "ee26760", // class name
+ bases_ee26760, 4,
+ &(vtc_ee26760[0]), // expected_vtbl_contents
+ &(vtt_ee26760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names451,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36760 : virtual dd6760 {
+ int e;
+ virtual void foo(); // _ZN7ee367603fooEv
+ ~ee36760(); // tgen
+ ee36760(); // tgen
+};
+//SIG(1 ee36760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36760 ::foo(){vfunc_called(this, "_ZN7ee367603fooEv");}
+ee36760 ::~ee36760(){ note_dtor("ee36760", this);} // tgen
+ee36760 ::ee36760(){ note_ctor("ee36760", this);} // tgen
+
+static void Test_ee36760()
+{
+ extern Class_Descriptor cd_ee36760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36760, buf);
+ ee36760 *dp, &lv = *(dp=new (buf) ee36760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee36760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(32,20), "ee36760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), ABISELECT(16,8), "ee36760");
+ check_base_class_offset(lv, (dd6760*), ABISELECT(16,8), "ee36760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36760.e");
+ test_class_info(&lv, &cd_ee36760);
+ dp->~ee36760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36760(Test_ee36760, "ee36760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36760C1Ev();
+extern void _ZN7ee36760D1Ev();
+Name_Map name_map_ee36760[] = {
+ NSPAIR(_ZN7ee36760C1Ev),
+ NSPAIR(_ZN7ee36760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee36760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, ABISELECT(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 _ZTI7ee36760[];
+extern void _ZN7ee367603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367603fooEv,_ZTv0_n16_N7ee367603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367603fooEv,_ZThn8_N7ee367603fooEv)() __attribute__((weak));
+extern void _ZN6dd67603barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee367603fooEv,_ZTv0_n16_N7ee367603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367603fooEv,_ZThn20_N7ee367603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36760[0]),
+ (VTBL_ENTRY)&_ZN7ee367603fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367603fooEv,_ZTv0_n16_N7ee367603fooEv),
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367603fooEv,_ZTv0_n16_N7ee367603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee36760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee36760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee36760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee36760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee36760[] = {
+ {&(_ZTV7ee36760[4]), 4,18},
+ {&(_ZTV7ee36760[10]), 10,18},
+ {&(_ZTV7ee36760[16]), 16,18},
+ {&(_tg__ZTV6dd6760__7ee36760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee36760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee36760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee36760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36760[];
+extern VTBL_ENTRY _ZTV7ee36760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36760[];
+static VTBL_ENTRY alt_thunk_names452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367603fooEv,_ZTv0_n16_N7ee367603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367603fooEv,_ZThn20_N7ee367603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367603fooEv,_ZThn8_N7ee367603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36760 = { "ee36760", // class name
+ bases_ee36760, 4,
+ &(vtc_ee36760[0]), // expected_vtbl_contents
+ &(vtt_ee36760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names452,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46760 : dd6760 {
+ int e;
+ virtual void bar(); // _ZN7ee467603barEv
+ ~ee46760(); // tgen
+ ee46760(); // tgen
+};
+//SIG(1 ee46760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46760 ::bar(){vfunc_called(this, "_ZN7ee467603barEv");}
+ee46760 ::~ee46760(){ note_dtor("ee46760", this);} // tgen
+ee46760 ::ee46760(){ note_ctor("ee46760", this);} // tgen
+
+static void Test_ee46760()
+{
+ extern Class_Descriptor cd_ee46760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46760, buf);
+ ee46760 *dp, &lv = *(dp=new (buf) ee46760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee46760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(24,16), "ee46760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), 0, "ee46760");
+ check_base_class_offset(lv, (dd6760*), 0, "ee46760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46760.e");
+ test_class_info(&lv, &cd_ee46760);
+ dp->~ee46760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46760(Test_ee46760, "ee46760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46760C1Ev();
+extern void _ZN7ee46760D1Ev();
+Name_Map name_map_ee46760[] = {
+ NSPAIR(_ZN7ee46760C1Ev),
+ NSPAIR(_ZN7ee46760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee46760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN7ee467603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee467603barEv,_ZTv0_n12_N7ee467603barEv)();
+extern void ABISELECT(_ZThn24_N7ee467603barEv,_ZThn16_N7ee467603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN7ee467603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee467603barEv,_ZTv0_n12_N7ee467603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee46760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee46760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee46760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee46760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee46760[] = {
+ {&(_ZTV7ee46760[3]), 3,11},
+ {&(_tg__ZTV6dd6760__7ee46760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee46760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee46760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee46760[4]), 4,6},
+ {&(_ZTV7ee46760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46760[];
+extern VTBL_ENTRY _ZTV7ee46760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46760[];
+static VTBL_ENTRY alt_thunk_names453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee467603barEv,_ZTv0_n12_N7ee467603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467603barEv,_ZThn16_N7ee467603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46760 = { "ee46760", // class name
+ bases_ee46760, 4,
+ &(vtc_ee46760[0]), // expected_vtbl_contents
+ &(vtt_ee46760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names453,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56760 : virtual dd6760 {
+ int e;
+ virtual void bar(); // _ZN7ee567603barEv
+ ~ee56760(); // tgen
+ ee56760(); // tgen
+};
+//SIG(1 ee56760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56760 ::bar(){vfunc_called(this, "_ZN7ee567603barEv");}
+ee56760 ::~ee56760(){ note_dtor("ee56760", this);} // tgen
+ee56760 ::ee56760(){ note_ctor("ee56760", this);} // tgen
+
+static void Test_ee56760()
+{
+ extern Class_Descriptor cd_ee56760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56760, buf);
+ ee56760 *dp, &lv = *(dp=new (buf) ee56760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee56760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(32,20), "ee56760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), ABISELECT(16,8), "ee56760");
+ check_base_class_offset(lv, (dd6760*), ABISELECT(16,8), "ee56760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56760.e");
+ test_class_info(&lv, &cd_ee56760);
+ dp->~ee56760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56760(Test_ee56760, "ee56760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56760C1Ev();
+extern void _ZN7ee56760D1Ev();
+Name_Map name_map_ee56760[] = {
+ NSPAIR(_ZN7ee56760C1Ev),
+ NSPAIR(_ZN7ee56760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee56760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, ABISELECT(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 _ZTI7ee56760[];
+extern void _ZN7ee567603barEv();
+extern void _ZN6dd67603fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567603barEv,_ZTv0_n20_N7ee567603barEv)();
+extern void ABISELECT(_ZThn16_N7ee567603barEv,_ZThn8_N7ee567603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee567603barEv,_ZTv0_n12_N7ee567603barEv)();
+extern void ABISELECT(_ZThn32_N7ee567603barEv,_ZThn20_N7ee567603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56760[0]),
+ (VTBL_ENTRY)&_ZN7ee567603barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567603barEv,_ZTv0_n20_N7ee567603barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee567603barEv,_ZTv0_n12_N7ee567603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee56760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee56760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee56760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee56760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee56760[] = {
+ {&(_ZTV7ee56760[4]), 4,18},
+ {&(_ZTV7ee56760[10]), 10,18},
+ {&(_ZTV7ee56760[16]), 16,18},
+ {&(_tg__ZTV6dd6760__7ee56760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee56760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee56760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee56760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56760[];
+extern VTBL_ENTRY _ZTV7ee56760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56760[];
+static VTBL_ENTRY alt_thunk_names454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee567603barEv,_ZTv0_n12_N7ee567603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567603barEv,_ZThn20_N7ee567603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567603barEv,_ZTv0_n20_N7ee567603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567603barEv,_ZThn8_N7ee567603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56760 = { "ee56760", // class name
+ bases_ee56760, 4,
+ &(vtc_ee56760[0]), // expected_vtbl_contents
+ &(vtt_ee56760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56760),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56760),7, //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 ee66760 : dd6760 {
+ int e;
+ virtual void foo(); // _ZN7ee667603fooEv
+ virtual void bar(); // _ZN7ee667603barEv
+ ~ee66760(); // tgen
+ ee66760(); // tgen
+};
+//SIG(1 ee66760) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66760 ::foo(){vfunc_called(this, "_ZN7ee667603fooEv");}
+void ee66760 ::bar(){vfunc_called(this, "_ZN7ee667603barEv");}
+ee66760 ::~ee66760(){ note_dtor("ee66760", this);} // tgen
+ee66760 ::ee66760(){ note_ctor("ee66760", this);} // tgen
+
+static void Test_ee66760()
+{
+ extern Class_Descriptor cd_ee66760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66760, buf);
+ ee66760 *dp, &lv = *(dp=new (buf) ee66760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(32,20), "ee66760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(24,16), "ee66760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), 0, "ee66760");
+ check_base_class_offset(lv, (dd6760*), 0, "ee66760");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66760.e");
+ test_class_info(&lv, &cd_ee66760);
+ dp->~ee66760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66760(Test_ee66760, "ee66760", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66760C1Ev();
+extern void _ZN7ee66760D1Ev();
+Name_Map name_map_ee66760[] = {
+ NSPAIR(_ZN7ee66760C1Ev),
+ NSPAIR(_ZN7ee66760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee66760[] = {
+ // 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_bb60, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66760[];
+extern void _ZN7ee667603fooEv();
+extern void _ZN7ee667603barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667603barEv,_ZTv0_n12_N7ee667603barEv)();
+extern void ABISELECT(_ZThn24_N7ee667603barEv,_ZThn16_N7ee667603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667603fooEv,_ZTv0_n16_N7ee667603fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667603fooEv,_ZThn16_N7ee667603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66760[0]),
+ (VTBL_ENTRY)&_ZN7ee667603fooEv,
+ (VTBL_ENTRY)&_ZN7ee667603barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667603barEv,_ZTv0_n12_N7ee667603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667603fooEv,_ZTv0_n16_N7ee667603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee66760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee66760[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee66760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee66760[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee66760[] = {
+ {&(_ZTV7ee66760[3]), 3,11},
+ {&(_tg__ZTV6dd6760__7ee66760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee66760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee66760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee66760[4]), 4,6},
+ {&(_ZTV7ee66760[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66760[];
+extern VTBL_ENTRY _ZTV7ee66760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66760[];
+static VTBL_ENTRY alt_thunk_names455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603fooEv,_ZThn16_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67603barEv,_ZThn16_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603fooEv,_ZThn16_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7603barEv,_ZThn16_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667603fooEv,_ZTv0_n16_N7ee667603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667603fooEv,_ZThn16_N7ee667603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667603barEv,_ZTv0_n12_N7ee667603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667603barEv,_ZThn16_N7ee667603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66760 = { "ee66760", // class name
+ bases_ee66760, 4,
+ &(vtc_ee66760[0]), // expected_vtbl_contents
+ &(vtt_ee66760[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66760),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66760),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names455,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76760 : virtual dd6760 {
+ int e;
+ virtual void foo(); // _ZN7ee767603fooEv
+ virtual void bar(); // _ZN7ee767603barEv
+ ~ee76760(); // tgen
+ ee76760(); // tgen
+};
+//SIG(1 ee76760) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76760 ::foo(){vfunc_called(this, "_ZN7ee767603fooEv");}
+void ee76760 ::bar(){vfunc_called(this, "_ZN7ee767603barEv");}
+ee76760 ::~ee76760(){ note_dtor("ee76760", this);} // tgen
+ee76760 ::ee76760(){ note_ctor("ee76760", this);} // tgen
+
+static void Test_ee76760()
+{
+ extern Class_Descriptor cd_ee76760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76760, buf);
+ ee76760 *dp, &lv = *(dp=new (buf) ee76760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee76760");
+ check_base_class_offset(lv, (bb60*)(cc760*)(dd6760*), ABISELECT(32,20), "ee76760");
+ check_base_class_offset(lv, (cc760*)(dd6760*), ABISELECT(16,8), "ee76760");
+ check_base_class_offset(lv, (dd6760*), ABISELECT(16,8), "ee76760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76760.e");
+ test_class_info(&lv, &cd_ee76760);
+ dp->~ee76760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76760(Test_ee76760, "ee76760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76760C1Ev();
+extern void _ZN7ee76760D1Ev();
+Name_Map name_map_ee76760[] = {
+ NSPAIR(_ZN7ee76760C1Ev),
+ NSPAIR(_ZN7ee76760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd6760;
+extern VTBL_ENTRY _ZTI6dd6760[];
+extern VTBL_ENTRY _ZTV6dd6760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6760[];
+static Base_Class bases_ee76760[] = {
+ // 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_bb60, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6760, ABISELECT(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 _ZTI7ee76760[];
+extern void _ZN7ee767603fooEv();
+extern void _ZN7ee767603barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767603fooEv,_ZTv0_n16_N7ee767603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767603fooEv,_ZThn8_N7ee767603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767603barEv,_ZTv0_n20_N7ee767603barEv)();
+extern void ABISELECT(_ZThn16_N7ee767603barEv,_ZThn8_N7ee767603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767603barEv,_ZTv0_n12_N7ee767603barEv)();
+extern void ABISELECT(_ZThn32_N7ee767603barEv,_ZThn20_N7ee767603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767603fooEv,_ZTv0_n16_N7ee767603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767603fooEv,_ZThn20_N7ee767603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76760[0]),
+ (VTBL_ENTRY)&_ZN7ee767603fooEv,
+ (VTBL_ENTRY)&_ZN7ee767603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767603fooEv,_ZTv0_n16_N7ee767603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767603barEv,_ZTv0_n20_N7ee767603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767603barEv,_ZTv0_n12_N7ee767603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767603fooEv,_ZTv0_n16_N7ee767603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76760[];
+extern void _ZN6dd67603fooEv();
+extern void _ZN6dd67603barEv();
+static VTBL_ENTRY _tg__ZTV6dd6760__7ee76760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&_ZN6dd67603fooEv,
+ (VTBL_ENTRY)&_ZN6dd67603barEv,
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc7606dd6760__7ee76760[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc7606dd6760__7ee76760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv)();
+extern void ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd6760__7ee76760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv),
+};
+static VTT_ENTRY vtt_ee76760[] = {
+ {&(_ZTV7ee76760[4]), 4,19},
+ {&(_ZTV7ee76760[11]), 11,19},
+ {&(_ZTV7ee76760[17]), 17,19},
+ {&(_tg__ZTV6dd6760__7ee76760[3]), 3,5},
+ {&(_tg__ZTV5cc7606dd6760__7ee76760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc7606dd6760__7ee76760[4]), 4,6},
+ {&(_tg__ZTV4bb60__6dd6760__7ee76760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76760[];
+extern VTBL_ENTRY _ZTV7ee76760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76760[];
+static VTBL_ENTRY alt_thunk_names456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67603fooEv,_ZTv0_n16_N6dd67603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603fooEv,_ZThn12_N6dd67603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67603barEv,_ZTv0_n12_N6dd67603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67603barEv,_ZThn12_N6dd67603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn12_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn12_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767603barEv,_ZTv0_n12_N7ee767603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767603barEv,_ZThn20_N7ee767603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767603barEv,_ZTv0_n20_N7ee767603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767603barEv,_ZThn8_N7ee767603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767603fooEv,_ZTv0_n16_N7ee767603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767603fooEv,_ZThn20_N7ee767603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767603fooEv,_ZThn8_N7ee767603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76760 = { "ee76760", // class name
+ bases_ee76760, 4,
+ &(vtc_ee76760[0]), // expected_vtbl_contents
+ &(vtt_ee76760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76760),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names456,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7760 : virtual cc760 {
+ int d;
+ virtual void bar(); // _ZN6dd77603barEv
+ virtual void foo(); // _ZN6dd77603fooEv
+ ~dd7760(); // tgen
+ dd7760(); // tgen
+};
+//SIG(-1 dd7760) C1{ VBC2{ VBC3{ BC4{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7760 ::bar(){vfunc_called(this, "_ZN6dd77603barEv");}
+void dd7760 ::foo(){vfunc_called(this, "_ZN6dd77603fooEv");}
+dd7760 ::~dd7760(){ note_dtor("dd7760", this);} // tgen
+dd7760 ::dd7760(){ note_ctor("dd7760", this);} // tgen
+
+static void Test_dd7760()
+{
+ extern Class_Descriptor cd_dd7760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7760, buf);
+ dd7760 *dp, &lv = *(dp=new (buf) dd7760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,20), "dd7760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,16), "dd7760");
+ check_base_class_offset(lv, (cc760*), ABISELECT(16,8), "dd7760");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7760.d");
+ test_class_info(&lv, &cd_dd7760);
+ dp->~dd7760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7760(Test_dd7760, "dd7760", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7760C1Ev();
+extern void _ZN6dd7760D1Ev();
+Name_Map name_map_dd7760[] = {
+ NSPAIR(_ZN6dd7760C1Ev),
+ NSPAIR(_ZN6dd7760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+static Base_Class bases_dd7760[] = {
+ // 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_bb60, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, ABISELECT(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 _ZTI6dd7760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__6dd7760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_dd7760[] = {
+ {&(_ZTV6dd7760[4]), 4,19},
+ {&(_ZTV6dd7760[11]), 11,19},
+ {&(_ZTV6dd7760[17]), 17,19},
+ {&(_tg__ZTV5cc760__6dd7760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__6dd7760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static VTBL_ENTRY alt_thunk_names457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7760 = { "dd7760", // class name
+ bases_dd7760, 3,
+ &(vtc_dd7760[0]), // expected_vtbl_contents
+ &(vtt_dd7760[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7760),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names457,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07760 : dd7760 {
+ int e;
+ ~ee07760(); // tgen
+ ee07760(); // tgen
+};
+//SIG(1 ee07760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07760 ::~ee07760(){ note_dtor("ee07760", this);} // tgen
+ee07760 ::ee07760(){ note_ctor("ee07760", this);} // tgen
+
+static void Test_ee07760()
+{
+ extern Class_Descriptor cd_ee07760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07760, buf);
+ ee07760 *dp, &lv = *(dp=new (buf) ee07760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee07760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee07760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(16,12), "ee07760");
+ check_base_class_offset(lv, (dd7760*), 0, "ee07760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07760.e");
+ test_class_info(&lv, &cd_ee07760);
+ dp->~ee07760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07760(Test_ee07760, "ee07760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07760C1Ev();
+extern void _ZN7ee07760D1Ev();
+Name_Map name_map_ee07760[] = {
+ NSPAIR(_ZN7ee07760C1Ev),
+ NSPAIR(_ZN7ee07760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee07760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee07760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee07760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee07760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee07760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee07760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee07760[] = {
+ {&(_ZTV7ee07760[4]), 4,19},
+ {&(_tg__ZTV6dd7760__7ee07760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee07760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee07760[4]), 4,6},
+ {&(_ZTV7ee07760[11]), 11,19},
+ {&(_ZTV7ee07760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee07760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee07760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07760[];
+extern VTBL_ENTRY _ZTV7ee07760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07760[];
+static VTBL_ENTRY alt_thunk_names458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07760 = { "ee07760", // class name
+ bases_ee07760, 4,
+ &(vtc_ee07760[0]), // expected_vtbl_contents
+ &(vtt_ee07760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names458,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17760 : virtual dd7760 {
+ int e;
+ ~ee17760(); // tgen
+ ee17760(); // tgen
+};
+//SIG(1 ee17760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17760 ::~ee17760(){ note_dtor("ee17760", this);} // tgen
+ee17760 ::ee17760(){ note_ctor("ee17760", this);} // tgen
+
+static void Test_ee17760()
+{
+ extern Class_Descriptor cd_ee17760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17760, buf);
+ ee17760 *dp, &lv = *(dp=new (buf) ee17760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee17760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee17760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(32,16), "ee17760");
+ check_base_class_offset(lv, (dd7760*), ABISELECT(16,8), "ee17760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17760.e");
+ test_class_info(&lv, &cd_ee17760);
+ dp->~ee17760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17760(Test_ee17760, "ee17760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17760C1Ev();
+extern void _ZN7ee17760D1Ev();
+Name_Map name_map_ee17760[] = {
+ NSPAIR(_ZN7ee17760C1Ev),
+ NSPAIR(_ZN7ee17760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee17760[] = {
+ // 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_bb60, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 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 _ZTI7ee17760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17760[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee17760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee17760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee17760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee17760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee17760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee17760[] = {
+ {&(_ZTV7ee17760[5]), 5,26},
+ {&(_ZTV7ee17760[11]), 11,26},
+ {&(_ZTV7ee17760[18]), 18,26},
+ {&(_ZTV7ee17760[24]), 24,26},
+ {&(_tg__ZTV6dd7760__7ee17760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee17760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee17760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee17760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee17760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17760[];
+extern VTBL_ENTRY _ZTV7ee17760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17760[];
+static VTBL_ENTRY alt_thunk_names459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17760 = { "ee17760", // class name
+ bases_ee17760, 4,
+ &(vtc_ee17760[0]), // expected_vtbl_contents
+ &(vtt_ee17760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17760),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27760 : dd7760 {
+ int e;
+ virtual void foo(); // _ZN7ee277603fooEv
+ ~ee27760(); // tgen
+ ee27760(); // tgen
+};
+//SIG(1 ee27760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27760 ::foo(){vfunc_called(this, "_ZN7ee277603fooEv");}
+ee27760 ::~ee27760(){ note_dtor("ee27760", this);} // tgen
+ee27760 ::ee27760(){ note_ctor("ee27760", this);} // tgen
+
+static void Test_ee27760()
+{
+ extern Class_Descriptor cd_ee27760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27760, buf);
+ ee27760 *dp, &lv = *(dp=new (buf) ee27760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee27760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee27760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(16,12), "ee27760");
+ check_base_class_offset(lv, (dd7760*), 0, "ee27760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27760.e");
+ test_class_info(&lv, &cd_ee27760);
+ dp->~ee27760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27760(Test_ee27760, "ee27760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27760C1Ev();
+extern void _ZN7ee27760D1Ev();
+Name_Map name_map_ee27760[] = {
+ NSPAIR(_ZN7ee27760C1Ev),
+ NSPAIR(_ZN7ee27760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee27760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN7ee277603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277603fooEv,_ZTv0_n16_N7ee277603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277603fooEv,_ZThn12_N7ee277603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee277603fooEv,_ZTv0_n16_N7ee277603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277603fooEv,_ZThn20_N7ee277603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN7ee277603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277603fooEv,_ZTv0_n16_N7ee277603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277603fooEv,_ZTv0_n16_N7ee277603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee27760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee27760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee27760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee27760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee27760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee27760[] = {
+ {&(_ZTV7ee27760[4]), 4,19},
+ {&(_tg__ZTV6dd7760__7ee27760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee27760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee27760[4]), 4,6},
+ {&(_ZTV7ee27760[11]), 11,19},
+ {&(_ZTV7ee27760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee27760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee27760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27760[];
+extern VTBL_ENTRY _ZTV7ee27760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27760[];
+static VTBL_ENTRY alt_thunk_names460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277603fooEv,_ZTv0_n16_N7ee277603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277603fooEv,_ZThn20_N7ee277603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277603fooEv,_ZThn12_N7ee277603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27760 = { "ee27760", // class name
+ bases_ee27760, 4,
+ &(vtc_ee27760[0]), // expected_vtbl_contents
+ &(vtt_ee27760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names460,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37760 : virtual dd7760 {
+ int e;
+ virtual void foo(); // _ZN7ee377603fooEv
+ ~ee37760(); // tgen
+ ee37760(); // tgen
+};
+//SIG(1 ee37760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37760 ::foo(){vfunc_called(this, "_ZN7ee377603fooEv");}
+ee37760 ::~ee37760(){ note_dtor("ee37760", this);} // tgen
+ee37760 ::ee37760(){ note_ctor("ee37760", this);} // tgen
+
+static void Test_ee37760()
+{
+ extern Class_Descriptor cd_ee37760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37760, buf);
+ ee37760 *dp, &lv = *(dp=new (buf) ee37760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee37760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee37760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(32,16), "ee37760");
+ check_base_class_offset(lv, (dd7760*), ABISELECT(16,8), "ee37760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37760.e");
+ test_class_info(&lv, &cd_ee37760);
+ dp->~ee37760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37760(Test_ee37760, "ee37760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37760C1Ev();
+extern void _ZN7ee37760D1Ev();
+Name_Map name_map_ee37760[] = {
+ NSPAIR(_ZN7ee37760C1Ev),
+ NSPAIR(_ZN7ee37760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee37760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 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 _ZTI7ee37760[];
+extern void _ZN7ee377603fooEv();
+extern void _ZN6dd77603barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377603fooEv,_ZTv0_n24_N7ee377603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377603fooEv,_ZThn8_N7ee377603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377603fooEv,_ZTv0_n16_N7ee377603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377603fooEv,_ZThn16_N7ee377603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377603fooEv,_ZTv0_n16_N7ee377603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377603fooEv,_ZThn24_N7ee377603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37760[0]),
+ (VTBL_ENTRY)&_ZN7ee377603fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377603fooEv,_ZTv0_n24_N7ee377603fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377603fooEv,_ZTv0_n16_N7ee377603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377603fooEv,_ZTv0_n16_N7ee377603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee37760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee37760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee37760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee37760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee37760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee37760[] = {
+ {&(_ZTV7ee37760[5]), 5,27},
+ {&(_ZTV7ee37760[12]), 12,27},
+ {&(_ZTV7ee37760[19]), 19,27},
+ {&(_ZTV7ee37760[25]), 25,27},
+ {&(_tg__ZTV6dd7760__7ee37760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee37760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee37760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee37760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee37760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37760[];
+extern VTBL_ENTRY _ZTV7ee37760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37760[];
+static VTBL_ENTRY alt_thunk_names461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377603fooEv,_ZTv0_n16_N7ee377603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377603fooEv,_ZThn24_N7ee377603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377603fooEv,_ZThn16_N7ee377603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377603fooEv,_ZTv0_n24_N7ee377603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377603fooEv,_ZThn8_N7ee377603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37760 = { "ee37760", // class name
+ bases_ee37760, 4,
+ &(vtc_ee37760[0]), // expected_vtbl_contents
+ &(vtt_ee37760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37760),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names461,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47760 : dd7760 {
+ int e;
+ virtual void bar(); // _ZN7ee477603barEv
+ ~ee47760(); // tgen
+ ee47760(); // tgen
+};
+//SIG(1 ee47760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47760 ::bar(){vfunc_called(this, "_ZN7ee477603barEv");}
+ee47760 ::~ee47760(){ note_dtor("ee47760", this);} // tgen
+ee47760 ::ee47760(){ note_ctor("ee47760", this);} // tgen
+
+static void Test_ee47760()
+{
+ extern Class_Descriptor cd_ee47760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47760, buf);
+ ee47760 *dp, &lv = *(dp=new (buf) ee47760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee47760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee47760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(16,12), "ee47760");
+ check_base_class_offset(lv, (dd7760*), 0, "ee47760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47760.e");
+ test_class_info(&lv, &cd_ee47760);
+ dp->~ee47760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47760(Test_ee47760, "ee47760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47760C1Ev();
+extern void _ZN7ee47760D1Ev();
+Name_Map name_map_ee47760[] = {
+ NSPAIR(_ZN7ee47760C1Ev),
+ NSPAIR(_ZN7ee47760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee47760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47760[];
+extern void _ZN7ee477603barEv();
+extern void _ZN6dd77603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477603barEv,_ZTv0_n20_N7ee477603barEv)();
+extern void ABISELECT(_ZThn16_N7ee477603barEv,_ZThn12_N7ee477603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee477603barEv,_ZTv0_n12_N7ee477603barEv)();
+extern void ABISELECT(_ZThn32_N7ee477603barEv,_ZThn20_N7ee477603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47760[0]),
+ (VTBL_ENTRY)&_ZN7ee477603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477603barEv,_ZTv0_n20_N7ee477603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee477603barEv,_ZTv0_n12_N7ee477603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee47760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee47760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee47760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee47760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee47760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee47760[] = {
+ {&(_ZTV7ee47760[4]), 4,19},
+ {&(_tg__ZTV6dd7760__7ee47760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee47760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee47760[4]), 4,6},
+ {&(_ZTV7ee47760[11]), 11,19},
+ {&(_ZTV7ee47760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee47760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee47760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47760[];
+extern VTBL_ENTRY _ZTV7ee47760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47760[];
+static VTBL_ENTRY alt_thunk_names462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee477603barEv,_ZTv0_n12_N7ee477603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477603barEv,_ZThn20_N7ee477603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477603barEv,_ZTv0_n20_N7ee477603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477603barEv,_ZThn12_N7ee477603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47760 = { "ee47760", // class name
+ bases_ee47760, 4,
+ &(vtc_ee47760[0]), // expected_vtbl_contents
+ &(vtt_ee47760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names462,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57760 : virtual dd7760 {
+ int e;
+ virtual void bar(); // _ZN7ee577603barEv
+ ~ee57760(); // tgen
+ ee57760(); // tgen
+};
+//SIG(1 ee57760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57760 ::bar(){vfunc_called(this, "_ZN7ee577603barEv");}
+ee57760 ::~ee57760(){ note_dtor("ee57760", this);} // tgen
+ee57760 ::ee57760(){ note_ctor("ee57760", this);} // tgen
+
+static void Test_ee57760()
+{
+ extern Class_Descriptor cd_ee57760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57760, buf);
+ ee57760 *dp, &lv = *(dp=new (buf) ee57760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee57760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee57760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(32,16), "ee57760");
+ check_base_class_offset(lv, (dd7760*), ABISELECT(16,8), "ee57760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57760.e");
+ test_class_info(&lv, &cd_ee57760);
+ dp->~ee57760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57760(Test_ee57760, "ee57760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57760C1Ev();
+extern void _ZN7ee57760D1Ev();
+Name_Map name_map_ee57760[] = {
+ NSPAIR(_ZN7ee57760C1Ev),
+ NSPAIR(_ZN7ee57760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee57760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 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 _ZTI7ee57760[];
+extern void _ZN7ee577603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577603barEv,_ZTv0_n20_N7ee577603barEv)();
+extern void ABISELECT(_ZThn16_N7ee577603barEv,_ZThn8_N7ee577603barEv)() __attribute__((weak));
+extern void _ZN6dd77603fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577603barEv,_ZTv0_n20_N7ee577603barEv)();
+extern void ABISELECT(_ZThn32_N7ee577603barEv,_ZThn16_N7ee577603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee577603barEv,_ZTv0_n12_N7ee577603barEv)();
+extern void ABISELECT(_ZThn48_N7ee577603barEv,_ZThn24_N7ee577603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57760[0]),
+ (VTBL_ENTRY)&_ZN7ee577603barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577603barEv,_ZTv0_n20_N7ee577603barEv),
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577603barEv,_ZTv0_n20_N7ee577603barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee577603barEv,_ZTv0_n12_N7ee577603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee57760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee57760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee57760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee57760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee57760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee57760[] = {
+ {&(_ZTV7ee57760[5]), 5,27},
+ {&(_ZTV7ee57760[12]), 12,27},
+ {&(_ZTV7ee57760[19]), 19,27},
+ {&(_ZTV7ee57760[25]), 25,27},
+ {&(_tg__ZTV6dd7760__7ee57760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee57760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee57760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee57760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee57760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57760[];
+extern VTBL_ENTRY _ZTV7ee57760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57760[];
+static VTBL_ENTRY alt_thunk_names463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee577603barEv,_ZTv0_n12_N7ee577603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577603barEv,_ZThn24_N7ee577603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577603barEv,_ZTv0_n20_N7ee577603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577603barEv,_ZThn16_N7ee577603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577603barEv,_ZThn8_N7ee577603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57760 = { "ee57760", // class name
+ bases_ee57760, 4,
+ &(vtc_ee57760[0]), // expected_vtbl_contents
+ &(vtt_ee57760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57760),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names463,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67760 : dd7760 {
+ int e;
+ virtual void foo(); // _ZN7ee677603fooEv
+ virtual void bar(); // _ZN7ee677603barEv
+ ~ee67760(); // tgen
+ ee67760(); // tgen
+};
+//SIG(1 ee67760) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67760 ::foo(){vfunc_called(this, "_ZN7ee677603fooEv");}
+void ee67760 ::bar(){vfunc_called(this, "_ZN7ee677603barEv");}
+ee67760 ::~ee67760(){ note_dtor("ee67760", this);} // tgen
+ee67760 ::ee67760(){ note_ctor("ee67760", this);} // tgen
+
+static void Test_ee67760()
+{
+ extern Class_Descriptor cd_ee67760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67760, buf);
+ ee67760 *dp, &lv = *(dp=new (buf) ee67760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(40,24), "ee67760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(32,20), "ee67760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(16,12), "ee67760");
+ check_base_class_offset(lv, (dd7760*), 0, "ee67760");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67760.e");
+ test_class_info(&lv, &cd_ee67760);
+ dp->~ee67760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67760(Test_ee67760, "ee67760", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67760C1Ev();
+extern void _ZN7ee67760D1Ev();
+Name_Map name_map_ee67760[] = {
+ NSPAIR(_ZN7ee67760C1Ev),
+ NSPAIR(_ZN7ee67760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee67760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67760[];
+extern void _ZN7ee677603barEv();
+extern void _ZN7ee677603fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677603fooEv,_ZTv0_n16_N7ee677603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677603fooEv,_ZThn12_N7ee677603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677603barEv,_ZTv0_n20_N7ee677603barEv)();
+extern void ABISELECT(_ZThn16_N7ee677603barEv,_ZThn12_N7ee677603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677603barEv,_ZTv0_n12_N7ee677603barEv)();
+extern void ABISELECT(_ZThn32_N7ee677603barEv,_ZThn20_N7ee677603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677603fooEv,_ZTv0_n16_N7ee677603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677603fooEv,_ZThn20_N7ee677603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67760[0]),
+ (VTBL_ENTRY)&_ZN7ee677603barEv,
+ (VTBL_ENTRY)&_ZN7ee677603fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677603fooEv,_ZTv0_n16_N7ee677603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677603barEv,_ZTv0_n20_N7ee677603barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677603barEv,_ZTv0_n12_N7ee677603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677603fooEv,_ZTv0_n16_N7ee677603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee67760[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee67760[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee67760[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee67760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee67760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee67760[] = {
+ {&(_ZTV7ee67760[4]), 4,19},
+ {&(_tg__ZTV6dd7760__7ee67760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee67760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee67760[4]), 4,6},
+ {&(_ZTV7ee67760[11]), 11,19},
+ {&(_ZTV7ee67760[17]), 17,19},
+ {&(_tg__ZTV5cc760__7ee67760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee67760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67760[];
+extern VTBL_ENTRY _ZTV7ee67760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67760[];
+static VTBL_ENTRY alt_thunk_names464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn20_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn12_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn20_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn12_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677603barEv,_ZTv0_n12_N7ee677603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677603barEv,_ZThn20_N7ee677603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677603barEv,_ZTv0_n20_N7ee677603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677603barEv,_ZThn12_N7ee677603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677603fooEv,_ZTv0_n16_N7ee677603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677603fooEv,_ZThn20_N7ee677603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677603fooEv,_ZThn12_N7ee677603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67760 = { "ee67760", // class name
+ bases_ee67760, 4,
+ &(vtc_ee67760[0]), // expected_vtbl_contents
+ &(vtt_ee67760[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67760),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67760),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67760),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names464,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77760 : virtual dd7760 {
+ int e;
+ virtual void foo(); // _ZN7ee777603fooEv
+ virtual void bar(); // _ZN7ee777603barEv
+ ~ee77760(); // tgen
+ ee77760(); // tgen
+};
+//SIG(1 ee77760) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77760 ::foo(){vfunc_called(this, "_ZN7ee777603fooEv");}
+void ee77760 ::bar(){vfunc_called(this, "_ZN7ee777603barEv");}
+ee77760 ::~ee77760(){ note_dtor("ee77760", this);} // tgen
+ee77760 ::ee77760(){ note_ctor("ee77760", this);} // tgen
+
+static void Test_ee77760()
+{
+ extern Class_Descriptor cd_ee77760;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77760, buf);
+ ee77760 *dp, &lv = *(dp=new (buf) ee77760());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77760)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77760)");
+ check_base_class_offset(lv, (aa0*)(bb60*), ABISELECT(56,28), "ee77760");
+ check_base_class_offset(lv, (bb60*)(cc760*), ABISELECT(48,24), "ee77760");
+ check_base_class_offset(lv, (cc760*)(dd7760*), ABISELECT(32,16), "ee77760");
+ check_base_class_offset(lv, (dd7760*), ABISELECT(16,8), "ee77760");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77760.e");
+ test_class_info(&lv, &cd_ee77760);
+ dp->~ee77760();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77760(Test_ee77760, "ee77760", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77760C1Ev();
+extern void _ZN7ee77760D1Ev();
+Name_Map name_map_ee77760[] = {
+ NSPAIR(_ZN7ee77760C1Ev),
+ NSPAIR(_ZN7ee77760D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_cc760;
+extern VTBL_ENTRY _ZTI5cc760[];
+extern VTBL_ENTRY _ZTV5cc760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc760[];
+extern Class_Descriptor cd_dd7760;
+extern VTBL_ENTRY _ZTI6dd7760[];
+extern VTBL_ENTRY _ZTV6dd7760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7760[];
+static Base_Class bases_ee77760[] = {
+ // 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_bb60, 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
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc760, 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_dd7760, 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 _ZTI7ee77760[];
+extern void _ZN7ee777603fooEv();
+extern void _ZN7ee777603barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777603barEv,_ZTv0_n20_N7ee777603barEv)();
+extern void ABISELECT(_ZThn16_N7ee777603barEv,_ZThn8_N7ee777603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777603fooEv,_ZTv0_n24_N7ee777603fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777603fooEv,_ZThn8_N7ee777603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777603fooEv,_ZTv0_n16_N7ee777603fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777603fooEv,_ZThn16_N7ee777603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777603barEv,_ZTv0_n20_N7ee777603barEv)();
+extern void ABISELECT(_ZThn32_N7ee777603barEv,_ZThn16_N7ee777603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777603barEv,_ZTv0_n12_N7ee777603barEv)();
+extern void ABISELECT(_ZThn48_N7ee777603barEv,_ZThn24_N7ee777603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777603fooEv,_ZTv0_n16_N7ee777603fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777603fooEv,_ZThn24_N7ee777603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77760[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77760[0]),
+ (VTBL_ENTRY)&_ZN7ee777603fooEv,
+ (VTBL_ENTRY)&_ZN7ee777603barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777603barEv,_ZTv0_n20_N7ee777603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777603fooEv,_ZTv0_n24_N7ee777603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777603fooEv,_ZTv0_n16_N7ee777603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777603barEv,_ZTv0_n20_N7ee777603barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777603barEv,_ZTv0_n12_N7ee777603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777603fooEv,_ZTv0_n16_N7ee777603fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77760[];
+extern void _ZN6dd77603barEv();
+extern void _ZN6dd77603fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7760__7ee77760[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&_ZN6dd77603barEv,
+ (VTBL_ENTRY)&_ZN6dd77603fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv)();
+extern void ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc760__6dd7760__7ee77760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv)();
+extern void ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__6dd7760__7ee77760[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv),
+};
+extern void _ZN5cc7603fooEv();
+extern void _ZN5cc7603barEv();
+static VTBL_ENTRY _tg__ZTV5cc760__7ee77760[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&_ZN5cc7603fooEv,
+ (VTBL_ENTRY)&_ZN5cc7603barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv)();
+extern void ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb60__5cc760__7ee77760[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc760[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv),
+};
+static VTT_ENTRY vtt_ee77760[] = {
+ {&(_ZTV7ee77760[5]), 5,28},
+ {&(_ZTV7ee77760[13]), 13,28},
+ {&(_ZTV7ee77760[20]), 20,28},
+ {&(_ZTV7ee77760[26]), 26,28},
+ {&(_tg__ZTV6dd7760__7ee77760[4]), 4,6},
+ {&(_tg__ZTV5cc760__6dd7760__7ee77760[5]), 5,7},
+ {&(_tg__ZTV4bb60__6dd7760__7ee77760[4]), 4,6},
+ {&(_tg__ZTV5cc760__7ee77760[3]), 3,5},
+ {&(_tg__ZTV4bb60__5cc760__7ee77760[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77760[];
+extern VTBL_ENTRY _ZTV7ee77760[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77760[];
+static VTBL_ENTRY alt_thunk_names465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7603fooEv,_ZTv0_n16_N5cc7603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603fooEv,_ZThn8_N5cc7603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7603barEv,_ZTv0_n12_N5cc7603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7603barEv,_ZThn8_N5cc7603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77603barEv,_ZTv0_n12_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603barEv,_ZThn16_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77603barEv,_ZTv0_n20_N6dd77603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603barEv,_ZThn8_N6dd77603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77603fooEv,_ZTv0_n16_N6dd77603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77603fooEv,_ZThn16_N6dd77603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77603fooEv,_ZThn8_N6dd77603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777603barEv,_ZTv0_n12_N7ee777603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777603barEv,_ZThn24_N7ee777603barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777603fooEv,_ZTv0_n16_N7ee777603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777603fooEv,_ZThn24_N7ee777603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777603fooEv,_ZThn16_N7ee777603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777603fooEv,_ZTv0_n24_N7ee777603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777603fooEv,_ZThn8_N7ee777603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777603barEv,_ZTv0_n20_N7ee777603barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777603barEv,_ZThn16_N7ee777603barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777603barEv,_ZThn8_N7ee777603barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77760 = { "ee77760", // class name
+ bases_ee77760, 4,
+ &(vtc_ee77760[0]), // expected_vtbl_contents
+ &(vtt_ee77760[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77760),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77760),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77760),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names465,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb61 : aa1 {
+ int b;
+ virtual void bar(); // _ZN4bb613barEv
+ virtual void foo(); // _ZN4bb613fooEv
+ ~bb61(); // tgen
+ bb61(); // tgen
+};
+//SIG(-1 bb61) C1{ BC2{ v2 Fi} v1 v2 Fi}
+
+
+void bb61 ::bar(){vfunc_called(this, "_ZN4bb613barEv");}
+void bb61 ::foo(){vfunc_called(this, "_ZN4bb613fooEv");}
+bb61 ::~bb61(){ note_dtor("bb61", this);} // tgen
+bb61 ::bb61(){ note_ctor("bb61", this);} // tgen
+
+static void Test_bb61()
+{
+ extern Class_Descriptor cd_bb61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb61, buf);
+ bb61 *dp, &lv = *(dp=new (buf) bb61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb61)");
+ check_base_class_offset(lv, (aa1*), 0, "bb61");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb61.b");
+ test_class_info(&lv, &cd_bb61);
+ dp->~bb61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb61(Test_bb61, "bb61", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb61C1Ev();
+extern void _ZN4bb61D1Ev();
+Name_Map name_map_bb61[] = {
+ NSPAIR(_ZN4bb61C1Ev),
+ NSPAIR(_ZN4bb61D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+static Base_Class bases_bb61[] = {
+ // 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 _ZTI4bb61[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_bb61[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb61[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+Class_Descriptor cd_bb61 = { "bb61", // class name
+ bases_bb61, 1,
+ &(vtc_bb61[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb61),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb61),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 cc061 : bb61 {
+ int c;
+ ~cc061(); // tgen
+ cc061(); // tgen
+};
+//SIG(-1 cc061) C1{ BC2{ BC3{ v2 Fi} v1 v2 Fi} Fi}
+
+
+cc061 ::~cc061(){ note_dtor("cc061", this);} // tgen
+cc061 ::cc061(){ note_ctor("cc061", this);} // tgen
+
+static void Test_cc061()
+{
+ extern Class_Descriptor cd_cc061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc061, buf);
+ cc061 *dp, &lv = *(dp=new (buf) cc061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc061)");
+ check_base_class_offset(lv, (aa1*)(bb61*), 0, "cc061");
+ check_base_class_offset(lv, (bb61*), 0, "cc061");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc061.c");
+ test_class_info(&lv, &cd_cc061);
+ dp->~cc061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc061(Test_cc061, "cc061", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc061C1Ev();
+extern void _ZN5cc061D1Ev();
+Name_Map name_map_cc061[] = {
+ NSPAIR(_ZN5cc061C1Ev),
+ NSPAIR(_ZN5cc061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc061[] = {
+ // 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_bb61, 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 _ZTI5cc061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_cc061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+Class_Descriptor cd_cc061 = { "cc061", // class name
+ bases_cc061, 2,
+ &(vtc_cc061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc061),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 dd0061 : cc061 {
+ int d;
+ ~dd0061(); // tgen
+ dd0061(); // tgen
+};
+//SIG(-1 dd0061) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0061 ::~dd0061(){ note_dtor("dd0061", this);} // tgen
+dd0061 ::dd0061(){ note_ctor("dd0061", this);} // tgen
+
+static void Test_dd0061()
+{
+ extern Class_Descriptor cd_dd0061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0061, buf);
+ dd0061 *dp, &lv = *(dp=new (buf) dd0061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), 0, "dd0061");
+ check_base_class_offset(lv, (bb61*)(cc061*), 0, "dd0061");
+ check_base_class_offset(lv, (cc061*), 0, "dd0061");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0061.d");
+ test_class_info(&lv, &cd_dd0061);
+ dp->~dd0061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0061(Test_dd0061, "dd0061", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0061C1Ev();
+extern void _ZN6dd0061D1Ev();
+Name_Map name_map_dd0061[] = {
+ NSPAIR(_ZN6dd0061C1Ev),
+ NSPAIR(_ZN6dd0061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd0061[] = {
+ // 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_bb61, 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_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd0061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+Class_Descriptor cd_dd0061 = { "dd0061", // class name
+ bases_dd0061, 3,
+ &(vtc_dd0061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0061),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 ee00061 : dd0061 {
+ int e;
+ ~ee00061(); // tgen
+ ee00061(); // tgen
+};
+//SIG(1 ee00061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00061 ::~ee00061(){ note_dtor("ee00061", this);} // tgen
+ee00061 ::ee00061(){ note_ctor("ee00061", this);} // tgen
+
+static void Test_ee00061()
+{
+ extern Class_Descriptor cd_ee00061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00061, buf);
+ ee00061 *dp, &lv = *(dp=new (buf) ee00061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), 0, "ee00061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), 0, "ee00061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), 0, "ee00061");
+ check_base_class_offset(lv, (dd0061*), 0, "ee00061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00061.e");
+ test_class_info(&lv, &cd_ee00061);
+ dp->~ee00061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00061(Test_ee00061, "ee00061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00061C1Ev();
+extern void _ZN7ee00061D1Ev();
+Name_Map name_map_ee00061[] = {
+ NSPAIR(_ZN7ee00061C1Ev),
+ NSPAIR(_ZN7ee00061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee00061[] = {
+ // 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_bb61, 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_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee00061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00061[];
+extern VTBL_ENTRY _ZTV7ee00061[];
+Class_Descriptor cd_ee00061 = { "ee00061", // class name
+ bases_ee00061, 4,
+ &(vtc_ee00061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00061),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 ee10061 : virtual dd0061 {
+ int e;
+ ~ee10061(); // tgen
+ ee10061(); // tgen
+};
+//SIG(1 ee10061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10061 ::~ee10061(){ note_dtor("ee10061", this);} // tgen
+ee10061 ::ee10061(){ note_ctor("ee10061", this);} // tgen
+
+static void Test_ee10061()
+{
+ extern Class_Descriptor cd_ee10061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10061, buf);
+ ee10061 *dp, &lv = *(dp=new (buf) ee10061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee10061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee10061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), ABISELECT(16,8), "ee10061");
+ check_base_class_offset(lv, (dd0061*), ABISELECT(16,8), "ee10061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10061.e");
+ test_class_info(&lv, &cd_ee10061);
+ dp->~ee10061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10061(Test_ee10061, "ee10061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10061C1Ev();
+extern void _ZN7ee10061D1Ev();
+Name_Map name_map_ee10061[] = {
+ NSPAIR(_ZN7ee10061C1Ev),
+ NSPAIR(_ZN7ee10061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee10061[] = {
+ // 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_bb61, 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_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 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 _ZTI7ee10061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee10061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10061[];
+static VTT_ENTRY vtt_ee10061[] = {
+ {&(_ZTV7ee10061[3]), 3,9},
+ {&(_ZTV7ee10061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10061[];
+extern VTBL_ENTRY _ZTV7ee10061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10061[];
+Class_Descriptor cd_ee10061 = { "ee10061", // class name
+ bases_ee10061, 4,
+ &(vtc_ee10061[0]), // expected_vtbl_contents
+ &(vtt_ee10061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10061),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 ee20061 : dd0061 {
+ int e;
+ virtual void foo(); // _ZN7ee200613fooEv
+ ~ee20061(); // tgen
+ ee20061(); // tgen
+};
+//SIG(1 ee20061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20061 ::foo(){vfunc_called(this, "_ZN7ee200613fooEv");}
+ee20061 ::~ee20061(){ note_dtor("ee20061", this);} // tgen
+ee20061 ::ee20061(){ note_ctor("ee20061", this);} // tgen
+
+static void Test_ee20061()
+{
+ extern Class_Descriptor cd_ee20061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20061, buf);
+ ee20061 *dp, &lv = *(dp=new (buf) ee20061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), 0, "ee20061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), 0, "ee20061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), 0, "ee20061");
+ check_base_class_offset(lv, (dd0061*), 0, "ee20061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20061.e");
+ test_class_info(&lv, &cd_ee20061);
+ dp->~ee20061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20061(Test_ee20061, "ee20061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20061C1Ev();
+extern void _ZN7ee20061D1Ev();
+Name_Map name_map_ee20061[] = {
+ NSPAIR(_ZN7ee20061C1Ev),
+ NSPAIR(_ZN7ee20061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee20061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20061[];
+extern void _ZN7ee200613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee20061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20061[0]),
+ (VTBL_ENTRY)&_ZN7ee200613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20061[];
+extern VTBL_ENTRY _ZTV7ee20061[];
+Class_Descriptor cd_ee20061 = { "ee20061", // class name
+ bases_ee20061, 4,
+ &(vtc_ee20061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20061),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 ee30061 : virtual dd0061 {
+ int e;
+ virtual void foo(); // _ZN7ee300613fooEv
+ ~ee30061(); // tgen
+ ee30061(); // tgen
+};
+//SIG(1 ee30061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30061 ::foo(){vfunc_called(this, "_ZN7ee300613fooEv");}
+ee30061 ::~ee30061(){ note_dtor("ee30061", this);} // tgen
+ee30061 ::ee30061(){ note_ctor("ee30061", this);} // tgen
+
+static void Test_ee30061()
+{
+ extern Class_Descriptor cd_ee30061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30061, buf);
+ ee30061 *dp, &lv = *(dp=new (buf) ee30061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee30061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee30061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), ABISELECT(16,8), "ee30061");
+ check_base_class_offset(lv, (dd0061*), ABISELECT(16,8), "ee30061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30061.e");
+ test_class_info(&lv, &cd_ee30061);
+ dp->~ee30061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30061(Test_ee30061, "ee30061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30061C1Ev();
+extern void _ZN7ee30061D1Ev();
+Name_Map name_map_ee30061[] = {
+ NSPAIR(_ZN7ee30061C1Ev),
+ NSPAIR(_ZN7ee30061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee30061[] = {
+ // 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_bb61, 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_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 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 _ZTI7ee30061[];
+extern void _ZN7ee300613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300613fooEv,_ZTv0_n12_N7ee300613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300613fooEv,_ZThn8_N7ee300613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee30061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30061[0]),
+ (VTBL_ENTRY)&_ZN7ee300613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300613fooEv,_ZTv0_n12_N7ee300613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30061[];
+static VTT_ENTRY vtt_ee30061[] = {
+ {&(_ZTV7ee30061[3]), 3,10},
+ {&(_ZTV7ee30061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30061[];
+extern VTBL_ENTRY _ZTV7ee30061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30061[];
+static VTBL_ENTRY alt_thunk_names466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300613fooEv,_ZTv0_n12_N7ee300613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300613fooEv,_ZThn8_N7ee300613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30061 = { "ee30061", // class name
+ bases_ee30061, 4,
+ &(vtc_ee30061[0]), // expected_vtbl_contents
+ &(vtt_ee30061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30061),2, //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 ee40061 : dd0061 {
+ int e;
+ virtual void bar(); // _ZN7ee400613barEv
+ ~ee40061(); // tgen
+ ee40061(); // tgen
+};
+//SIG(1 ee40061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40061 ::bar(){vfunc_called(this, "_ZN7ee400613barEv");}
+ee40061 ::~ee40061(){ note_dtor("ee40061", this);} // tgen
+ee40061 ::ee40061(){ note_ctor("ee40061", this);} // tgen
+
+static void Test_ee40061()
+{
+ extern Class_Descriptor cd_ee40061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40061, buf);
+ ee40061 *dp, &lv = *(dp=new (buf) ee40061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), 0, "ee40061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), 0, "ee40061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), 0, "ee40061");
+ check_base_class_offset(lv, (dd0061*), 0, "ee40061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40061.e");
+ test_class_info(&lv, &cd_ee40061);
+ dp->~ee40061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40061(Test_ee40061, "ee40061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40061C1Ev();
+extern void _ZN7ee40061D1Ev();
+Name_Map name_map_ee40061[] = {
+ NSPAIR(_ZN7ee40061C1Ev),
+ NSPAIR(_ZN7ee40061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee40061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN7ee400613barEv();
+static VTBL_ENTRY vtc_ee40061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN7ee400613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40061[];
+extern VTBL_ENTRY _ZTV7ee40061[];
+Class_Descriptor cd_ee40061 = { "ee40061", // class name
+ bases_ee40061, 4,
+ &(vtc_ee40061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40061),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 ee50061 : virtual dd0061 {
+ int e;
+ virtual void bar(); // _ZN7ee500613barEv
+ ~ee50061(); // tgen
+ ee50061(); // tgen
+};
+//SIG(1 ee50061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50061 ::bar(){vfunc_called(this, "_ZN7ee500613barEv");}
+ee50061 ::~ee50061(){ note_dtor("ee50061", this);} // tgen
+ee50061 ::ee50061(){ note_ctor("ee50061", this);} // tgen
+
+static void Test_ee50061()
+{
+ extern Class_Descriptor cd_ee50061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50061, buf);
+ ee50061 *dp, &lv = *(dp=new (buf) ee50061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee50061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee50061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), ABISELECT(16,8), "ee50061");
+ check_base_class_offset(lv, (dd0061*), ABISELECT(16,8), "ee50061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50061.e");
+ test_class_info(&lv, &cd_ee50061);
+ dp->~ee50061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50061(Test_ee50061, "ee50061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50061C1Ev();
+extern void _ZN7ee50061D1Ev();
+Name_Map name_map_ee50061[] = {
+ NSPAIR(_ZN7ee50061C1Ev),
+ NSPAIR(_ZN7ee50061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee50061[] = {
+ // 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_bb61, 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_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 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 _ZTI7ee50061[];
+extern void _ZN7ee500613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500613barEv,_ZTv0_n16_N7ee500613barEv)();
+extern void ABISELECT(_ZThn16_N7ee500613barEv,_ZThn8_N7ee500613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50061[0]),
+ (VTBL_ENTRY)&_ZN7ee500613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500613barEv,_ZTv0_n16_N7ee500613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50061[];
+static VTT_ENTRY vtt_ee50061[] = {
+ {&(_ZTV7ee50061[3]), 3,10},
+ {&(_ZTV7ee50061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50061[];
+extern VTBL_ENTRY _ZTV7ee50061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50061[];
+static VTBL_ENTRY alt_thunk_names467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500613barEv,_ZTv0_n16_N7ee500613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500613barEv,_ZThn8_N7ee500613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50061 = { "ee50061", // class name
+ bases_ee50061, 4,
+ &(vtc_ee50061[0]), // expected_vtbl_contents
+ &(vtt_ee50061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50061),2, //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 ee60061 : dd0061 {
+ int e;
+ virtual void foo(); // _ZN7ee600613fooEv
+ virtual void bar(); // _ZN7ee600613barEv
+ ~ee60061(); // tgen
+ ee60061(); // tgen
+};
+//SIG(1 ee60061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60061 ::foo(){vfunc_called(this, "_ZN7ee600613fooEv");}
+void ee60061 ::bar(){vfunc_called(this, "_ZN7ee600613barEv");}
+ee60061 ::~ee60061(){ note_dtor("ee60061", this);} // tgen
+ee60061 ::ee60061(){ note_ctor("ee60061", this);} // tgen
+
+static void Test_ee60061()
+{
+ extern Class_Descriptor cd_ee60061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60061, buf);
+ ee60061 *dp, &lv = *(dp=new (buf) ee60061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), 0, "ee60061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), 0, "ee60061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), 0, "ee60061");
+ check_base_class_offset(lv, (dd0061*), 0, "ee60061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60061.e");
+ test_class_info(&lv, &cd_ee60061);
+ dp->~ee60061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60061(Test_ee60061, "ee60061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60061C1Ev();
+extern void _ZN7ee60061D1Ev();
+Name_Map name_map_ee60061[] = {
+ NSPAIR(_ZN7ee60061C1Ev),
+ NSPAIR(_ZN7ee60061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee60061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60061[];
+extern void _ZN7ee600613fooEv();
+extern void _ZN7ee600613barEv();
+static VTBL_ENTRY vtc_ee60061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60061[0]),
+ (VTBL_ENTRY)&_ZN7ee600613fooEv,
+ (VTBL_ENTRY)&_ZN7ee600613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60061[];
+extern VTBL_ENTRY _ZTV7ee60061[];
+Class_Descriptor cd_ee60061 = { "ee60061", // class name
+ bases_ee60061, 4,
+ &(vtc_ee60061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60061),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 ee70061 : virtual dd0061 {
+ int e;
+ virtual void foo(); // _ZN7ee700613fooEv
+ virtual void bar(); // _ZN7ee700613barEv
+ ~ee70061(); // tgen
+ ee70061(); // tgen
+};
+//SIG(1 ee70061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70061 ::foo(){vfunc_called(this, "_ZN7ee700613fooEv");}
+void ee70061 ::bar(){vfunc_called(this, "_ZN7ee700613barEv");}
+ee70061 ::~ee70061(){ note_dtor("ee70061", this);} // tgen
+ee70061 ::ee70061(){ note_ctor("ee70061", this);} // tgen
+
+static void Test_ee70061()
+{
+ extern Class_Descriptor cd_ee70061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70061, buf);
+ ee70061 *dp, &lv = *(dp=new (buf) ee70061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee70061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd0061*), ABISELECT(16,8), "ee70061");
+ check_base_class_offset(lv, (cc061*)(dd0061*), ABISELECT(16,8), "ee70061");
+ check_base_class_offset(lv, (dd0061*), ABISELECT(16,8), "ee70061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70061.e");
+ test_class_info(&lv, &cd_ee70061);
+ dp->~ee70061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70061(Test_ee70061, "ee70061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70061C1Ev();
+extern void _ZN7ee70061D1Ev();
+Name_Map name_map_ee70061[] = {
+ NSPAIR(_ZN7ee70061C1Ev),
+ NSPAIR(_ZN7ee70061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd0061;
+extern VTBL_ENTRY _ZTI6dd0061[];
+extern VTBL_ENTRY _ZTV6dd0061[];
+static Base_Class bases_ee70061[] = {
+ // 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_bb61, 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_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0061, 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 _ZTI7ee70061[];
+extern void _ZN7ee700613fooEv();
+extern void _ZN7ee700613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700613fooEv,_ZTv0_n12_N7ee700613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700613fooEv,_ZThn8_N7ee700613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700613barEv,_ZTv0_n16_N7ee700613barEv)();
+extern void ABISELECT(_ZThn16_N7ee700613barEv,_ZThn8_N7ee700613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70061[0]),
+ (VTBL_ENTRY)&_ZN7ee700613fooEv,
+ (VTBL_ENTRY)&_ZN7ee700613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700613fooEv,_ZTv0_n12_N7ee700613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700613barEv,_ZTv0_n16_N7ee700613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70061[];
+static VTT_ENTRY vtt_ee70061[] = {
+ {&(_ZTV7ee70061[3]), 3,11},
+ {&(_ZTV7ee70061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70061[];
+extern VTBL_ENTRY _ZTV7ee70061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70061[];
+static VTBL_ENTRY alt_thunk_names468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700613barEv,_ZTv0_n16_N7ee700613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700613barEv,_ZThn8_N7ee700613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700613fooEv,_ZTv0_n12_N7ee700613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700613fooEv,_ZThn8_N7ee700613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70061 = { "ee70061", // class name
+ bases_ee70061, 4,
+ &(vtc_ee70061[0]), // expected_vtbl_contents
+ &(vtt_ee70061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70061),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names468,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1061 : virtual cc061 {
+ int d;
+ ~dd1061(); // tgen
+ dd1061(); // tgen
+};
+//SIG(-1 dd1061) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1061 ::~dd1061(){ note_dtor("dd1061", this);} // tgen
+dd1061 ::dd1061(){ note_ctor("dd1061", this);} // tgen
+
+static void Test_dd1061()
+{
+ extern Class_Descriptor cd_dd1061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1061, buf);
+ dd1061 *dp, &lv = *(dp=new (buf) dd1061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,8), "dd1061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,8), "dd1061");
+ check_base_class_offset(lv, (cc061*), ABISELECT(16,8), "dd1061");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1061.d");
+ test_class_info(&lv, &cd_dd1061);
+ dp->~dd1061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1061(Test_dd1061, "dd1061", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1061C1Ev();
+extern void _ZN6dd1061D1Ev();
+Name_Map name_map_dd1061[] = {
+ NSPAIR(_ZN6dd1061C1Ev),
+ NSPAIR(_ZN6dd1061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd1061[] = {
+ // 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_bb61, 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_cc061, 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 _ZTI6dd1061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd1061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1061[];
+static VTT_ENTRY vtt_dd1061[] = {
+ {&(_ZTV6dd1061[3]), 3,9},
+ {&(_ZTV6dd1061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+Class_Descriptor cd_dd1061 = { "dd1061", // class name
+ bases_dd1061, 3,
+ &(vtc_dd1061[0]), // expected_vtbl_contents
+ &(vtt_dd1061[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1061),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 ee01061 : dd1061 {
+ int e;
+ ~ee01061(); // tgen
+ ee01061(); // tgen
+};
+//SIG(1 ee01061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01061 ::~ee01061(){ note_dtor("ee01061", this);} // tgen
+ee01061 ::ee01061(){ note_ctor("ee01061", this);} // tgen
+
+static void Test_ee01061()
+{
+ extern Class_Descriptor cd_ee01061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01061, buf);
+ ee01061 *dp, &lv = *(dp=new (buf) ee01061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee01061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee01061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(16,12), "ee01061");
+ check_base_class_offset(lv, (dd1061*), 0, "ee01061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01061.e");
+ test_class_info(&lv, &cd_ee01061);
+ dp->~ee01061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01061(Test_ee01061, "ee01061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01061C1Ev();
+extern void _ZN7ee01061D1Ev();
+Name_Map name_map_ee01061[] = {
+ NSPAIR(_ZN7ee01061C1Ev),
+ NSPAIR(_ZN7ee01061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee01061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee01061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee01061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee01061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee01061[] = {
+ {&(_ZTV7ee01061[3]), 3,9},
+ {&(_tg__ZTV6dd1061__7ee01061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee01061[4]), 4,6},
+ {&(_ZTV7ee01061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01061[];
+extern VTBL_ENTRY _ZTV7ee01061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01061[];
+Class_Descriptor cd_ee01061 = { "ee01061", // class name
+ bases_ee01061, 4,
+ &(vtc_ee01061[0]), // expected_vtbl_contents
+ &(vtt_ee01061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01061),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 ee11061 : virtual dd1061 {
+ int e;
+ ~ee11061(); // tgen
+ ee11061(); // tgen
+};
+//SIG(1 ee11061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11061 ::~ee11061(){ note_dtor("ee11061", this);} // tgen
+ee11061 ::ee11061(){ note_ctor("ee11061", this);} // tgen
+
+static void Test_ee11061()
+{
+ extern Class_Descriptor cd_ee11061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11061, buf);
+ ee11061 *dp, &lv = *(dp=new (buf) ee11061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee11061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee11061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(32,16), "ee11061");
+ check_base_class_offset(lv, (dd1061*), ABISELECT(16,8), "ee11061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11061.e");
+ test_class_info(&lv, &cd_ee11061);
+ dp->~ee11061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11061(Test_ee11061, "ee11061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11061C1Ev();
+extern void _ZN7ee11061D1Ev();
+Name_Map name_map_ee11061[] = {
+ NSPAIR(_ZN7ee11061C1Ev),
+ NSPAIR(_ZN7ee11061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee11061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 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 _ZTI7ee11061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee11061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11061[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11061[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee11061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee11061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee11061[] = {
+ {&(_ZTV7ee11061[4]), 4,13},
+ {&(_ZTV7ee11061[7]), 7,13},
+ {&(_ZTV7ee11061[11]), 11,13},
+ {&(_tg__ZTV6dd1061__7ee11061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee11061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11061[];
+extern VTBL_ENTRY _ZTV7ee11061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11061[];
+Class_Descriptor cd_ee11061 = { "ee11061", // class name
+ bases_ee11061, 4,
+ &(vtc_ee11061[0]), // expected_vtbl_contents
+ &(vtt_ee11061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11061),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11061),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 ee21061 : dd1061 {
+ int e;
+ virtual void foo(); // _ZN7ee210613fooEv
+ ~ee21061(); // tgen
+ ee21061(); // tgen
+};
+//SIG(1 ee21061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21061 ::foo(){vfunc_called(this, "_ZN7ee210613fooEv");}
+ee21061 ::~ee21061(){ note_dtor("ee21061", this);} // tgen
+ee21061 ::ee21061(){ note_ctor("ee21061", this);} // tgen
+
+static void Test_ee21061()
+{
+ extern Class_Descriptor cd_ee21061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21061, buf);
+ ee21061 *dp, &lv = *(dp=new (buf) ee21061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee21061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee21061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(16,12), "ee21061");
+ check_base_class_offset(lv, (dd1061*), 0, "ee21061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21061.e");
+ test_class_info(&lv, &cd_ee21061);
+ dp->~ee21061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21061(Test_ee21061, "ee21061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21061C1Ev();
+extern void _ZN7ee21061D1Ev();
+Name_Map name_map_ee21061[] = {
+ NSPAIR(_ZN7ee21061C1Ev),
+ NSPAIR(_ZN7ee21061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee21061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21061[];
+extern void _ZN7ee210613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210613fooEv,_ZTv0_n12_N7ee210613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210613fooEv,_ZThn12_N7ee210613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee21061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21061[0]),
+ (VTBL_ENTRY)&_ZN7ee210613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210613fooEv,_ZTv0_n12_N7ee210613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee21061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee21061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee21061[] = {
+ {&(_ZTV7ee21061[3]), 3,10},
+ {&(_tg__ZTV6dd1061__7ee21061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee21061[4]), 4,6},
+ {&(_ZTV7ee21061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21061[];
+extern VTBL_ENTRY _ZTV7ee21061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21061[];
+static VTBL_ENTRY alt_thunk_names469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210613fooEv,_ZTv0_n12_N7ee210613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210613fooEv,_ZThn12_N7ee210613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21061 = { "ee21061", // class name
+ bases_ee21061, 4,
+ &(vtc_ee21061[0]), // expected_vtbl_contents
+ &(vtt_ee21061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21061),4, //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 ee31061 : virtual dd1061 {
+ int e;
+ virtual void foo(); // _ZN7ee310613fooEv
+ ~ee31061(); // tgen
+ ee31061(); // tgen
+};
+//SIG(1 ee31061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31061 ::foo(){vfunc_called(this, "_ZN7ee310613fooEv");}
+ee31061 ::~ee31061(){ note_dtor("ee31061", this);} // tgen
+ee31061 ::ee31061(){ note_ctor("ee31061", this);} // tgen
+
+static void Test_ee31061()
+{
+ extern Class_Descriptor cd_ee31061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31061, buf);
+ ee31061 *dp, &lv = *(dp=new (buf) ee31061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee31061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee31061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(32,16), "ee31061");
+ check_base_class_offset(lv, (dd1061*), ABISELECT(16,8), "ee31061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31061.e");
+ test_class_info(&lv, &cd_ee31061);
+ dp->~ee31061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31061(Test_ee31061, "ee31061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31061C1Ev();
+extern void _ZN7ee31061D1Ev();
+Name_Map name_map_ee31061[] = {
+ NSPAIR(_ZN7ee31061C1Ev),
+ NSPAIR(_ZN7ee31061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee31061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 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 _ZTI7ee31061[];
+extern void _ZN7ee310613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310613fooEv,_ZTv0_n12_N7ee310613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310613fooEv,_ZThn16_N7ee310613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee31061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31061[0]),
+ (VTBL_ENTRY)&_ZN7ee310613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31061[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310613fooEv,_ZTv0_n12_N7ee310613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee31061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee31061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee31061[] = {
+ {&(_ZTV7ee31061[4]), 4,14},
+ {&(_ZTV7ee31061[8]), 8,14},
+ {&(_ZTV7ee31061[12]), 12,14},
+ {&(_tg__ZTV6dd1061__7ee31061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee31061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31061[];
+extern VTBL_ENTRY _ZTV7ee31061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31061[];
+static VTBL_ENTRY alt_thunk_names470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310613fooEv,_ZTv0_n12_N7ee310613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310613fooEv,_ZThn16_N7ee310613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31061 = { "ee31061", // class name
+ bases_ee31061, 4,
+ &(vtc_ee31061[0]), // expected_vtbl_contents
+ &(vtt_ee31061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31061),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31061),5, //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 ee41061 : dd1061 {
+ int e;
+ virtual void bar(); // _ZN7ee410613barEv
+ ~ee41061(); // tgen
+ ee41061(); // tgen
+};
+//SIG(1 ee41061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41061 ::bar(){vfunc_called(this, "_ZN7ee410613barEv");}
+ee41061 ::~ee41061(){ note_dtor("ee41061", this);} // tgen
+ee41061 ::ee41061(){ note_ctor("ee41061", this);} // tgen
+
+static void Test_ee41061()
+{
+ extern Class_Descriptor cd_ee41061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41061, buf);
+ ee41061 *dp, &lv = *(dp=new (buf) ee41061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee41061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee41061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(16,12), "ee41061");
+ check_base_class_offset(lv, (dd1061*), 0, "ee41061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41061.e");
+ test_class_info(&lv, &cd_ee41061);
+ dp->~ee41061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41061(Test_ee41061, "ee41061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41061C1Ev();
+extern void _ZN7ee41061D1Ev();
+Name_Map name_map_ee41061[] = {
+ NSPAIR(_ZN7ee41061C1Ev),
+ NSPAIR(_ZN7ee41061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee41061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41061[];
+extern void _ZN7ee410613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410613barEv,_ZTv0_n16_N7ee410613barEv)();
+extern void ABISELECT(_ZThn16_N7ee410613barEv,_ZThn12_N7ee410613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41061[0]),
+ (VTBL_ENTRY)&_ZN7ee410613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410613barEv,_ZTv0_n16_N7ee410613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee41061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee41061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee41061[] = {
+ {&(_ZTV7ee41061[3]), 3,10},
+ {&(_tg__ZTV6dd1061__7ee41061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee41061[4]), 4,6},
+ {&(_ZTV7ee41061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41061[];
+extern VTBL_ENTRY _ZTV7ee41061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41061[];
+static VTBL_ENTRY alt_thunk_names471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410613barEv,_ZTv0_n16_N7ee410613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410613barEv,_ZThn12_N7ee410613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41061 = { "ee41061", // class name
+ bases_ee41061, 4,
+ &(vtc_ee41061[0]), // expected_vtbl_contents
+ &(vtt_ee41061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51061 : virtual dd1061 {
+ int e;
+ virtual void bar(); // _ZN7ee510613barEv
+ ~ee51061(); // tgen
+ ee51061(); // tgen
+};
+//SIG(1 ee51061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51061 ::bar(){vfunc_called(this, "_ZN7ee510613barEv");}
+ee51061 ::~ee51061(){ note_dtor("ee51061", this);} // tgen
+ee51061 ::ee51061(){ note_ctor("ee51061", this);} // tgen
+
+static void Test_ee51061()
+{
+ extern Class_Descriptor cd_ee51061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51061, buf);
+ ee51061 *dp, &lv = *(dp=new (buf) ee51061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee51061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee51061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(32,16), "ee51061");
+ check_base_class_offset(lv, (dd1061*), ABISELECT(16,8), "ee51061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51061.e");
+ test_class_info(&lv, &cd_ee51061);
+ dp->~ee51061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51061(Test_ee51061, "ee51061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51061C1Ev();
+extern void _ZN7ee51061D1Ev();
+Name_Map name_map_ee51061[] = {
+ NSPAIR(_ZN7ee51061C1Ev),
+ NSPAIR(_ZN7ee51061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee51061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 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 _ZTI7ee51061[];
+extern void _ZN7ee510613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510613barEv,_ZTv0_n16_N7ee510613barEv)();
+extern void ABISELECT(_ZThn32_N7ee510613barEv,_ZThn16_N7ee510613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51061[0]),
+ (VTBL_ENTRY)&_ZN7ee510613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51061[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510613barEv,_ZTv0_n16_N7ee510613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee51061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee51061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee51061[] = {
+ {&(_ZTV7ee51061[4]), 4,14},
+ {&(_ZTV7ee51061[8]), 8,14},
+ {&(_ZTV7ee51061[12]), 12,14},
+ {&(_tg__ZTV6dd1061__7ee51061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee51061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51061[];
+extern VTBL_ENTRY _ZTV7ee51061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51061[];
+static VTBL_ENTRY alt_thunk_names472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510613barEv,_ZTv0_n16_N7ee510613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510613barEv,_ZThn16_N7ee510613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51061 = { "ee51061", // class name
+ bases_ee51061, 4,
+ &(vtc_ee51061[0]), // expected_vtbl_contents
+ &(vtt_ee51061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51061),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names472,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61061 : dd1061 {
+ int e;
+ virtual void foo(); // _ZN7ee610613fooEv
+ virtual void bar(); // _ZN7ee610613barEv
+ ~ee61061(); // tgen
+ ee61061(); // tgen
+};
+//SIG(1 ee61061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61061 ::foo(){vfunc_called(this, "_ZN7ee610613fooEv");}
+void ee61061 ::bar(){vfunc_called(this, "_ZN7ee610613barEv");}
+ee61061 ::~ee61061(){ note_dtor("ee61061", this);} // tgen
+ee61061 ::ee61061(){ note_ctor("ee61061", this);} // tgen
+
+static void Test_ee61061()
+{
+ extern Class_Descriptor cd_ee61061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61061, buf);
+ ee61061 *dp, &lv = *(dp=new (buf) ee61061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee61061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee61061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(16,12), "ee61061");
+ check_base_class_offset(lv, (dd1061*), 0, "ee61061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61061.e");
+ test_class_info(&lv, &cd_ee61061);
+ dp->~ee61061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61061(Test_ee61061, "ee61061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61061C1Ev();
+extern void _ZN7ee61061D1Ev();
+Name_Map name_map_ee61061[] = {
+ NSPAIR(_ZN7ee61061C1Ev),
+ NSPAIR(_ZN7ee61061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee61061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61061[];
+extern void _ZN7ee610613fooEv();
+extern void _ZN7ee610613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610613fooEv,_ZTv0_n12_N7ee610613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610613fooEv,_ZThn12_N7ee610613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610613barEv,_ZTv0_n16_N7ee610613barEv)();
+extern void ABISELECT(_ZThn16_N7ee610613barEv,_ZThn12_N7ee610613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61061[0]),
+ (VTBL_ENTRY)&_ZN7ee610613fooEv,
+ (VTBL_ENTRY)&_ZN7ee610613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610613fooEv,_ZTv0_n12_N7ee610613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610613barEv,_ZTv0_n16_N7ee610613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee61061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee61061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee61061[] = {
+ {&(_ZTV7ee61061[3]), 3,11},
+ {&(_tg__ZTV6dd1061__7ee61061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee61061[4]), 4,6},
+ {&(_ZTV7ee61061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61061[];
+extern VTBL_ENTRY _ZTV7ee61061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61061[];
+static VTBL_ENTRY alt_thunk_names473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610613barEv,_ZTv0_n16_N7ee610613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610613barEv,_ZThn12_N7ee610613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610613fooEv,_ZTv0_n12_N7ee610613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610613fooEv,_ZThn12_N7ee610613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61061 = { "ee61061", // class name
+ bases_ee61061, 4,
+ &(vtc_ee61061[0]), // expected_vtbl_contents
+ &(vtt_ee61061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names473,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71061 : virtual dd1061 {
+ int e;
+ virtual void foo(); // _ZN7ee710613fooEv
+ virtual void bar(); // _ZN7ee710613barEv
+ ~ee71061(); // tgen
+ ee71061(); // tgen
+};
+//SIG(1 ee71061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71061 ::foo(){vfunc_called(this, "_ZN7ee710613fooEv");}
+void ee71061 ::bar(){vfunc_called(this, "_ZN7ee710613barEv");}
+ee71061 ::~ee71061(){ note_dtor("ee71061", this);} // tgen
+ee71061 ::ee71061(){ note_ctor("ee71061", this);} // tgen
+
+static void Test_ee71061()
+{
+ extern Class_Descriptor cd_ee71061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71061, buf);
+ ee71061 *dp, &lv = *(dp=new (buf) ee71061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee71061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee71061");
+ check_base_class_offset(lv, (cc061*)(dd1061*), ABISELECT(32,16), "ee71061");
+ check_base_class_offset(lv, (dd1061*), ABISELECT(16,8), "ee71061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71061.e");
+ test_class_info(&lv, &cd_ee71061);
+ dp->~ee71061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71061(Test_ee71061, "ee71061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71061C1Ev();
+extern void _ZN7ee71061D1Ev();
+Name_Map name_map_ee71061[] = {
+ NSPAIR(_ZN7ee71061C1Ev),
+ NSPAIR(_ZN7ee71061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd1061;
+extern VTBL_ENTRY _ZTI6dd1061[];
+extern VTBL_ENTRY _ZTV6dd1061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1061[];
+static Base_Class bases_ee71061[] = {
+ // 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_bb61, 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_cc061, 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_dd1061, 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 _ZTI7ee71061[];
+extern void _ZN7ee710613fooEv();
+extern void _ZN7ee710613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710613fooEv,_ZTv0_n12_N7ee710613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710613fooEv,_ZThn16_N7ee710613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710613barEv,_ZTv0_n16_N7ee710613barEv)();
+extern void ABISELECT(_ZThn32_N7ee710613barEv,_ZThn16_N7ee710613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71061[0]),
+ (VTBL_ENTRY)&_ZN7ee710613fooEv,
+ (VTBL_ENTRY)&_ZN7ee710613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71061[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710613fooEv,_ZTv0_n12_N7ee710613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710613barEv,_ZTv0_n16_N7ee710613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71061[];
+static VTBL_ENTRY _tg__ZTV6dd1061__7ee71061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd1061__7ee71061[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee71061[] = {
+ {&(_ZTV7ee71061[4]), 4,15},
+ {&(_ZTV7ee71061[9]), 9,15},
+ {&(_ZTV7ee71061[13]), 13,15},
+ {&(_tg__ZTV6dd1061__7ee71061[3]), 3,3},
+ {&(_tg__ZTV4bb615cc061__6dd1061__7ee71061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71061[];
+extern VTBL_ENTRY _ZTV7ee71061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71061[];
+static VTBL_ENTRY alt_thunk_names474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710613barEv,_ZTv0_n16_N7ee710613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710613barEv,_ZThn16_N7ee710613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710613fooEv,_ZTv0_n12_N7ee710613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710613fooEv,_ZThn16_N7ee710613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71061 = { "ee71061", // class name
+ bases_ee71061, 4,
+ &(vtc_ee71061[0]), // expected_vtbl_contents
+ &(vtt_ee71061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71061),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names474,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2061 : cc061 {
+ int d;
+ virtual void foo(); // _ZN6dd20613fooEv
+ ~dd2061(); // tgen
+ dd2061(); // tgen
+};
+//SIG(-1 dd2061) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2061 ::foo(){vfunc_called(this, "_ZN6dd20613fooEv");}
+dd2061 ::~dd2061(){ note_dtor("dd2061", this);} // tgen
+dd2061 ::dd2061(){ note_ctor("dd2061", this);} // tgen
+
+static void Test_dd2061()
+{
+ extern Class_Descriptor cd_dd2061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2061, buf);
+ dd2061 *dp, &lv = *(dp=new (buf) dd2061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), 0, "dd2061");
+ check_base_class_offset(lv, (bb61*)(cc061*), 0, "dd2061");
+ check_base_class_offset(lv, (cc061*), 0, "dd2061");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2061.d");
+ test_class_info(&lv, &cd_dd2061);
+ dp->~dd2061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2061(Test_dd2061, "dd2061", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2061C1Ev();
+extern void _ZN6dd2061D1Ev();
+Name_Map name_map_dd2061[] = {
+ NSPAIR(_ZN6dd2061C1Ev),
+ NSPAIR(_ZN6dd2061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd2061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2061[];
+extern void _ZN6dd20613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd2061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2061[0]),
+ (VTBL_ENTRY)&_ZN6dd20613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+Class_Descriptor cd_dd2061 = { "dd2061", // class name
+ bases_dd2061, 3,
+ &(vtc_dd2061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2061),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 ee02061 : dd2061 {
+ int e;
+ ~ee02061(); // tgen
+ ee02061(); // tgen
+};
+//SIG(1 ee02061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02061 ::~ee02061(){ note_dtor("ee02061", this);} // tgen
+ee02061 ::ee02061(){ note_ctor("ee02061", this);} // tgen
+
+static void Test_ee02061()
+{
+ extern Class_Descriptor cd_ee02061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02061, buf);
+ ee02061 *dp, &lv = *(dp=new (buf) ee02061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), 0, "ee02061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), 0, "ee02061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), 0, "ee02061");
+ check_base_class_offset(lv, (dd2061*), 0, "ee02061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02061.e");
+ test_class_info(&lv, &cd_ee02061);
+ dp->~ee02061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02061(Test_ee02061, "ee02061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02061C1Ev();
+extern void _ZN7ee02061D1Ev();
+Name_Map name_map_ee02061[] = {
+ NSPAIR(_ZN7ee02061C1Ev),
+ NSPAIR(_ZN7ee02061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee02061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, 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 _ZTI7ee02061[];
+extern void _ZN6dd20613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee02061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02061[0]),
+ (VTBL_ENTRY)&_ZN6dd20613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02061[];
+extern VTBL_ENTRY _ZTV7ee02061[];
+Class_Descriptor cd_ee02061 = { "ee02061", // class name
+ bases_ee02061, 4,
+ &(vtc_ee02061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02061),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 ee12061 : virtual dd2061 {
+ int e;
+ ~ee12061(); // tgen
+ ee12061(); // tgen
+};
+//SIG(1 ee12061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12061 ::~ee12061(){ note_dtor("ee12061", this);} // tgen
+ee12061 ::ee12061(){ note_ctor("ee12061", this);} // tgen
+
+static void Test_ee12061()
+{
+ extern Class_Descriptor cd_ee12061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12061, buf);
+ ee12061 *dp, &lv = *(dp=new (buf) ee12061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee12061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee12061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), ABISELECT(16,8), "ee12061");
+ check_base_class_offset(lv, (dd2061*), ABISELECT(16,8), "ee12061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12061.e");
+ test_class_info(&lv, &cd_ee12061);
+ dp->~ee12061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12061(Test_ee12061, "ee12061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12061C1Ev();
+extern void _ZN7ee12061D1Ev();
+Name_Map name_map_ee12061[] = {
+ NSPAIR(_ZN7ee12061C1Ev),
+ NSPAIR(_ZN7ee12061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee12061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, 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 _ZTI7ee12061[];
+extern void _ZN6dd20613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee12061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12061[0]),
+ (VTBL_ENTRY)&_ZN6dd20613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12061[];
+static VTT_ENTRY vtt_ee12061[] = {
+ {&(_ZTV7ee12061[3]), 3,9},
+ {&(_ZTV7ee12061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12061[];
+extern VTBL_ENTRY _ZTV7ee12061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12061[];
+Class_Descriptor cd_ee12061 = { "ee12061", // class name
+ bases_ee12061, 4,
+ &(vtc_ee12061[0]), // expected_vtbl_contents
+ &(vtt_ee12061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12061),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 ee22061 : dd2061 {
+ int e;
+ virtual void foo(); // _ZN7ee220613fooEv
+ ~ee22061(); // tgen
+ ee22061(); // tgen
+};
+//SIG(1 ee22061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22061 ::foo(){vfunc_called(this, "_ZN7ee220613fooEv");}
+ee22061 ::~ee22061(){ note_dtor("ee22061", this);} // tgen
+ee22061 ::ee22061(){ note_ctor("ee22061", this);} // tgen
+
+static void Test_ee22061()
+{
+ extern Class_Descriptor cd_ee22061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22061, buf);
+ ee22061 *dp, &lv = *(dp=new (buf) ee22061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), 0, "ee22061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), 0, "ee22061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), 0, "ee22061");
+ check_base_class_offset(lv, (dd2061*), 0, "ee22061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22061.e");
+ test_class_info(&lv, &cd_ee22061);
+ dp->~ee22061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22061(Test_ee22061, "ee22061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22061C1Ev();
+extern void _ZN7ee22061D1Ev();
+Name_Map name_map_ee22061[] = {
+ NSPAIR(_ZN7ee22061C1Ev),
+ NSPAIR(_ZN7ee22061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee22061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22061[];
+extern void _ZN7ee220613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee22061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22061[0]),
+ (VTBL_ENTRY)&_ZN7ee220613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22061[];
+extern VTBL_ENTRY _ZTV7ee22061[];
+Class_Descriptor cd_ee22061 = { "ee22061", // class name
+ bases_ee22061, 4,
+ &(vtc_ee22061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22061),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 ee32061 : virtual dd2061 {
+ int e;
+ virtual void foo(); // _ZN7ee320613fooEv
+ ~ee32061(); // tgen
+ ee32061(); // tgen
+};
+//SIG(1 ee32061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32061 ::foo(){vfunc_called(this, "_ZN7ee320613fooEv");}
+ee32061 ::~ee32061(){ note_dtor("ee32061", this);} // tgen
+ee32061 ::ee32061(){ note_ctor("ee32061", this);} // tgen
+
+static void Test_ee32061()
+{
+ extern Class_Descriptor cd_ee32061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32061, buf);
+ ee32061 *dp, &lv = *(dp=new (buf) ee32061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee32061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee32061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), ABISELECT(16,8), "ee32061");
+ check_base_class_offset(lv, (dd2061*), ABISELECT(16,8), "ee32061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32061.e");
+ test_class_info(&lv, &cd_ee32061);
+ dp->~ee32061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32061(Test_ee32061, "ee32061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32061C1Ev();
+extern void _ZN7ee32061D1Ev();
+Name_Map name_map_ee32061[] = {
+ NSPAIR(_ZN7ee32061C1Ev),
+ NSPAIR(_ZN7ee32061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee32061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, ABISELECT(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 _ZTI7ee32061[];
+extern void _ZN7ee320613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320613fooEv,_ZTv0_n12_N7ee320613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320613fooEv,_ZThn8_N7ee320613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee32061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32061[0]),
+ (VTBL_ENTRY)&_ZN7ee320613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320613fooEv,_ZTv0_n12_N7ee320613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32061[];
+static VTT_ENTRY vtt_ee32061[] = {
+ {&(_ZTV7ee32061[3]), 3,10},
+ {&(_ZTV7ee32061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32061[];
+extern VTBL_ENTRY _ZTV7ee32061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32061[];
+static VTBL_ENTRY alt_thunk_names475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320613fooEv,_ZTv0_n12_N7ee320613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320613fooEv,_ZThn8_N7ee320613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32061 = { "ee32061", // class name
+ bases_ee32061, 4,
+ &(vtc_ee32061[0]), // expected_vtbl_contents
+ &(vtt_ee32061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32061),2, //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 ee42061 : dd2061 {
+ int e;
+ virtual void bar(); // _ZN7ee420613barEv
+ ~ee42061(); // tgen
+ ee42061(); // tgen
+};
+//SIG(1 ee42061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42061 ::bar(){vfunc_called(this, "_ZN7ee420613barEv");}
+ee42061 ::~ee42061(){ note_dtor("ee42061", this);} // tgen
+ee42061 ::ee42061(){ note_ctor("ee42061", this);} // tgen
+
+static void Test_ee42061()
+{
+ extern Class_Descriptor cd_ee42061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42061, buf);
+ ee42061 *dp, &lv = *(dp=new (buf) ee42061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), 0, "ee42061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), 0, "ee42061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), 0, "ee42061");
+ check_base_class_offset(lv, (dd2061*), 0, "ee42061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42061.e");
+ test_class_info(&lv, &cd_ee42061);
+ dp->~ee42061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42061(Test_ee42061, "ee42061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42061C1Ev();
+extern void _ZN7ee42061D1Ev();
+Name_Map name_map_ee42061[] = {
+ NSPAIR(_ZN7ee42061C1Ev),
+ NSPAIR(_ZN7ee42061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee42061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42061[];
+extern void _ZN6dd20613fooEv();
+extern void _ZN7ee420613barEv();
+static VTBL_ENTRY vtc_ee42061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42061[0]),
+ (VTBL_ENTRY)&_ZN6dd20613fooEv,
+ (VTBL_ENTRY)&_ZN7ee420613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42061[];
+extern VTBL_ENTRY _ZTV7ee42061[];
+Class_Descriptor cd_ee42061 = { "ee42061", // class name
+ bases_ee42061, 4,
+ &(vtc_ee42061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42061),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 ee52061 : virtual dd2061 {
+ int e;
+ virtual void bar(); // _ZN7ee520613barEv
+ ~ee52061(); // tgen
+ ee52061(); // tgen
+};
+//SIG(1 ee52061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52061 ::bar(){vfunc_called(this, "_ZN7ee520613barEv");}
+ee52061 ::~ee52061(){ note_dtor("ee52061", this);} // tgen
+ee52061 ::ee52061(){ note_ctor("ee52061", this);} // tgen
+
+static void Test_ee52061()
+{
+ extern Class_Descriptor cd_ee52061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52061, buf);
+ ee52061 *dp, &lv = *(dp=new (buf) ee52061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee52061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee52061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), ABISELECT(16,8), "ee52061");
+ check_base_class_offset(lv, (dd2061*), ABISELECT(16,8), "ee52061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52061.e");
+ test_class_info(&lv, &cd_ee52061);
+ dp->~ee52061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52061(Test_ee52061, "ee52061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52061C1Ev();
+extern void _ZN7ee52061D1Ev();
+Name_Map name_map_ee52061[] = {
+ NSPAIR(_ZN7ee52061C1Ev),
+ NSPAIR(_ZN7ee52061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee52061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, ABISELECT(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 _ZTI7ee52061[];
+extern void _ZN7ee520613barEv();
+extern void _ZN6dd20613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520613barEv,_ZTv0_n16_N7ee520613barEv)();
+extern void ABISELECT(_ZThn16_N7ee520613barEv,_ZThn8_N7ee520613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52061[0]),
+ (VTBL_ENTRY)&_ZN7ee520613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52061[0]),
+ (VTBL_ENTRY)&_ZN6dd20613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520613barEv,_ZTv0_n16_N7ee520613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52061[];
+static VTT_ENTRY vtt_ee52061[] = {
+ {&(_ZTV7ee52061[3]), 3,10},
+ {&(_ZTV7ee52061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52061[];
+extern VTBL_ENTRY _ZTV7ee52061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52061[];
+static VTBL_ENTRY alt_thunk_names476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520613barEv,_ZTv0_n16_N7ee520613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520613barEv,_ZThn8_N7ee520613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52061 = { "ee52061", // class name
+ bases_ee52061, 4,
+ &(vtc_ee52061[0]), // expected_vtbl_contents
+ &(vtt_ee52061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52061),2, //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 ee62061 : dd2061 {
+ int e;
+ virtual void foo(); // _ZN7ee620613fooEv
+ virtual void bar(); // _ZN7ee620613barEv
+ ~ee62061(); // tgen
+ ee62061(); // tgen
+};
+//SIG(1 ee62061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62061 ::foo(){vfunc_called(this, "_ZN7ee620613fooEv");}
+void ee62061 ::bar(){vfunc_called(this, "_ZN7ee620613barEv");}
+ee62061 ::~ee62061(){ note_dtor("ee62061", this);} // tgen
+ee62061 ::ee62061(){ note_ctor("ee62061", this);} // tgen
+
+static void Test_ee62061()
+{
+ extern Class_Descriptor cd_ee62061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62061, buf);
+ ee62061 *dp, &lv = *(dp=new (buf) ee62061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), 0, "ee62061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), 0, "ee62061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), 0, "ee62061");
+ check_base_class_offset(lv, (dd2061*), 0, "ee62061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62061.e");
+ test_class_info(&lv, &cd_ee62061);
+ dp->~ee62061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62061(Test_ee62061, "ee62061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62061C1Ev();
+extern void _ZN7ee62061D1Ev();
+Name_Map name_map_ee62061[] = {
+ NSPAIR(_ZN7ee62061C1Ev),
+ NSPAIR(_ZN7ee62061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee62061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62061[];
+extern void _ZN7ee620613fooEv();
+extern void _ZN7ee620613barEv();
+static VTBL_ENTRY vtc_ee62061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62061[0]),
+ (VTBL_ENTRY)&_ZN7ee620613fooEv,
+ (VTBL_ENTRY)&_ZN7ee620613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62061[];
+extern VTBL_ENTRY _ZTV7ee62061[];
+Class_Descriptor cd_ee62061 = { "ee62061", // class name
+ bases_ee62061, 4,
+ &(vtc_ee62061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62061),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 ee72061 : virtual dd2061 {
+ int e;
+ virtual void foo(); // _ZN7ee720613fooEv
+ virtual void bar(); // _ZN7ee720613barEv
+ ~ee72061(); // tgen
+ ee72061(); // tgen
+};
+//SIG(1 ee72061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72061 ::foo(){vfunc_called(this, "_ZN7ee720613fooEv");}
+void ee72061 ::bar(){vfunc_called(this, "_ZN7ee720613barEv");}
+ee72061 ::~ee72061(){ note_dtor("ee72061", this);} // tgen
+ee72061 ::ee72061(){ note_ctor("ee72061", this);} // tgen
+
+static void Test_ee72061()
+{
+ extern Class_Descriptor cd_ee72061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72061, buf);
+ ee72061 *dp, &lv = *(dp=new (buf) ee72061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee72061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd2061*), ABISELECT(16,8), "ee72061");
+ check_base_class_offset(lv, (cc061*)(dd2061*), ABISELECT(16,8), "ee72061");
+ check_base_class_offset(lv, (dd2061*), ABISELECT(16,8), "ee72061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72061.e");
+ test_class_info(&lv, &cd_ee72061);
+ dp->~ee72061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72061(Test_ee72061, "ee72061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72061C1Ev();
+extern void _ZN7ee72061D1Ev();
+Name_Map name_map_ee72061[] = {
+ NSPAIR(_ZN7ee72061C1Ev),
+ NSPAIR(_ZN7ee72061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd2061;
+extern VTBL_ENTRY _ZTI6dd2061[];
+extern VTBL_ENTRY _ZTV6dd2061[];
+static Base_Class bases_ee72061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2061, ABISELECT(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 _ZTI7ee72061[];
+extern void _ZN7ee720613fooEv();
+extern void _ZN7ee720613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720613fooEv,_ZTv0_n12_N7ee720613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720613fooEv,_ZThn8_N7ee720613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720613barEv,_ZTv0_n16_N7ee720613barEv)();
+extern void ABISELECT(_ZThn16_N7ee720613barEv,_ZThn8_N7ee720613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72061[0]),
+ (VTBL_ENTRY)&_ZN7ee720613fooEv,
+ (VTBL_ENTRY)&_ZN7ee720613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720613fooEv,_ZTv0_n12_N7ee720613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720613barEv,_ZTv0_n16_N7ee720613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72061[];
+static VTT_ENTRY vtt_ee72061[] = {
+ {&(_ZTV7ee72061[3]), 3,11},
+ {&(_ZTV7ee72061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72061[];
+extern VTBL_ENTRY _ZTV7ee72061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72061[];
+static VTBL_ENTRY alt_thunk_names477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720613barEv,_ZTv0_n16_N7ee720613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720613barEv,_ZThn8_N7ee720613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720613fooEv,_ZTv0_n12_N7ee720613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720613fooEv,_ZThn8_N7ee720613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72061 = { "ee72061", // class name
+ bases_ee72061, 4,
+ &(vtc_ee72061[0]), // expected_vtbl_contents
+ &(vtt_ee72061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72061),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names477,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3061 : virtual cc061 {
+ int d;
+ virtual void foo(); // _ZN6dd30613fooEv
+ ~dd3061(); // tgen
+ dd3061(); // tgen
+};
+//SIG(-1 dd3061) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3061 ::foo(){vfunc_called(this, "_ZN6dd30613fooEv");}
+dd3061 ::~dd3061(){ note_dtor("dd3061", this);} // tgen
+dd3061 ::dd3061(){ note_ctor("dd3061", this);} // tgen
+
+static void Test_dd3061()
+{
+ extern Class_Descriptor cd_dd3061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3061, buf);
+ dd3061 *dp, &lv = *(dp=new (buf) dd3061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,8), "dd3061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,8), "dd3061");
+ check_base_class_offset(lv, (cc061*), ABISELECT(16,8), "dd3061");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3061.d");
+ test_class_info(&lv, &cd_dd3061);
+ dp->~dd3061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3061(Test_dd3061, "dd3061", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3061C1Ev();
+extern void _ZN6dd3061D1Ev();
+Name_Map name_map_dd3061[] = {
+ NSPAIR(_ZN6dd3061C1Ev),
+ NSPAIR(_ZN6dd3061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd3061[] = {
+ // 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_bb61, 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_cc061, 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 _ZTI6dd3061[];
+extern void _ZN6dd30613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd3061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3061[];
+static VTT_ENTRY vtt_dd3061[] = {
+ {&(_ZTV6dd3061[3]), 3,10},
+ {&(_ZTV6dd3061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static VTBL_ENTRY alt_thunk_names478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3061 = { "dd3061", // class name
+ bases_dd3061, 3,
+ &(vtc_dd3061[0]), // expected_vtbl_contents
+ &(vtt_dd3061[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3061),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names478,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03061 : dd3061 {
+ int e;
+ ~ee03061(); // tgen
+ ee03061(); // tgen
+};
+//SIG(1 ee03061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03061 ::~ee03061(){ note_dtor("ee03061", this);} // tgen
+ee03061 ::ee03061(){ note_ctor("ee03061", this);} // tgen
+
+static void Test_ee03061()
+{
+ extern Class_Descriptor cd_ee03061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03061, buf);
+ ee03061 *dp, &lv = *(dp=new (buf) ee03061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee03061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee03061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(16,12), "ee03061");
+ check_base_class_offset(lv, (dd3061*), 0, "ee03061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03061.e");
+ test_class_info(&lv, &cd_ee03061);
+ dp->~ee03061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03061(Test_ee03061, "ee03061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03061C1Ev();
+extern void _ZN7ee03061D1Ev();
+Name_Map name_map_ee03061[] = {
+ NSPAIR(_ZN7ee03061C1Ev),
+ NSPAIR(_ZN7ee03061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee03061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03061[];
+extern void _ZN6dd30613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee03061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee03061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee03061[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee03061[] = {
+ {&(_ZTV7ee03061[3]), 3,10},
+ {&(_tg__ZTV6dd3061__7ee03061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee03061[4]), 4,6},
+ {&(_ZTV7ee03061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03061[];
+extern VTBL_ENTRY _ZTV7ee03061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03061[];
+static VTBL_ENTRY alt_thunk_names479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03061 = { "ee03061", // class name
+ bases_ee03061, 4,
+ &(vtc_ee03061[0]), // expected_vtbl_contents
+ &(vtt_ee03061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03061),4, //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 ee13061 : virtual dd3061 {
+ int e;
+ ~ee13061(); // tgen
+ ee13061(); // tgen
+};
+//SIG(1 ee13061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13061 ::~ee13061(){ note_dtor("ee13061", this);} // tgen
+ee13061 ::ee13061(){ note_ctor("ee13061", this);} // tgen
+
+static void Test_ee13061()
+{
+ extern Class_Descriptor cd_ee13061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13061, buf);
+ ee13061 *dp, &lv = *(dp=new (buf) ee13061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee13061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee13061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(32,16), "ee13061");
+ check_base_class_offset(lv, (dd3061*), ABISELECT(16,8), "ee13061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13061.e");
+ test_class_info(&lv, &cd_ee13061);
+ dp->~ee13061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13061(Test_ee13061, "ee13061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13061C1Ev();
+extern void _ZN7ee13061D1Ev();
+Name_Map name_map_ee13061[] = {
+ NSPAIR(_ZN7ee13061C1Ev),
+ NSPAIR(_ZN7ee13061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee13061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, ABISELECT(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 _ZTI7ee13061[];
+extern void _ZN6dd30613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee13061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13061[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee13061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee13061[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee13061[] = {
+ {&(_ZTV7ee13061[4]), 4,15},
+ {&(_ZTV7ee13061[8]), 8,15},
+ {&(_ZTV7ee13061[13]), 13,15},
+ {&(_tg__ZTV6dd3061__7ee13061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee13061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13061[];
+extern VTBL_ENTRY _ZTV7ee13061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13061[];
+static VTBL_ENTRY alt_thunk_names480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13061 = { "ee13061", // class name
+ bases_ee13061, 4,
+ &(vtc_ee13061[0]), // expected_vtbl_contents
+ &(vtt_ee13061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13061),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names480,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23061 : dd3061 {
+ int e;
+ virtual void foo(); // _ZN7ee230613fooEv
+ ~ee23061(); // tgen
+ ee23061(); // tgen
+};
+//SIG(1 ee23061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23061 ::foo(){vfunc_called(this, "_ZN7ee230613fooEv");}
+ee23061 ::~ee23061(){ note_dtor("ee23061", this);} // tgen
+ee23061 ::ee23061(){ note_ctor("ee23061", this);} // tgen
+
+static void Test_ee23061()
+{
+ extern Class_Descriptor cd_ee23061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23061, buf);
+ ee23061 *dp, &lv = *(dp=new (buf) ee23061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee23061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee23061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(16,12), "ee23061");
+ check_base_class_offset(lv, (dd3061*), 0, "ee23061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23061.e");
+ test_class_info(&lv, &cd_ee23061);
+ dp->~ee23061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23061(Test_ee23061, "ee23061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23061C1Ev();
+extern void _ZN7ee23061D1Ev();
+Name_Map name_map_ee23061[] = {
+ NSPAIR(_ZN7ee23061C1Ev),
+ NSPAIR(_ZN7ee23061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee23061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23061[];
+extern void _ZN7ee230613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230613fooEv,_ZTv0_n12_N7ee230613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230613fooEv,_ZThn12_N7ee230613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee23061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23061[0]),
+ (VTBL_ENTRY)&_ZN7ee230613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230613fooEv,_ZTv0_n12_N7ee230613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee23061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee23061[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee23061[] = {
+ {&(_ZTV7ee23061[3]), 3,10},
+ {&(_tg__ZTV6dd3061__7ee23061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee23061[4]), 4,6},
+ {&(_ZTV7ee23061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23061[];
+extern VTBL_ENTRY _ZTV7ee23061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23061[];
+static VTBL_ENTRY alt_thunk_names481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230613fooEv,_ZTv0_n12_N7ee230613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230613fooEv,_ZThn12_N7ee230613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23061 = { "ee23061", // class name
+ bases_ee23061, 4,
+ &(vtc_ee23061[0]), // expected_vtbl_contents
+ &(vtt_ee23061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names481,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33061 : virtual dd3061 {
+ int e;
+ virtual void foo(); // _ZN7ee330613fooEv
+ ~ee33061(); // tgen
+ ee33061(); // tgen
+};
+//SIG(1 ee33061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33061 ::foo(){vfunc_called(this, "_ZN7ee330613fooEv");}
+ee33061 ::~ee33061(){ note_dtor("ee33061", this);} // tgen
+ee33061 ::ee33061(){ note_ctor("ee33061", this);} // tgen
+
+static void Test_ee33061()
+{
+ extern Class_Descriptor cd_ee33061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33061, buf);
+ ee33061 *dp, &lv = *(dp=new (buf) ee33061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee33061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee33061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(32,16), "ee33061");
+ check_base_class_offset(lv, (dd3061*), ABISELECT(16,8), "ee33061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33061.e");
+ test_class_info(&lv, &cd_ee33061);
+ dp->~ee33061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33061(Test_ee33061, "ee33061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33061C1Ev();
+extern void _ZN7ee33061D1Ev();
+Name_Map name_map_ee33061[] = {
+ NSPAIR(_ZN7ee33061C1Ev),
+ NSPAIR(_ZN7ee33061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee33061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, ABISELECT(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 _ZTI7ee33061[];
+extern void _ZN7ee330613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330613fooEv,_ZTv0_n16_N7ee330613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330613fooEv,_ZThn8_N7ee330613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330613fooEv,_ZTv0_n12_N7ee330613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330613fooEv,_ZThn16_N7ee330613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee33061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33061[0]),
+ (VTBL_ENTRY)&_ZN7ee330613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330613fooEv,_ZTv0_n16_N7ee330613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330613fooEv,_ZTv0_n12_N7ee330613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee33061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee33061[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee33061[] = {
+ {&(_ZTV7ee33061[4]), 4,16},
+ {&(_ZTV7ee33061[9]), 9,16},
+ {&(_ZTV7ee33061[14]), 14,16},
+ {&(_tg__ZTV6dd3061__7ee33061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee33061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33061[];
+extern VTBL_ENTRY _ZTV7ee33061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33061[];
+static VTBL_ENTRY alt_thunk_names482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330613fooEv,_ZTv0_n12_N7ee330613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330613fooEv,_ZThn16_N7ee330613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330613fooEv,_ZTv0_n16_N7ee330613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330613fooEv,_ZThn8_N7ee330613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33061 = { "ee33061", // class name
+ bases_ee33061, 4,
+ &(vtc_ee33061[0]), // expected_vtbl_contents
+ &(vtt_ee33061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33061),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names482,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43061 : dd3061 {
+ int e;
+ virtual void bar(); // _ZN7ee430613barEv
+ ~ee43061(); // tgen
+ ee43061(); // tgen
+};
+//SIG(1 ee43061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43061 ::bar(){vfunc_called(this, "_ZN7ee430613barEv");}
+ee43061 ::~ee43061(){ note_dtor("ee43061", this);} // tgen
+ee43061 ::ee43061(){ note_ctor("ee43061", this);} // tgen
+
+static void Test_ee43061()
+{
+ extern Class_Descriptor cd_ee43061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43061, buf);
+ ee43061 *dp, &lv = *(dp=new (buf) ee43061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee43061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee43061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(16,12), "ee43061");
+ check_base_class_offset(lv, (dd3061*), 0, "ee43061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43061.e");
+ test_class_info(&lv, &cd_ee43061);
+ dp->~ee43061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43061(Test_ee43061, "ee43061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43061C1Ev();
+extern void _ZN7ee43061D1Ev();
+Name_Map name_map_ee43061[] = {
+ NSPAIR(_ZN7ee43061C1Ev),
+ NSPAIR(_ZN7ee43061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee43061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43061[];
+extern void _ZN6dd30613fooEv();
+extern void _ZN7ee430613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee430613barEv,_ZTv0_n16_N7ee430613barEv)();
+extern void ABISELECT(_ZThn16_N7ee430613barEv,_ZThn12_N7ee430613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+ (VTBL_ENTRY)&_ZN7ee430613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430613barEv,_ZTv0_n16_N7ee430613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee43061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee43061[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee43061[] = {
+ {&(_ZTV7ee43061[3]), 3,11},
+ {&(_tg__ZTV6dd3061__7ee43061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee43061[4]), 4,6},
+ {&(_ZTV7ee43061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43061[];
+extern VTBL_ENTRY _ZTV7ee43061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43061[];
+static VTBL_ENTRY alt_thunk_names483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430613barEv,_ZTv0_n16_N7ee430613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430613barEv,_ZThn12_N7ee430613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43061 = { "ee43061", // class name
+ bases_ee43061, 4,
+ &(vtc_ee43061[0]), // expected_vtbl_contents
+ &(vtt_ee43061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names483,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53061 : virtual dd3061 {
+ int e;
+ virtual void bar(); // _ZN7ee530613barEv
+ ~ee53061(); // tgen
+ ee53061(); // tgen
+};
+//SIG(1 ee53061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53061 ::bar(){vfunc_called(this, "_ZN7ee530613barEv");}
+ee53061 ::~ee53061(){ note_dtor("ee53061", this);} // tgen
+ee53061 ::ee53061(){ note_ctor("ee53061", this);} // tgen
+
+static void Test_ee53061()
+{
+ extern Class_Descriptor cd_ee53061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53061, buf);
+ ee53061 *dp, &lv = *(dp=new (buf) ee53061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee53061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee53061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(32,16), "ee53061");
+ check_base_class_offset(lv, (dd3061*), ABISELECT(16,8), "ee53061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53061.e");
+ test_class_info(&lv, &cd_ee53061);
+ dp->~ee53061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53061(Test_ee53061, "ee53061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53061C1Ev();
+extern void _ZN7ee53061D1Ev();
+Name_Map name_map_ee53061[] = {
+ NSPAIR(_ZN7ee53061C1Ev),
+ NSPAIR(_ZN7ee53061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee53061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, ABISELECT(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 _ZTI7ee53061[];
+extern void _ZN7ee530613barEv();
+extern void _ZN6dd30613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee530613barEv,_ZTv0_n16_N7ee530613barEv)();
+extern void ABISELECT(_ZThn32_N7ee530613barEv,_ZThn16_N7ee530613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53061[0]),
+ (VTBL_ENTRY)&_ZN7ee530613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530613barEv,_ZTv0_n16_N7ee530613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee53061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee53061[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee53061[] = {
+ {&(_ZTV7ee53061[4]), 4,16},
+ {&(_ZTV7ee53061[9]), 9,16},
+ {&(_ZTV7ee53061[14]), 14,16},
+ {&(_tg__ZTV6dd3061__7ee53061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee53061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53061[];
+extern VTBL_ENTRY _ZTV7ee53061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53061[];
+static VTBL_ENTRY alt_thunk_names484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530613barEv,_ZTv0_n16_N7ee530613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530613barEv,_ZThn16_N7ee530613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53061 = { "ee53061", // class name
+ bases_ee53061, 4,
+ &(vtc_ee53061[0]), // expected_vtbl_contents
+ &(vtt_ee53061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53061),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names484,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63061 : dd3061 {
+ int e;
+ virtual void foo(); // _ZN7ee630613fooEv
+ virtual void bar(); // _ZN7ee630613barEv
+ ~ee63061(); // tgen
+ ee63061(); // tgen
+};
+//SIG(1 ee63061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63061 ::foo(){vfunc_called(this, "_ZN7ee630613fooEv");}
+void ee63061 ::bar(){vfunc_called(this, "_ZN7ee630613barEv");}
+ee63061 ::~ee63061(){ note_dtor("ee63061", this);} // tgen
+ee63061 ::ee63061(){ note_ctor("ee63061", this);} // tgen
+
+static void Test_ee63061()
+{
+ extern Class_Descriptor cd_ee63061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63061, buf);
+ ee63061 *dp, &lv = *(dp=new (buf) ee63061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee63061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee63061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(16,12), "ee63061");
+ check_base_class_offset(lv, (dd3061*), 0, "ee63061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63061.e");
+ test_class_info(&lv, &cd_ee63061);
+ dp->~ee63061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63061(Test_ee63061, "ee63061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63061C1Ev();
+extern void _ZN7ee63061D1Ev();
+Name_Map name_map_ee63061[] = {
+ NSPAIR(_ZN7ee63061C1Ev),
+ NSPAIR(_ZN7ee63061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee63061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63061[];
+extern void _ZN7ee630613fooEv();
+extern void _ZN7ee630613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630613fooEv,_ZTv0_n12_N7ee630613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630613fooEv,_ZThn12_N7ee630613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630613barEv,_ZTv0_n16_N7ee630613barEv)();
+extern void ABISELECT(_ZThn16_N7ee630613barEv,_ZThn12_N7ee630613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63061[0]),
+ (VTBL_ENTRY)&_ZN7ee630613fooEv,
+ (VTBL_ENTRY)&_ZN7ee630613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630613fooEv,_ZTv0_n12_N7ee630613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630613barEv,_ZTv0_n16_N7ee630613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee63061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee63061[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee63061[] = {
+ {&(_ZTV7ee63061[3]), 3,11},
+ {&(_tg__ZTV6dd3061__7ee63061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee63061[4]), 4,6},
+ {&(_ZTV7ee63061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63061[];
+extern VTBL_ENTRY _ZTV7ee63061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63061[];
+static VTBL_ENTRY alt_thunk_names485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn12_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630613barEv,_ZTv0_n16_N7ee630613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630613barEv,_ZThn12_N7ee630613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630613fooEv,_ZTv0_n12_N7ee630613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630613fooEv,_ZThn12_N7ee630613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63061 = { "ee63061", // class name
+ bases_ee63061, 4,
+ &(vtc_ee63061[0]), // expected_vtbl_contents
+ &(vtt_ee63061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names485,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73061 : virtual dd3061 {
+ int e;
+ virtual void foo(); // _ZN7ee730613fooEv
+ virtual void bar(); // _ZN7ee730613barEv
+ ~ee73061(); // tgen
+ ee73061(); // tgen
+};
+//SIG(1 ee73061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73061 ::foo(){vfunc_called(this, "_ZN7ee730613fooEv");}
+void ee73061 ::bar(){vfunc_called(this, "_ZN7ee730613barEv");}
+ee73061 ::~ee73061(){ note_dtor("ee73061", this);} // tgen
+ee73061 ::ee73061(){ note_ctor("ee73061", this);} // tgen
+
+static void Test_ee73061()
+{
+ extern Class_Descriptor cd_ee73061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73061, buf);
+ ee73061 *dp, &lv = *(dp=new (buf) ee73061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee73061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee73061");
+ check_base_class_offset(lv, (cc061*)(dd3061*), ABISELECT(32,16), "ee73061");
+ check_base_class_offset(lv, (dd3061*), ABISELECT(16,8), "ee73061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73061.e");
+ test_class_info(&lv, &cd_ee73061);
+ dp->~ee73061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73061(Test_ee73061, "ee73061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73061C1Ev();
+extern void _ZN7ee73061D1Ev();
+Name_Map name_map_ee73061[] = {
+ NSPAIR(_ZN7ee73061C1Ev),
+ NSPAIR(_ZN7ee73061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd3061;
+extern VTBL_ENTRY _ZTI6dd3061[];
+extern VTBL_ENTRY _ZTV6dd3061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3061[];
+static Base_Class bases_ee73061[] = {
+ // 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_bb61, 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_cc061, 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_dd3061, 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 _ZTI7ee73061[];
+extern void _ZN7ee730613fooEv();
+extern void _ZN7ee730613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730613fooEv,_ZTv0_n16_N7ee730613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730613fooEv,_ZThn8_N7ee730613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730613fooEv,_ZTv0_n12_N7ee730613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730613fooEv,_ZThn16_N7ee730613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730613barEv,_ZTv0_n16_N7ee730613barEv)();
+extern void ABISELECT(_ZThn32_N7ee730613barEv,_ZThn16_N7ee730613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73061[0]),
+ (VTBL_ENTRY)&_ZN7ee730613fooEv,
+ (VTBL_ENTRY)&_ZN7ee730613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730613fooEv,_ZTv0_n16_N7ee730613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730613fooEv,_ZTv0_n12_N7ee730613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730613barEv,_ZTv0_n16_N7ee730613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73061[];
+extern void _ZN6dd30613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3061__7ee73061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&_ZN6dd30613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd3061__7ee73061[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee73061[] = {
+ {&(_ZTV7ee73061[4]), 4,17},
+ {&(_ZTV7ee73061[10]), 10,17},
+ {&(_ZTV7ee73061[15]), 15,17},
+ {&(_tg__ZTV6dd3061__7ee73061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd3061__7ee73061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73061[];
+extern VTBL_ENTRY _ZTV7ee73061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73061[];
+static VTBL_ENTRY alt_thunk_names486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30613fooEv,_ZTv0_n12_N6dd30613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30613fooEv,_ZThn8_N6dd30613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730613barEv,_ZTv0_n16_N7ee730613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730613barEv,_ZThn16_N7ee730613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730613fooEv,_ZTv0_n12_N7ee730613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730613fooEv,_ZThn16_N7ee730613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730613fooEv,_ZTv0_n16_N7ee730613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730613fooEv,_ZThn8_N7ee730613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73061 = { "ee73061", // class name
+ bases_ee73061, 4,
+ &(vtc_ee73061[0]), // expected_vtbl_contents
+ &(vtt_ee73061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73061),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names486,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4061 : cc061 {
+ int d;
+ virtual void bar(); // _ZN6dd40613barEv
+ ~dd4061(); // tgen
+ dd4061(); // tgen
+};
+//SIG(-1 dd4061) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4061 ::bar(){vfunc_called(this, "_ZN6dd40613barEv");}
+dd4061 ::~dd4061(){ note_dtor("dd4061", this);} // tgen
+dd4061 ::dd4061(){ note_ctor("dd4061", this);} // tgen
+
+static void Test_dd4061()
+{
+ extern Class_Descriptor cd_dd4061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4061, buf);
+ dd4061 *dp, &lv = *(dp=new (buf) dd4061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), 0, "dd4061");
+ check_base_class_offset(lv, (bb61*)(cc061*), 0, "dd4061");
+ check_base_class_offset(lv, (cc061*), 0, "dd4061");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4061.d");
+ test_class_info(&lv, &cd_dd4061);
+ dp->~dd4061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4061(Test_dd4061, "dd4061", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4061C1Ev();
+extern void _ZN6dd4061D1Ev();
+Name_Map name_map_dd4061[] = {
+ NSPAIR(_ZN6dd4061C1Ev),
+ NSPAIR(_ZN6dd4061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd4061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd40613barEv();
+static VTBL_ENTRY vtc_dd4061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd40613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+Class_Descriptor cd_dd4061 = { "dd4061", // class name
+ bases_dd4061, 3,
+ &(vtc_dd4061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4061),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 ee04061 : dd4061 {
+ int e;
+ ~ee04061(); // tgen
+ ee04061(); // tgen
+};
+//SIG(1 ee04061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04061 ::~ee04061(){ note_dtor("ee04061", this);} // tgen
+ee04061 ::ee04061(){ note_ctor("ee04061", this);} // tgen
+
+static void Test_ee04061()
+{
+ extern Class_Descriptor cd_ee04061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04061, buf);
+ ee04061 *dp, &lv = *(dp=new (buf) ee04061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), 0, "ee04061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), 0, "ee04061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), 0, "ee04061");
+ check_base_class_offset(lv, (dd4061*), 0, "ee04061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04061.e");
+ test_class_info(&lv, &cd_ee04061);
+ dp->~ee04061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04061(Test_ee04061, "ee04061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04061C1Ev();
+extern void _ZN7ee04061D1Ev();
+Name_Map name_map_ee04061[] = {
+ NSPAIR(_ZN7ee04061C1Ev),
+ NSPAIR(_ZN7ee04061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee04061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, 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 _ZTI7ee04061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd40613barEv();
+static VTBL_ENTRY vtc_ee04061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd40613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04061[];
+extern VTBL_ENTRY _ZTV7ee04061[];
+Class_Descriptor cd_ee04061 = { "ee04061", // class name
+ bases_ee04061, 4,
+ &(vtc_ee04061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04061),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 ee14061 : virtual dd4061 {
+ int e;
+ ~ee14061(); // tgen
+ ee14061(); // tgen
+};
+//SIG(1 ee14061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14061 ::~ee14061(){ note_dtor("ee14061", this);} // tgen
+ee14061 ::ee14061(){ note_ctor("ee14061", this);} // tgen
+
+static void Test_ee14061()
+{
+ extern Class_Descriptor cd_ee14061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14061, buf);
+ ee14061 *dp, &lv = *(dp=new (buf) ee14061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee14061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee14061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), ABISELECT(16,8), "ee14061");
+ check_base_class_offset(lv, (dd4061*), ABISELECT(16,8), "ee14061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14061.e");
+ test_class_info(&lv, &cd_ee14061);
+ dp->~ee14061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14061(Test_ee14061, "ee14061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14061C1Ev();
+extern void _ZN7ee14061D1Ev();
+Name_Map name_map_ee14061[] = {
+ NSPAIR(_ZN7ee14061C1Ev),
+ NSPAIR(_ZN7ee14061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee14061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, 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 _ZTI7ee14061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd40613barEv();
+static VTBL_ENTRY vtc_ee14061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd40613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14061[];
+static VTT_ENTRY vtt_ee14061[] = {
+ {&(_ZTV7ee14061[3]), 3,9},
+ {&(_ZTV7ee14061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14061[];
+extern VTBL_ENTRY _ZTV7ee14061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14061[];
+Class_Descriptor cd_ee14061 = { "ee14061", // class name
+ bases_ee14061, 4,
+ &(vtc_ee14061[0]), // expected_vtbl_contents
+ &(vtt_ee14061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14061),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 ee24061 : dd4061 {
+ int e;
+ virtual void foo(); // _ZN7ee240613fooEv
+ ~ee24061(); // tgen
+ ee24061(); // tgen
+};
+//SIG(1 ee24061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24061 ::foo(){vfunc_called(this, "_ZN7ee240613fooEv");}
+ee24061 ::~ee24061(){ note_dtor("ee24061", this);} // tgen
+ee24061 ::ee24061(){ note_ctor("ee24061", this);} // tgen
+
+static void Test_ee24061()
+{
+ extern Class_Descriptor cd_ee24061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24061, buf);
+ ee24061 *dp, &lv = *(dp=new (buf) ee24061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), 0, "ee24061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), 0, "ee24061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), 0, "ee24061");
+ check_base_class_offset(lv, (dd4061*), 0, "ee24061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24061.e");
+ test_class_info(&lv, &cd_ee24061);
+ dp->~ee24061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24061(Test_ee24061, "ee24061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24061C1Ev();
+extern void _ZN7ee24061D1Ev();
+Name_Map name_map_ee24061[] = {
+ NSPAIR(_ZN7ee24061C1Ev),
+ NSPAIR(_ZN7ee24061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee24061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24061[];
+extern void _ZN7ee240613fooEv();
+extern void _ZN6dd40613barEv();
+static VTBL_ENTRY vtc_ee24061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24061[0]),
+ (VTBL_ENTRY)&_ZN7ee240613fooEv,
+ (VTBL_ENTRY)&_ZN6dd40613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24061[];
+extern VTBL_ENTRY _ZTV7ee24061[];
+Class_Descriptor cd_ee24061 = { "ee24061", // class name
+ bases_ee24061, 4,
+ &(vtc_ee24061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24061),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 ee34061 : virtual dd4061 {
+ int e;
+ virtual void foo(); // _ZN7ee340613fooEv
+ ~ee34061(); // tgen
+ ee34061(); // tgen
+};
+//SIG(1 ee34061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34061 ::foo(){vfunc_called(this, "_ZN7ee340613fooEv");}
+ee34061 ::~ee34061(){ note_dtor("ee34061", this);} // tgen
+ee34061 ::ee34061(){ note_ctor("ee34061", this);} // tgen
+
+static void Test_ee34061()
+{
+ extern Class_Descriptor cd_ee34061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34061, buf);
+ ee34061 *dp, &lv = *(dp=new (buf) ee34061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee34061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee34061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), ABISELECT(16,8), "ee34061");
+ check_base_class_offset(lv, (dd4061*), ABISELECT(16,8), "ee34061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34061.e");
+ test_class_info(&lv, &cd_ee34061);
+ dp->~ee34061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34061(Test_ee34061, "ee34061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34061C1Ev();
+extern void _ZN7ee34061D1Ev();
+Name_Map name_map_ee34061[] = {
+ NSPAIR(_ZN7ee34061C1Ev),
+ NSPAIR(_ZN7ee34061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee34061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, ABISELECT(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 _ZTI7ee34061[];
+extern void _ZN7ee340613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340613fooEv,_ZTv0_n12_N7ee340613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340613fooEv,_ZThn8_N7ee340613fooEv)() __attribute__((weak));
+extern void _ZN6dd40613barEv();
+static VTBL_ENTRY vtc_ee34061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34061[0]),
+ (VTBL_ENTRY)&_ZN7ee340613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340613fooEv,_ZTv0_n12_N7ee340613fooEv),
+ (VTBL_ENTRY)&_ZN6dd40613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34061[];
+static VTT_ENTRY vtt_ee34061[] = {
+ {&(_ZTV7ee34061[3]), 3,10},
+ {&(_ZTV7ee34061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34061[];
+extern VTBL_ENTRY _ZTV7ee34061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34061[];
+static VTBL_ENTRY alt_thunk_names487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340613fooEv,_ZTv0_n12_N7ee340613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340613fooEv,_ZThn8_N7ee340613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34061 = { "ee34061", // class name
+ bases_ee34061, 4,
+ &(vtc_ee34061[0]), // expected_vtbl_contents
+ &(vtt_ee34061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34061),2, //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 ee44061 : dd4061 {
+ int e;
+ virtual void bar(); // _ZN7ee440613barEv
+ ~ee44061(); // tgen
+ ee44061(); // tgen
+};
+//SIG(1 ee44061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44061 ::bar(){vfunc_called(this, "_ZN7ee440613barEv");}
+ee44061 ::~ee44061(){ note_dtor("ee44061", this);} // tgen
+ee44061 ::ee44061(){ note_ctor("ee44061", this);} // tgen
+
+static void Test_ee44061()
+{
+ extern Class_Descriptor cd_ee44061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44061, buf);
+ ee44061 *dp, &lv = *(dp=new (buf) ee44061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), 0, "ee44061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), 0, "ee44061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), 0, "ee44061");
+ check_base_class_offset(lv, (dd4061*), 0, "ee44061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44061.e");
+ test_class_info(&lv, &cd_ee44061);
+ dp->~ee44061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44061(Test_ee44061, "ee44061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44061C1Ev();
+extern void _ZN7ee44061D1Ev();
+Name_Map name_map_ee44061[] = {
+ NSPAIR(_ZN7ee44061C1Ev),
+ NSPAIR(_ZN7ee44061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee44061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44061[];
+extern void _ZN4bb613fooEv();
+extern void _ZN7ee440613barEv();
+static VTBL_ENTRY vtc_ee44061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN7ee440613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44061[];
+extern VTBL_ENTRY _ZTV7ee44061[];
+Class_Descriptor cd_ee44061 = { "ee44061", // class name
+ bases_ee44061, 4,
+ &(vtc_ee44061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44061),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 ee54061 : virtual dd4061 {
+ int e;
+ virtual void bar(); // _ZN7ee540613barEv
+ ~ee54061(); // tgen
+ ee54061(); // tgen
+};
+//SIG(1 ee54061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54061 ::bar(){vfunc_called(this, "_ZN7ee540613barEv");}
+ee54061 ::~ee54061(){ note_dtor("ee54061", this);} // tgen
+ee54061 ::ee54061(){ note_ctor("ee54061", this);} // tgen
+
+static void Test_ee54061()
+{
+ extern Class_Descriptor cd_ee54061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54061, buf);
+ ee54061 *dp, &lv = *(dp=new (buf) ee54061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee54061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee54061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), ABISELECT(16,8), "ee54061");
+ check_base_class_offset(lv, (dd4061*), ABISELECT(16,8), "ee54061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54061.e");
+ test_class_info(&lv, &cd_ee54061);
+ dp->~ee54061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54061(Test_ee54061, "ee54061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54061C1Ev();
+extern void _ZN7ee54061D1Ev();
+Name_Map name_map_ee54061[] = {
+ NSPAIR(_ZN7ee54061C1Ev),
+ NSPAIR(_ZN7ee54061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee54061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, ABISELECT(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 _ZTI7ee54061[];
+extern void _ZN7ee540613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540613barEv,_ZTv0_n16_N7ee540613barEv)();
+extern void ABISELECT(_ZThn16_N7ee540613barEv,_ZThn8_N7ee540613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54061[0]),
+ (VTBL_ENTRY)&_ZN7ee540613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540613barEv,_ZTv0_n16_N7ee540613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54061[];
+static VTT_ENTRY vtt_ee54061[] = {
+ {&(_ZTV7ee54061[3]), 3,10},
+ {&(_ZTV7ee54061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54061[];
+extern VTBL_ENTRY _ZTV7ee54061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54061[];
+static VTBL_ENTRY alt_thunk_names488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540613barEv,_ZTv0_n16_N7ee540613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540613barEv,_ZThn8_N7ee540613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54061 = { "ee54061", // class name
+ bases_ee54061, 4,
+ &(vtc_ee54061[0]), // expected_vtbl_contents
+ &(vtt_ee54061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54061),2, //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 ee64061 : dd4061 {
+ int e;
+ virtual void foo(); // _ZN7ee640613fooEv
+ virtual void bar(); // _ZN7ee640613barEv
+ ~ee64061(); // tgen
+ ee64061(); // tgen
+};
+//SIG(1 ee64061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64061 ::foo(){vfunc_called(this, "_ZN7ee640613fooEv");}
+void ee64061 ::bar(){vfunc_called(this, "_ZN7ee640613barEv");}
+ee64061 ::~ee64061(){ note_dtor("ee64061", this);} // tgen
+ee64061 ::ee64061(){ note_ctor("ee64061", this);} // tgen
+
+static void Test_ee64061()
+{
+ extern Class_Descriptor cd_ee64061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64061, buf);
+ ee64061 *dp, &lv = *(dp=new (buf) ee64061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), 0, "ee64061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), 0, "ee64061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), 0, "ee64061");
+ check_base_class_offset(lv, (dd4061*), 0, "ee64061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64061.e");
+ test_class_info(&lv, &cd_ee64061);
+ dp->~ee64061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64061(Test_ee64061, "ee64061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64061C1Ev();
+extern void _ZN7ee64061D1Ev();
+Name_Map name_map_ee64061[] = {
+ NSPAIR(_ZN7ee64061C1Ev),
+ NSPAIR(_ZN7ee64061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee64061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64061[];
+extern void _ZN7ee640613fooEv();
+extern void _ZN7ee640613barEv();
+static VTBL_ENTRY vtc_ee64061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64061[0]),
+ (VTBL_ENTRY)&_ZN7ee640613fooEv,
+ (VTBL_ENTRY)&_ZN7ee640613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64061[];
+extern VTBL_ENTRY _ZTV7ee64061[];
+Class_Descriptor cd_ee64061 = { "ee64061", // class name
+ bases_ee64061, 4,
+ &(vtc_ee64061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64061),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 ee74061 : virtual dd4061 {
+ int e;
+ virtual void foo(); // _ZN7ee740613fooEv
+ virtual void bar(); // _ZN7ee740613barEv
+ ~ee74061(); // tgen
+ ee74061(); // tgen
+};
+//SIG(1 ee74061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74061 ::foo(){vfunc_called(this, "_ZN7ee740613fooEv");}
+void ee74061 ::bar(){vfunc_called(this, "_ZN7ee740613barEv");}
+ee74061 ::~ee74061(){ note_dtor("ee74061", this);} // tgen
+ee74061 ::ee74061(){ note_ctor("ee74061", this);} // tgen
+
+static void Test_ee74061()
+{
+ extern Class_Descriptor cd_ee74061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74061, buf);
+ ee74061 *dp, &lv = *(dp=new (buf) ee74061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee74061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd4061*), ABISELECT(16,8), "ee74061");
+ check_base_class_offset(lv, (cc061*)(dd4061*), ABISELECT(16,8), "ee74061");
+ check_base_class_offset(lv, (dd4061*), ABISELECT(16,8), "ee74061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74061.e");
+ test_class_info(&lv, &cd_ee74061);
+ dp->~ee74061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74061(Test_ee74061, "ee74061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74061C1Ev();
+extern void _ZN7ee74061D1Ev();
+Name_Map name_map_ee74061[] = {
+ NSPAIR(_ZN7ee74061C1Ev),
+ NSPAIR(_ZN7ee74061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd4061;
+extern VTBL_ENTRY _ZTI6dd4061[];
+extern VTBL_ENTRY _ZTV6dd4061[];
+static Base_Class bases_ee74061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4061, ABISELECT(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 _ZTI7ee74061[];
+extern void _ZN7ee740613fooEv();
+extern void _ZN7ee740613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740613fooEv,_ZTv0_n12_N7ee740613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740613fooEv,_ZThn8_N7ee740613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740613barEv,_ZTv0_n16_N7ee740613barEv)();
+extern void ABISELECT(_ZThn16_N7ee740613barEv,_ZThn8_N7ee740613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74061[0]),
+ (VTBL_ENTRY)&_ZN7ee740613fooEv,
+ (VTBL_ENTRY)&_ZN7ee740613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740613fooEv,_ZTv0_n12_N7ee740613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740613barEv,_ZTv0_n16_N7ee740613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74061[];
+static VTT_ENTRY vtt_ee74061[] = {
+ {&(_ZTV7ee74061[3]), 3,11},
+ {&(_ZTV7ee74061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74061[];
+extern VTBL_ENTRY _ZTV7ee74061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74061[];
+static VTBL_ENTRY alt_thunk_names489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740613barEv,_ZTv0_n16_N7ee740613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740613barEv,_ZThn8_N7ee740613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740613fooEv,_ZTv0_n12_N7ee740613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740613fooEv,_ZThn8_N7ee740613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74061 = { "ee74061", // class name
+ bases_ee74061, 4,
+ &(vtc_ee74061[0]), // expected_vtbl_contents
+ &(vtt_ee74061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74061),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names489,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5061 : virtual cc061 {
+ int d;
+ virtual void bar(); // _ZN6dd50613barEv
+ ~dd5061(); // tgen
+ dd5061(); // tgen
+};
+//SIG(-1 dd5061) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5061 ::bar(){vfunc_called(this, "_ZN6dd50613barEv");}
+dd5061 ::~dd5061(){ note_dtor("dd5061", this);} // tgen
+dd5061 ::dd5061(){ note_ctor("dd5061", this);} // tgen
+
+static void Test_dd5061()
+{
+ extern Class_Descriptor cd_dd5061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5061, buf);
+ dd5061 *dp, &lv = *(dp=new (buf) dd5061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,8), "dd5061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,8), "dd5061");
+ check_base_class_offset(lv, (cc061*), ABISELECT(16,8), "dd5061");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5061.d");
+ test_class_info(&lv, &cd_dd5061);
+ dp->~dd5061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5061(Test_dd5061, "dd5061", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5061C1Ev();
+extern void _ZN6dd5061D1Ev();
+Name_Map name_map_dd5061[] = {
+ NSPAIR(_ZN6dd5061C1Ev),
+ NSPAIR(_ZN6dd5061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd5061[] = {
+ // 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_bb61, 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_cc061, 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 _ZTI6dd5061[];
+extern void _ZN6dd50613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5061[];
+static VTT_ENTRY vtt_dd5061[] = {
+ {&(_ZTV6dd5061[3]), 3,10},
+ {&(_ZTV6dd5061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static VTBL_ENTRY alt_thunk_names490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5061 = { "dd5061", // class name
+ bases_dd5061, 3,
+ &(vtc_dd5061[0]), // expected_vtbl_contents
+ &(vtt_dd5061[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5061),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names490,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05061 : dd5061 {
+ int e;
+ ~ee05061(); // tgen
+ ee05061(); // tgen
+};
+//SIG(1 ee05061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05061 ::~ee05061(){ note_dtor("ee05061", this);} // tgen
+ee05061 ::ee05061(){ note_ctor("ee05061", this);} // tgen
+
+static void Test_ee05061()
+{
+ extern Class_Descriptor cd_ee05061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05061, buf);
+ ee05061 *dp, &lv = *(dp=new (buf) ee05061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee05061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee05061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(16,12), "ee05061");
+ check_base_class_offset(lv, (dd5061*), 0, "ee05061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05061.e");
+ test_class_info(&lv, &cd_ee05061);
+ dp->~ee05061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05061(Test_ee05061, "ee05061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05061C1Ev();
+extern void _ZN7ee05061D1Ev();
+Name_Map name_map_ee05061[] = {
+ NSPAIR(_ZN7ee05061C1Ev),
+ NSPAIR(_ZN7ee05061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee05061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05061[];
+extern void _ZN6dd50613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee05061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee05061[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee05061[] = {
+ {&(_ZTV7ee05061[3]), 3,10},
+ {&(_tg__ZTV6dd5061__7ee05061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee05061[4]), 4,6},
+ {&(_ZTV7ee05061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05061[];
+extern VTBL_ENTRY _ZTV7ee05061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05061[];
+static VTBL_ENTRY alt_thunk_names491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05061 = { "ee05061", // class name
+ bases_ee05061, 4,
+ &(vtc_ee05061[0]), // expected_vtbl_contents
+ &(vtt_ee05061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05061),4, //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 ee15061 : virtual dd5061 {
+ int e;
+ ~ee15061(); // tgen
+ ee15061(); // tgen
+};
+//SIG(1 ee15061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15061 ::~ee15061(){ note_dtor("ee15061", this);} // tgen
+ee15061 ::ee15061(){ note_ctor("ee15061", this);} // tgen
+
+static void Test_ee15061()
+{
+ extern Class_Descriptor cd_ee15061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15061, buf);
+ ee15061 *dp, &lv = *(dp=new (buf) ee15061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee15061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee15061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(32,16), "ee15061");
+ check_base_class_offset(lv, (dd5061*), ABISELECT(16,8), "ee15061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15061.e");
+ test_class_info(&lv, &cd_ee15061);
+ dp->~ee15061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15061(Test_ee15061, "ee15061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15061C1Ev();
+extern void _ZN7ee15061D1Ev();
+Name_Map name_map_ee15061[] = {
+ NSPAIR(_ZN7ee15061C1Ev),
+ NSPAIR(_ZN7ee15061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee15061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, ABISELECT(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 _ZTI7ee15061[];
+extern void _ZN6dd50613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15061[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee15061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee15061[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee15061[] = {
+ {&(_ZTV7ee15061[4]), 4,15},
+ {&(_ZTV7ee15061[8]), 8,15},
+ {&(_ZTV7ee15061[13]), 13,15},
+ {&(_tg__ZTV6dd5061__7ee15061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee15061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15061[];
+extern VTBL_ENTRY _ZTV7ee15061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15061[];
+static VTBL_ENTRY alt_thunk_names492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15061 = { "ee15061", // class name
+ bases_ee15061, 4,
+ &(vtc_ee15061[0]), // expected_vtbl_contents
+ &(vtt_ee15061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15061),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15061),5, //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 ee25061 : dd5061 {
+ int e;
+ virtual void foo(); // _ZN7ee250613fooEv
+ ~ee25061(); // tgen
+ ee25061(); // tgen
+};
+//SIG(1 ee25061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25061 ::foo(){vfunc_called(this, "_ZN7ee250613fooEv");}
+ee25061 ::~ee25061(){ note_dtor("ee25061", this);} // tgen
+ee25061 ::ee25061(){ note_ctor("ee25061", this);} // tgen
+
+static void Test_ee25061()
+{
+ extern Class_Descriptor cd_ee25061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25061, buf);
+ ee25061 *dp, &lv = *(dp=new (buf) ee25061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee25061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee25061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(16,12), "ee25061");
+ check_base_class_offset(lv, (dd5061*), 0, "ee25061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25061.e");
+ test_class_info(&lv, &cd_ee25061);
+ dp->~ee25061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25061(Test_ee25061, "ee25061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25061C1Ev();
+extern void _ZN7ee25061D1Ev();
+Name_Map name_map_ee25061[] = {
+ NSPAIR(_ZN7ee25061C1Ev),
+ NSPAIR(_ZN7ee25061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee25061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25061[];
+extern void _ZN6dd50613barEv();
+extern void _ZN7ee250613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250613fooEv,_ZTv0_n12_N7ee250613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250613fooEv,_ZThn12_N7ee250613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+ (VTBL_ENTRY)&_ZN7ee250613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250613fooEv,_ZTv0_n12_N7ee250613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee25061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee25061[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee25061[] = {
+ {&(_ZTV7ee25061[3]), 3,11},
+ {&(_tg__ZTV6dd5061__7ee25061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee25061[4]), 4,6},
+ {&(_ZTV7ee25061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25061[];
+extern VTBL_ENTRY _ZTV7ee25061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25061[];
+static VTBL_ENTRY alt_thunk_names493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250613fooEv,_ZTv0_n12_N7ee250613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250613fooEv,_ZThn12_N7ee250613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25061 = { "ee25061", // class name
+ bases_ee25061, 4,
+ &(vtc_ee25061[0]), // expected_vtbl_contents
+ &(vtt_ee25061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names493,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35061 : virtual dd5061 {
+ int e;
+ virtual void foo(); // _ZN7ee350613fooEv
+ ~ee35061(); // tgen
+ ee35061(); // tgen
+};
+//SIG(1 ee35061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35061 ::foo(){vfunc_called(this, "_ZN7ee350613fooEv");}
+ee35061 ::~ee35061(){ note_dtor("ee35061", this);} // tgen
+ee35061 ::ee35061(){ note_ctor("ee35061", this);} // tgen
+
+static void Test_ee35061()
+{
+ extern Class_Descriptor cd_ee35061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35061, buf);
+ ee35061 *dp, &lv = *(dp=new (buf) ee35061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee35061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee35061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(32,16), "ee35061");
+ check_base_class_offset(lv, (dd5061*), ABISELECT(16,8), "ee35061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35061.e");
+ test_class_info(&lv, &cd_ee35061);
+ dp->~ee35061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35061(Test_ee35061, "ee35061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35061C1Ev();
+extern void _ZN7ee35061D1Ev();
+Name_Map name_map_ee35061[] = {
+ NSPAIR(_ZN7ee35061C1Ev),
+ NSPAIR(_ZN7ee35061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee35061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, ABISELECT(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 _ZTI7ee35061[];
+extern void _ZN7ee350613fooEv();
+extern void _ZN6dd50613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350613fooEv,_ZTv0_n12_N7ee350613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350613fooEv,_ZThn16_N7ee350613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35061[0]),
+ (VTBL_ENTRY)&_ZN7ee350613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350613fooEv,_ZTv0_n12_N7ee350613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee35061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee35061[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee35061[] = {
+ {&(_ZTV7ee35061[4]), 4,16},
+ {&(_ZTV7ee35061[9]), 9,16},
+ {&(_ZTV7ee35061[14]), 14,16},
+ {&(_tg__ZTV6dd5061__7ee35061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee35061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35061[];
+extern VTBL_ENTRY _ZTV7ee35061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35061[];
+static VTBL_ENTRY alt_thunk_names494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350613fooEv,_ZTv0_n12_N7ee350613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350613fooEv,_ZThn16_N7ee350613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35061 = { "ee35061", // class name
+ bases_ee35061, 4,
+ &(vtc_ee35061[0]), // expected_vtbl_contents
+ &(vtt_ee35061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35061),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names494,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45061 : dd5061 {
+ int e;
+ virtual void bar(); // _ZN7ee450613barEv
+ ~ee45061(); // tgen
+ ee45061(); // tgen
+};
+//SIG(1 ee45061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45061 ::bar(){vfunc_called(this, "_ZN7ee450613barEv");}
+ee45061 ::~ee45061(){ note_dtor("ee45061", this);} // tgen
+ee45061 ::ee45061(){ note_ctor("ee45061", this);} // tgen
+
+static void Test_ee45061()
+{
+ extern Class_Descriptor cd_ee45061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45061, buf);
+ ee45061 *dp, &lv = *(dp=new (buf) ee45061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee45061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee45061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(16,12), "ee45061");
+ check_base_class_offset(lv, (dd5061*), 0, "ee45061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45061.e");
+ test_class_info(&lv, &cd_ee45061);
+ dp->~ee45061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45061(Test_ee45061, "ee45061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45061C1Ev();
+extern void _ZN7ee45061D1Ev();
+Name_Map name_map_ee45061[] = {
+ NSPAIR(_ZN7ee45061C1Ev),
+ NSPAIR(_ZN7ee45061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee45061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45061[];
+extern void _ZN7ee450613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450613barEv,_ZTv0_n16_N7ee450613barEv)();
+extern void ABISELECT(_ZThn16_N7ee450613barEv,_ZThn12_N7ee450613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45061[0]),
+ (VTBL_ENTRY)&_ZN7ee450613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450613barEv,_ZTv0_n16_N7ee450613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee45061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee45061[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee45061[] = {
+ {&(_ZTV7ee45061[3]), 3,10},
+ {&(_tg__ZTV6dd5061__7ee45061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee45061[4]), 4,6},
+ {&(_ZTV7ee45061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45061[];
+extern VTBL_ENTRY _ZTV7ee45061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45061[];
+static VTBL_ENTRY alt_thunk_names495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450613barEv,_ZTv0_n16_N7ee450613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450613barEv,_ZThn12_N7ee450613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45061 = { "ee45061", // class name
+ bases_ee45061, 4,
+ &(vtc_ee45061[0]), // expected_vtbl_contents
+ &(vtt_ee45061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names495,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55061 : virtual dd5061 {
+ int e;
+ virtual void bar(); // _ZN7ee550613barEv
+ ~ee55061(); // tgen
+ ee55061(); // tgen
+};
+//SIG(1 ee55061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55061 ::bar(){vfunc_called(this, "_ZN7ee550613barEv");}
+ee55061 ::~ee55061(){ note_dtor("ee55061", this);} // tgen
+ee55061 ::ee55061(){ note_ctor("ee55061", this);} // tgen
+
+static void Test_ee55061()
+{
+ extern Class_Descriptor cd_ee55061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55061, buf);
+ ee55061 *dp, &lv = *(dp=new (buf) ee55061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee55061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee55061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(32,16), "ee55061");
+ check_base_class_offset(lv, (dd5061*), ABISELECT(16,8), "ee55061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55061.e");
+ test_class_info(&lv, &cd_ee55061);
+ dp->~ee55061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55061(Test_ee55061, "ee55061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55061C1Ev();
+extern void _ZN7ee55061D1Ev();
+Name_Map name_map_ee55061[] = {
+ NSPAIR(_ZN7ee55061C1Ev),
+ NSPAIR(_ZN7ee55061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee55061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, ABISELECT(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 _ZTI7ee55061[];
+extern void _ZN7ee550613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550613barEv,_ZTv0_n16_N7ee550613barEv)();
+extern void ABISELECT(_ZThn16_N7ee550613barEv,_ZThn8_N7ee550613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550613barEv,_ZTv0_n16_N7ee550613barEv)();
+extern void ABISELECT(_ZThn32_N7ee550613barEv,_ZThn16_N7ee550613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55061[0]),
+ (VTBL_ENTRY)&_ZN7ee550613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550613barEv,_ZTv0_n16_N7ee550613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550613barEv,_ZTv0_n16_N7ee550613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee55061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee55061[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee55061[] = {
+ {&(_ZTV7ee55061[4]), 4,16},
+ {&(_ZTV7ee55061[9]), 9,16},
+ {&(_ZTV7ee55061[14]), 14,16},
+ {&(_tg__ZTV6dd5061__7ee55061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee55061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55061[];
+extern VTBL_ENTRY _ZTV7ee55061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55061[];
+static VTBL_ENTRY alt_thunk_names496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550613barEv,_ZTv0_n16_N7ee550613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550613barEv,_ZThn16_N7ee550613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550613barEv,_ZThn8_N7ee550613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55061 = { "ee55061", // class name
+ bases_ee55061, 4,
+ &(vtc_ee55061[0]), // expected_vtbl_contents
+ &(vtt_ee55061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55061),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names496,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65061 : dd5061 {
+ int e;
+ virtual void foo(); // _ZN7ee650613fooEv
+ virtual void bar(); // _ZN7ee650613barEv
+ ~ee65061(); // tgen
+ ee65061(); // tgen
+};
+//SIG(1 ee65061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65061 ::foo(){vfunc_called(this, "_ZN7ee650613fooEv");}
+void ee65061 ::bar(){vfunc_called(this, "_ZN7ee650613barEv");}
+ee65061 ::~ee65061(){ note_dtor("ee65061", this);} // tgen
+ee65061 ::ee65061(){ note_ctor("ee65061", this);} // tgen
+
+static void Test_ee65061()
+{
+ extern Class_Descriptor cd_ee65061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65061, buf);
+ ee65061 *dp, &lv = *(dp=new (buf) ee65061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee65061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee65061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(16,12), "ee65061");
+ check_base_class_offset(lv, (dd5061*), 0, "ee65061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65061.e");
+ test_class_info(&lv, &cd_ee65061);
+ dp->~ee65061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65061(Test_ee65061, "ee65061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65061C1Ev();
+extern void _ZN7ee65061D1Ev();
+Name_Map name_map_ee65061[] = {
+ NSPAIR(_ZN7ee65061C1Ev),
+ NSPAIR(_ZN7ee65061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee65061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65061[];
+extern void _ZN7ee650613barEv();
+extern void _ZN7ee650613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650613fooEv,_ZTv0_n12_N7ee650613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650613fooEv,_ZThn12_N7ee650613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650613barEv,_ZTv0_n16_N7ee650613barEv)();
+extern void ABISELECT(_ZThn16_N7ee650613barEv,_ZThn12_N7ee650613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65061[0]),
+ (VTBL_ENTRY)&_ZN7ee650613barEv,
+ (VTBL_ENTRY)&_ZN7ee650613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650613fooEv,_ZTv0_n12_N7ee650613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650613barEv,_ZTv0_n16_N7ee650613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee65061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee65061[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee65061[] = {
+ {&(_ZTV7ee65061[3]), 3,11},
+ {&(_tg__ZTV6dd5061__7ee65061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee65061[4]), 4,6},
+ {&(_ZTV7ee65061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65061[];
+extern VTBL_ENTRY _ZTV7ee65061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65061[];
+static VTBL_ENTRY alt_thunk_names497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn12_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650613barEv,_ZTv0_n16_N7ee650613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650613barEv,_ZThn12_N7ee650613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650613fooEv,_ZTv0_n12_N7ee650613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650613fooEv,_ZThn12_N7ee650613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65061 = { "ee65061", // class name
+ bases_ee65061, 4,
+ &(vtc_ee65061[0]), // expected_vtbl_contents
+ &(vtt_ee65061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names497,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75061 : virtual dd5061 {
+ int e;
+ virtual void foo(); // _ZN7ee750613fooEv
+ virtual void bar(); // _ZN7ee750613barEv
+ ~ee75061(); // tgen
+ ee75061(); // tgen
+};
+//SIG(1 ee75061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75061 ::foo(){vfunc_called(this, "_ZN7ee750613fooEv");}
+void ee75061 ::bar(){vfunc_called(this, "_ZN7ee750613barEv");}
+ee75061 ::~ee75061(){ note_dtor("ee75061", this);} // tgen
+ee75061 ::ee75061(){ note_ctor("ee75061", this);} // tgen
+
+static void Test_ee75061()
+{
+ extern Class_Descriptor cd_ee75061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75061, buf);
+ ee75061 *dp, &lv = *(dp=new (buf) ee75061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee75061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee75061");
+ check_base_class_offset(lv, (cc061*)(dd5061*), ABISELECT(32,16), "ee75061");
+ check_base_class_offset(lv, (dd5061*), ABISELECT(16,8), "ee75061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75061.e");
+ test_class_info(&lv, &cd_ee75061);
+ dp->~ee75061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75061(Test_ee75061, "ee75061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75061C1Ev();
+extern void _ZN7ee75061D1Ev();
+Name_Map name_map_ee75061[] = {
+ NSPAIR(_ZN7ee75061C1Ev),
+ NSPAIR(_ZN7ee75061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd5061;
+extern VTBL_ENTRY _ZTI6dd5061[];
+extern VTBL_ENTRY _ZTV6dd5061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5061[];
+static Base_Class bases_ee75061[] = {
+ // 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_bb61, 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_cc061, 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_dd5061, 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 _ZTI7ee75061[];
+extern void _ZN7ee750613fooEv();
+extern void _ZN7ee750613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750613barEv,_ZTv0_n16_N7ee750613barEv)();
+extern void ABISELECT(_ZThn16_N7ee750613barEv,_ZThn8_N7ee750613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750613fooEv,_ZTv0_n12_N7ee750613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750613fooEv,_ZThn16_N7ee750613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750613barEv,_ZTv0_n16_N7ee750613barEv)();
+extern void ABISELECT(_ZThn32_N7ee750613barEv,_ZThn16_N7ee750613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75061[0]),
+ (VTBL_ENTRY)&_ZN7ee750613fooEv,
+ (VTBL_ENTRY)&_ZN7ee750613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750613barEv,_ZTv0_n16_N7ee750613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750613fooEv,_ZTv0_n12_N7ee750613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750613barEv,_ZTv0_n16_N7ee750613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75061[];
+extern void _ZN6dd50613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5061__7ee75061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN6dd50613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv)();
+extern void ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd5061__7ee75061[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5061[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv),
+};
+static VTT_ENTRY vtt_ee75061[] = {
+ {&(_ZTV7ee75061[4]), 4,17},
+ {&(_ZTV7ee75061[10]), 10,17},
+ {&(_ZTV7ee75061[15]), 15,17},
+ {&(_tg__ZTV6dd5061__7ee75061[3]), 3,4},
+ {&(_tg__ZTV4bb615cc061__6dd5061__7ee75061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75061[];
+extern VTBL_ENTRY _ZTV7ee75061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75061[];
+static VTBL_ENTRY alt_thunk_names498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50613barEv,_ZTv0_n16_N6dd50613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50613barEv,_ZThn8_N6dd50613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750613fooEv,_ZTv0_n12_N7ee750613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750613fooEv,_ZThn16_N7ee750613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750613barEv,_ZTv0_n16_N7ee750613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750613barEv,_ZThn16_N7ee750613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750613barEv,_ZThn8_N7ee750613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75061 = { "ee75061", // class name
+ bases_ee75061, 4,
+ &(vtc_ee75061[0]), // expected_vtbl_contents
+ &(vtt_ee75061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75061),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names498,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6061 : cc061 {
+ int d;
+ virtual void bar(); // _ZN6dd60613barEv
+ virtual void foo(); // _ZN6dd60613fooEv
+ ~dd6061(); // tgen
+ dd6061(); // tgen
+};
+//SIG(-1 dd6061) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6061 ::bar(){vfunc_called(this, "_ZN6dd60613barEv");}
+void dd6061 ::foo(){vfunc_called(this, "_ZN6dd60613fooEv");}
+dd6061 ::~dd6061(){ note_dtor("dd6061", this);} // tgen
+dd6061 ::dd6061(){ note_ctor("dd6061", this);} // tgen
+
+static void Test_dd6061()
+{
+ extern Class_Descriptor cd_dd6061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6061, buf);
+ dd6061 *dp, &lv = *(dp=new (buf) dd6061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), 0, "dd6061");
+ check_base_class_offset(lv, (bb61*)(cc061*), 0, "dd6061");
+ check_base_class_offset(lv, (cc061*), 0, "dd6061");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6061.d");
+ test_class_info(&lv, &cd_dd6061);
+ dp->~dd6061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6061(Test_dd6061, "dd6061", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6061C1Ev();
+extern void _ZN6dd6061D1Ev();
+Name_Map name_map_dd6061[] = {
+ NSPAIR(_ZN6dd6061C1Ev),
+ NSPAIR(_ZN6dd6061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd6061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6061[];
+extern void _ZN6dd60613fooEv();
+extern void _ZN6dd60613barEv();
+static VTBL_ENTRY vtc_dd6061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6061[0]),
+ (VTBL_ENTRY)&_ZN6dd60613fooEv,
+ (VTBL_ENTRY)&_ZN6dd60613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+Class_Descriptor cd_dd6061 = { "dd6061", // class name
+ bases_dd6061, 3,
+ &(vtc_dd6061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6061),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 ee06061 : dd6061 {
+ int e;
+ ~ee06061(); // tgen
+ ee06061(); // tgen
+};
+//SIG(1 ee06061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06061 ::~ee06061(){ note_dtor("ee06061", this);} // tgen
+ee06061 ::ee06061(){ note_ctor("ee06061", this);} // tgen
+
+static void Test_ee06061()
+{
+ extern Class_Descriptor cd_ee06061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06061, buf);
+ ee06061 *dp, &lv = *(dp=new (buf) ee06061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), 0, "ee06061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), 0, "ee06061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), 0, "ee06061");
+ check_base_class_offset(lv, (dd6061*), 0, "ee06061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06061.e");
+ test_class_info(&lv, &cd_ee06061);
+ dp->~ee06061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06061(Test_ee06061, "ee06061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06061C1Ev();
+extern void _ZN7ee06061D1Ev();
+Name_Map name_map_ee06061[] = {
+ NSPAIR(_ZN7ee06061C1Ev),
+ NSPAIR(_ZN7ee06061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee06061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, 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 _ZTI7ee06061[];
+extern void _ZN6dd60613fooEv();
+extern void _ZN6dd60613barEv();
+static VTBL_ENTRY vtc_ee06061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06061[0]),
+ (VTBL_ENTRY)&_ZN6dd60613fooEv,
+ (VTBL_ENTRY)&_ZN6dd60613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06061[];
+extern VTBL_ENTRY _ZTV7ee06061[];
+Class_Descriptor cd_ee06061 = { "ee06061", // class name
+ bases_ee06061, 4,
+ &(vtc_ee06061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06061),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 ee16061 : virtual dd6061 {
+ int e;
+ ~ee16061(); // tgen
+ ee16061(); // tgen
+};
+//SIG(1 ee16061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16061 ::~ee16061(){ note_dtor("ee16061", this);} // tgen
+ee16061 ::ee16061(){ note_ctor("ee16061", this);} // tgen
+
+static void Test_ee16061()
+{
+ extern Class_Descriptor cd_ee16061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16061, buf);
+ ee16061 *dp, &lv = *(dp=new (buf) ee16061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee16061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee16061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), ABISELECT(16,8), "ee16061");
+ check_base_class_offset(lv, (dd6061*), ABISELECT(16,8), "ee16061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16061.e");
+ test_class_info(&lv, &cd_ee16061);
+ dp->~ee16061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16061(Test_ee16061, "ee16061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16061C1Ev();
+extern void _ZN7ee16061D1Ev();
+Name_Map name_map_ee16061[] = {
+ NSPAIR(_ZN7ee16061C1Ev),
+ NSPAIR(_ZN7ee16061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee16061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, 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 _ZTI7ee16061[];
+extern void _ZN6dd60613fooEv();
+extern void _ZN6dd60613barEv();
+static VTBL_ENTRY vtc_ee16061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16061[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16061[0]),
+ (VTBL_ENTRY)&_ZN6dd60613fooEv,
+ (VTBL_ENTRY)&_ZN6dd60613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16061[];
+static VTT_ENTRY vtt_ee16061[] = {
+ {&(_ZTV7ee16061[3]), 3,9},
+ {&(_ZTV7ee16061[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16061[];
+extern VTBL_ENTRY _ZTV7ee16061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16061[];
+Class_Descriptor cd_ee16061 = { "ee16061", // class name
+ bases_ee16061, 4,
+ &(vtc_ee16061[0]), // expected_vtbl_contents
+ &(vtt_ee16061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16061),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16061),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 ee26061 : dd6061 {
+ int e;
+ virtual void foo(); // _ZN7ee260613fooEv
+ ~ee26061(); // tgen
+ ee26061(); // tgen
+};
+//SIG(1 ee26061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26061 ::foo(){vfunc_called(this, "_ZN7ee260613fooEv");}
+ee26061 ::~ee26061(){ note_dtor("ee26061", this);} // tgen
+ee26061 ::ee26061(){ note_ctor("ee26061", this);} // tgen
+
+static void Test_ee26061()
+{
+ extern Class_Descriptor cd_ee26061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26061, buf);
+ ee26061 *dp, &lv = *(dp=new (buf) ee26061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), 0, "ee26061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), 0, "ee26061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), 0, "ee26061");
+ check_base_class_offset(lv, (dd6061*), 0, "ee26061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26061.e");
+ test_class_info(&lv, &cd_ee26061);
+ dp->~ee26061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26061(Test_ee26061, "ee26061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26061C1Ev();
+extern void _ZN7ee26061D1Ev();
+Name_Map name_map_ee26061[] = {
+ NSPAIR(_ZN7ee26061C1Ev),
+ NSPAIR(_ZN7ee26061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee26061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26061[];
+extern void _ZN7ee260613fooEv();
+extern void _ZN6dd60613barEv();
+static VTBL_ENTRY vtc_ee26061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26061[0]),
+ (VTBL_ENTRY)&_ZN7ee260613fooEv,
+ (VTBL_ENTRY)&_ZN6dd60613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26061[];
+extern VTBL_ENTRY _ZTV7ee26061[];
+Class_Descriptor cd_ee26061 = { "ee26061", // class name
+ bases_ee26061, 4,
+ &(vtc_ee26061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26061),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 ee36061 : virtual dd6061 {
+ int e;
+ virtual void foo(); // _ZN7ee360613fooEv
+ ~ee36061(); // tgen
+ ee36061(); // tgen
+};
+//SIG(1 ee36061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36061 ::foo(){vfunc_called(this, "_ZN7ee360613fooEv");}
+ee36061 ::~ee36061(){ note_dtor("ee36061", this);} // tgen
+ee36061 ::ee36061(){ note_ctor("ee36061", this);} // tgen
+
+static void Test_ee36061()
+{
+ extern Class_Descriptor cd_ee36061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36061, buf);
+ ee36061 *dp, &lv = *(dp=new (buf) ee36061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee36061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee36061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), ABISELECT(16,8), "ee36061");
+ check_base_class_offset(lv, (dd6061*), ABISELECT(16,8), "ee36061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36061.e");
+ test_class_info(&lv, &cd_ee36061);
+ dp->~ee36061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36061(Test_ee36061, "ee36061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36061C1Ev();
+extern void _ZN7ee36061D1Ev();
+Name_Map name_map_ee36061[] = {
+ NSPAIR(_ZN7ee36061C1Ev),
+ NSPAIR(_ZN7ee36061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee36061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, ABISELECT(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 _ZTI7ee36061[];
+extern void _ZN7ee360613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360613fooEv,_ZTv0_n12_N7ee360613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360613fooEv,_ZThn8_N7ee360613fooEv)() __attribute__((weak));
+extern void _ZN6dd60613barEv();
+static VTBL_ENTRY vtc_ee36061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36061[0]),
+ (VTBL_ENTRY)&_ZN7ee360613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360613fooEv,_ZTv0_n12_N7ee360613fooEv),
+ (VTBL_ENTRY)&_ZN6dd60613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36061[];
+static VTT_ENTRY vtt_ee36061[] = {
+ {&(_ZTV7ee36061[3]), 3,10},
+ {&(_ZTV7ee36061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36061[];
+extern VTBL_ENTRY _ZTV7ee36061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36061[];
+static VTBL_ENTRY alt_thunk_names499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360613fooEv,_ZTv0_n12_N7ee360613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360613fooEv,_ZThn8_N7ee360613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36061 = { "ee36061", // class name
+ bases_ee36061, 4,
+ &(vtc_ee36061[0]), // expected_vtbl_contents
+ &(vtt_ee36061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36061),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46061 : dd6061 {
+ int e;
+ virtual void bar(); // _ZN7ee460613barEv
+ ~ee46061(); // tgen
+ ee46061(); // tgen
+};
+//SIG(1 ee46061) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46061 ::bar(){vfunc_called(this, "_ZN7ee460613barEv");}
+ee46061 ::~ee46061(){ note_dtor("ee46061", this);} // tgen
+ee46061 ::ee46061(){ note_ctor("ee46061", this);} // tgen
+
+static void Test_ee46061()
+{
+ extern Class_Descriptor cd_ee46061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46061, buf);
+ ee46061 *dp, &lv = *(dp=new (buf) ee46061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), 0, "ee46061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), 0, "ee46061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), 0, "ee46061");
+ check_base_class_offset(lv, (dd6061*), 0, "ee46061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46061.e");
+ test_class_info(&lv, &cd_ee46061);
+ dp->~ee46061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46061(Test_ee46061, "ee46061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46061C1Ev();
+extern void _ZN7ee46061D1Ev();
+Name_Map name_map_ee46061[] = {
+ NSPAIR(_ZN7ee46061C1Ev),
+ NSPAIR(_ZN7ee46061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee46061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46061[];
+extern void _ZN6dd60613fooEv();
+extern void _ZN7ee460613barEv();
+static VTBL_ENTRY vtc_ee46061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46061[0]),
+ (VTBL_ENTRY)&_ZN6dd60613fooEv,
+ (VTBL_ENTRY)&_ZN7ee460613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46061[];
+extern VTBL_ENTRY _ZTV7ee46061[];
+Class_Descriptor cd_ee46061 = { "ee46061", // class name
+ bases_ee46061, 4,
+ &(vtc_ee46061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46061),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 ee56061 : virtual dd6061 {
+ int e;
+ virtual void bar(); // _ZN7ee560613barEv
+ ~ee56061(); // tgen
+ ee56061(); // tgen
+};
+//SIG(1 ee56061) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56061 ::bar(){vfunc_called(this, "_ZN7ee560613barEv");}
+ee56061 ::~ee56061(){ note_dtor("ee56061", this);} // tgen
+ee56061 ::ee56061(){ note_ctor("ee56061", this);} // tgen
+
+static void Test_ee56061()
+{
+ extern Class_Descriptor cd_ee56061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56061, buf);
+ ee56061 *dp, &lv = *(dp=new (buf) ee56061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee56061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee56061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), ABISELECT(16,8), "ee56061");
+ check_base_class_offset(lv, (dd6061*), ABISELECT(16,8), "ee56061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56061.e");
+ test_class_info(&lv, &cd_ee56061);
+ dp->~ee56061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56061(Test_ee56061, "ee56061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56061C1Ev();
+extern void _ZN7ee56061D1Ev();
+Name_Map name_map_ee56061[] = {
+ NSPAIR(_ZN7ee56061C1Ev),
+ NSPAIR(_ZN7ee56061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee56061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, ABISELECT(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 _ZTI7ee56061[];
+extern void _ZN7ee560613barEv();
+extern void _ZN6dd60613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560613barEv,_ZTv0_n16_N7ee560613barEv)();
+extern void ABISELECT(_ZThn16_N7ee560613barEv,_ZThn8_N7ee560613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56061[0]),
+ (VTBL_ENTRY)&_ZN7ee560613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56061[0]),
+ (VTBL_ENTRY)&_ZN6dd60613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560613barEv,_ZTv0_n16_N7ee560613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56061[];
+static VTT_ENTRY vtt_ee56061[] = {
+ {&(_ZTV7ee56061[3]), 3,10},
+ {&(_ZTV7ee56061[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56061[];
+extern VTBL_ENTRY _ZTV7ee56061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56061[];
+static VTBL_ENTRY alt_thunk_names500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560613barEv,_ZTv0_n16_N7ee560613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560613barEv,_ZThn8_N7ee560613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56061 = { "ee56061", // class name
+ bases_ee56061, 4,
+ &(vtc_ee56061[0]), // expected_vtbl_contents
+ &(vtt_ee56061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56061),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56061),2, //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 ee66061 : dd6061 {
+ int e;
+ virtual void foo(); // _ZN7ee660613fooEv
+ virtual void bar(); // _ZN7ee660613barEv
+ ~ee66061(); // tgen
+ ee66061(); // tgen
+};
+//SIG(1 ee66061) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66061 ::foo(){vfunc_called(this, "_ZN7ee660613fooEv");}
+void ee66061 ::bar(){vfunc_called(this, "_ZN7ee660613barEv");}
+ee66061 ::~ee66061(){ note_dtor("ee66061", this);} // tgen
+ee66061 ::ee66061(){ note_ctor("ee66061", this);} // tgen
+
+static void Test_ee66061()
+{
+ extern Class_Descriptor cd_ee66061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66061, buf);
+ ee66061 *dp, &lv = *(dp=new (buf) ee66061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), 0, "ee66061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), 0, "ee66061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), 0, "ee66061");
+ check_base_class_offset(lv, (dd6061*), 0, "ee66061");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66061.e");
+ test_class_info(&lv, &cd_ee66061);
+ dp->~ee66061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66061(Test_ee66061, "ee66061", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66061C1Ev();
+extern void _ZN7ee66061D1Ev();
+Name_Map name_map_ee66061[] = {
+ NSPAIR(_ZN7ee66061C1Ev),
+ NSPAIR(_ZN7ee66061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee66061[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66061[];
+extern void _ZN7ee660613fooEv();
+extern void _ZN7ee660613barEv();
+static VTBL_ENTRY vtc_ee66061[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66061[0]),
+ (VTBL_ENTRY)&_ZN7ee660613fooEv,
+ (VTBL_ENTRY)&_ZN7ee660613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66061[];
+extern VTBL_ENTRY _ZTV7ee66061[];
+Class_Descriptor cd_ee66061 = { "ee66061", // class name
+ bases_ee66061, 4,
+ &(vtc_ee66061[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66061),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 ee76061 : virtual dd6061 {
+ int e;
+ virtual void foo(); // _ZN7ee760613fooEv
+ virtual void bar(); // _ZN7ee760613barEv
+ ~ee76061(); // tgen
+ ee76061(); // tgen
+};
+//SIG(1 ee76061) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76061 ::foo(){vfunc_called(this, "_ZN7ee760613fooEv");}
+void ee76061 ::bar(){vfunc_called(this, "_ZN7ee760613barEv");}
+ee76061 ::~ee76061(){ note_dtor("ee76061", this);} // tgen
+ee76061 ::ee76061(){ note_ctor("ee76061", this);} // tgen
+
+static void Test_ee76061()
+{
+ extern Class_Descriptor cd_ee76061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76061, buf);
+ ee76061 *dp, &lv = *(dp=new (buf) ee76061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee76061");
+ check_base_class_offset(lv, (bb61*)(cc061*)(dd6061*), ABISELECT(16,8), "ee76061");
+ check_base_class_offset(lv, (cc061*)(dd6061*), ABISELECT(16,8), "ee76061");
+ check_base_class_offset(lv, (dd6061*), ABISELECT(16,8), "ee76061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76061.e");
+ test_class_info(&lv, &cd_ee76061);
+ dp->~ee76061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76061(Test_ee76061, "ee76061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76061C1Ev();
+extern void _ZN7ee76061D1Ev();
+Name_Map name_map_ee76061[] = {
+ NSPAIR(_ZN7ee76061C1Ev),
+ NSPAIR(_ZN7ee76061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd6061;
+extern VTBL_ENTRY _ZTI6dd6061[];
+extern VTBL_ENTRY _ZTV6dd6061[];
+static Base_Class bases_ee76061[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc061, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6061, ABISELECT(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 _ZTI7ee76061[];
+extern void _ZN7ee760613fooEv();
+extern void _ZN7ee760613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760613fooEv,_ZTv0_n12_N7ee760613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760613fooEv,_ZThn8_N7ee760613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760613barEv,_ZTv0_n16_N7ee760613barEv)();
+extern void ABISELECT(_ZThn16_N7ee760613barEv,_ZThn8_N7ee760613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76061[0]),
+ (VTBL_ENTRY)&_ZN7ee760613fooEv,
+ (VTBL_ENTRY)&_ZN7ee760613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760613fooEv,_ZTv0_n12_N7ee760613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760613barEv,_ZTv0_n16_N7ee760613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76061[];
+static VTT_ENTRY vtt_ee76061[] = {
+ {&(_ZTV7ee76061[3]), 3,11},
+ {&(_ZTV7ee76061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76061[];
+extern VTBL_ENTRY _ZTV7ee76061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76061[];
+static VTBL_ENTRY alt_thunk_names501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760613barEv,_ZTv0_n16_N7ee760613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760613barEv,_ZThn8_N7ee760613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760613fooEv,_ZTv0_n12_N7ee760613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760613fooEv,_ZThn8_N7ee760613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76061 = { "ee76061", // class name
+ bases_ee76061, 4,
+ &(vtc_ee76061[0]), // expected_vtbl_contents
+ &(vtt_ee76061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76061),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names501,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7061 : virtual cc061 {
+ int d;
+ virtual void bar(); // _ZN6dd70613barEv
+ virtual void foo(); // _ZN6dd70613fooEv
+ ~dd7061(); // tgen
+ dd7061(); // tgen
+};
+//SIG(-1 dd7061) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7061 ::bar(){vfunc_called(this, "_ZN6dd70613barEv");}
+void dd7061 ::foo(){vfunc_called(this, "_ZN6dd70613fooEv");}
+dd7061 ::~dd7061(){ note_dtor("dd7061", this);} // tgen
+dd7061 ::dd7061(){ note_ctor("dd7061", this);} // tgen
+
+static void Test_dd7061()
+{
+ extern Class_Descriptor cd_dd7061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7061, buf);
+ dd7061 *dp, &lv = *(dp=new (buf) dd7061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,8), "dd7061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,8), "dd7061");
+ check_base_class_offset(lv, (cc061*), ABISELECT(16,8), "dd7061");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7061.d");
+ test_class_info(&lv, &cd_dd7061);
+ dp->~dd7061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7061(Test_dd7061, "dd7061", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7061C1Ev();
+extern void _ZN6dd7061D1Ev();
+Name_Map name_map_dd7061[] = {
+ NSPAIR(_ZN6dd7061C1Ev),
+ NSPAIR(_ZN6dd7061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+static Base_Class bases_dd7061[] = {
+ // 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_bb61, 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_cc061, 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 _ZTI6dd7061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7061[];
+static VTT_ENTRY vtt_dd7061[] = {
+ {&(_ZTV6dd7061[3]), 3,11},
+ {&(_ZTV6dd7061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static VTBL_ENTRY alt_thunk_names502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7061 = { "dd7061", // class name
+ bases_dd7061, 3,
+ &(vtc_dd7061[0]), // expected_vtbl_contents
+ &(vtt_dd7061[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7061),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names502,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07061 : dd7061 {
+ int e;
+ ~ee07061(); // tgen
+ ee07061(); // tgen
+};
+//SIG(1 ee07061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07061 ::~ee07061(){ note_dtor("ee07061", this);} // tgen
+ee07061 ::ee07061(){ note_ctor("ee07061", this);} // tgen
+
+static void Test_ee07061()
+{
+ extern Class_Descriptor cd_ee07061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07061, buf);
+ ee07061 *dp, &lv = *(dp=new (buf) ee07061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee07061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee07061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(16,12), "ee07061");
+ check_base_class_offset(lv, (dd7061*), 0, "ee07061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07061.e");
+ test_class_info(&lv, &cd_ee07061);
+ dp->~ee07061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07061(Test_ee07061, "ee07061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07061C1Ev();
+extern void _ZN7ee07061D1Ev();
+Name_Map name_map_ee07061[] = {
+ NSPAIR(_ZN7ee07061C1Ev),
+ NSPAIR(_ZN7ee07061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee07061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee07061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee07061[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee07061[] = {
+ {&(_ZTV7ee07061[3]), 3,11},
+ {&(_tg__ZTV6dd7061__7ee07061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee07061[4]), 4,6},
+ {&(_ZTV7ee07061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07061[];
+extern VTBL_ENTRY _ZTV7ee07061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07061[];
+static VTBL_ENTRY alt_thunk_names503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07061 = { "ee07061", // class name
+ bases_ee07061, 4,
+ &(vtc_ee07061[0]), // expected_vtbl_contents
+ &(vtt_ee07061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07061),4, //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 ee17061 : virtual dd7061 {
+ int e;
+ ~ee17061(); // tgen
+ ee17061(); // tgen
+};
+//SIG(1 ee17061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17061 ::~ee17061(){ note_dtor("ee17061", this);} // tgen
+ee17061 ::ee17061(){ note_ctor("ee17061", this);} // tgen
+
+static void Test_ee17061()
+{
+ extern Class_Descriptor cd_ee17061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17061, buf);
+ ee17061 *dp, &lv = *(dp=new (buf) ee17061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee17061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee17061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(32,16), "ee17061");
+ check_base_class_offset(lv, (dd7061*), ABISELECT(16,8), "ee17061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17061.e");
+ test_class_info(&lv, &cd_ee17061);
+ dp->~ee17061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17061(Test_ee17061, "ee17061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17061C1Ev();
+extern void _ZN7ee17061D1Ev();
+Name_Map name_map_ee17061[] = {
+ NSPAIR(_ZN7ee17061C1Ev),
+ NSPAIR(_ZN7ee17061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee17061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, 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 _ZTI7ee17061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17061[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee17061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee17061[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee17061[] = {
+ {&(_ZTV7ee17061[4]), 4,17},
+ {&(_ZTV7ee17061[9]), 9,17},
+ {&(_ZTV7ee17061[15]), 15,17},
+ {&(_tg__ZTV6dd7061__7ee17061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee17061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17061[];
+extern VTBL_ENTRY _ZTV7ee17061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17061[];
+static VTBL_ENTRY alt_thunk_names504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17061 = { "ee17061", // class name
+ bases_ee17061, 4,
+ &(vtc_ee17061[0]), // expected_vtbl_contents
+ &(vtt_ee17061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17061),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17061),5, //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 ee27061 : dd7061 {
+ int e;
+ virtual void foo(); // _ZN7ee270613fooEv
+ ~ee27061(); // tgen
+ ee27061(); // tgen
+};
+//SIG(1 ee27061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27061 ::foo(){vfunc_called(this, "_ZN7ee270613fooEv");}
+ee27061 ::~ee27061(){ note_dtor("ee27061", this);} // tgen
+ee27061 ::ee27061(){ note_ctor("ee27061", this);} // tgen
+
+static void Test_ee27061()
+{
+ extern Class_Descriptor cd_ee27061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27061, buf);
+ ee27061 *dp, &lv = *(dp=new (buf) ee27061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee27061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee27061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(16,12), "ee27061");
+ check_base_class_offset(lv, (dd7061*), 0, "ee27061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27061.e");
+ test_class_info(&lv, &cd_ee27061);
+ dp->~ee27061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27061(Test_ee27061, "ee27061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27061C1Ev();
+extern void _ZN7ee27061D1Ev();
+Name_Map name_map_ee27061[] = {
+ NSPAIR(_ZN7ee27061C1Ev),
+ NSPAIR(_ZN7ee27061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee27061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN7ee270613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270613fooEv,_ZTv0_n12_N7ee270613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270613fooEv,_ZThn12_N7ee270613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN7ee270613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270613fooEv,_ZTv0_n12_N7ee270613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee27061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee27061[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee27061[] = {
+ {&(_ZTV7ee27061[3]), 3,11},
+ {&(_tg__ZTV6dd7061__7ee27061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee27061[4]), 4,6},
+ {&(_ZTV7ee27061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27061[];
+extern VTBL_ENTRY _ZTV7ee27061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27061[];
+static VTBL_ENTRY alt_thunk_names505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270613fooEv,_ZTv0_n12_N7ee270613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270613fooEv,_ZThn12_N7ee270613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27061 = { "ee27061", // class name
+ bases_ee27061, 4,
+ &(vtc_ee27061[0]), // expected_vtbl_contents
+ &(vtt_ee27061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names505,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37061 : virtual dd7061 {
+ int e;
+ virtual void foo(); // _ZN7ee370613fooEv
+ ~ee37061(); // tgen
+ ee37061(); // tgen
+};
+//SIG(1 ee37061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37061 ::foo(){vfunc_called(this, "_ZN7ee370613fooEv");}
+ee37061 ::~ee37061(){ note_dtor("ee37061", this);} // tgen
+ee37061 ::ee37061(){ note_ctor("ee37061", this);} // tgen
+
+static void Test_ee37061()
+{
+ extern Class_Descriptor cd_ee37061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37061, buf);
+ ee37061 *dp, &lv = *(dp=new (buf) ee37061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee37061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee37061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(32,16), "ee37061");
+ check_base_class_offset(lv, (dd7061*), ABISELECT(16,8), "ee37061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37061.e");
+ test_class_info(&lv, &cd_ee37061);
+ dp->~ee37061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37061(Test_ee37061, "ee37061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37061C1Ev();
+extern void _ZN7ee37061D1Ev();
+Name_Map name_map_ee37061[] = {
+ NSPAIR(_ZN7ee37061C1Ev),
+ NSPAIR(_ZN7ee37061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee37061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, ABISELECT(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 _ZTI7ee37061[];
+extern void _ZN7ee370613fooEv();
+extern void _ZN6dd70613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370613fooEv,_ZTv0_n20_N7ee370613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370613fooEv,_ZThn8_N7ee370613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370613fooEv,_ZTv0_n12_N7ee370613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370613fooEv,_ZThn16_N7ee370613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37061[0]),
+ (VTBL_ENTRY)&_ZN7ee370613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370613fooEv,_ZTv0_n20_N7ee370613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370613fooEv,_ZTv0_n12_N7ee370613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee37061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee37061[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee37061[] = {
+ {&(_ZTV7ee37061[4]), 4,18},
+ {&(_ZTV7ee37061[10]), 10,18},
+ {&(_ZTV7ee37061[16]), 16,18},
+ {&(_tg__ZTV6dd7061__7ee37061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee37061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37061[];
+extern VTBL_ENTRY _ZTV7ee37061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37061[];
+static VTBL_ENTRY alt_thunk_names506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370613fooEv,_ZTv0_n12_N7ee370613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370613fooEv,_ZThn16_N7ee370613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370613fooEv,_ZTv0_n20_N7ee370613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370613fooEv,_ZThn8_N7ee370613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37061 = { "ee37061", // class name
+ bases_ee37061, 4,
+ &(vtc_ee37061[0]), // expected_vtbl_contents
+ &(vtt_ee37061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37061),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names506,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47061 : dd7061 {
+ int e;
+ virtual void bar(); // _ZN7ee470613barEv
+ ~ee47061(); // tgen
+ ee47061(); // tgen
+};
+//SIG(1 ee47061) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47061 ::bar(){vfunc_called(this, "_ZN7ee470613barEv");}
+ee47061 ::~ee47061(){ note_dtor("ee47061", this);} // tgen
+ee47061 ::ee47061(){ note_ctor("ee47061", this);} // tgen
+
+static void Test_ee47061()
+{
+ extern Class_Descriptor cd_ee47061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47061, buf);
+ ee47061 *dp, &lv = *(dp=new (buf) ee47061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee47061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee47061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(16,12), "ee47061");
+ check_base_class_offset(lv, (dd7061*), 0, "ee47061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47061.e");
+ test_class_info(&lv, &cd_ee47061);
+ dp->~ee47061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47061(Test_ee47061, "ee47061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47061C1Ev();
+extern void _ZN7ee47061D1Ev();
+Name_Map name_map_ee47061[] = {
+ NSPAIR(_ZN7ee47061C1Ev),
+ NSPAIR(_ZN7ee47061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee47061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47061[];
+extern void _ZN7ee470613barEv();
+extern void _ZN6dd70613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee470613barEv,_ZTv0_n16_N7ee470613barEv)();
+extern void ABISELECT(_ZThn16_N7ee470613barEv,_ZThn12_N7ee470613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47061[0]),
+ (VTBL_ENTRY)&_ZN7ee470613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470613barEv,_ZTv0_n16_N7ee470613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee47061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee47061[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee47061[] = {
+ {&(_ZTV7ee47061[3]), 3,11},
+ {&(_tg__ZTV6dd7061__7ee47061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee47061[4]), 4,6},
+ {&(_ZTV7ee47061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47061[];
+extern VTBL_ENTRY _ZTV7ee47061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47061[];
+static VTBL_ENTRY alt_thunk_names507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470613barEv,_ZTv0_n16_N7ee470613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470613barEv,_ZThn12_N7ee470613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47061 = { "ee47061", // class name
+ bases_ee47061, 4,
+ &(vtc_ee47061[0]), // expected_vtbl_contents
+ &(vtt_ee47061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names507,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57061 : virtual dd7061 {
+ int e;
+ virtual void bar(); // _ZN7ee570613barEv
+ ~ee57061(); // tgen
+ ee57061(); // tgen
+};
+//SIG(1 ee57061) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57061 ::bar(){vfunc_called(this, "_ZN7ee570613barEv");}
+ee57061 ::~ee57061(){ note_dtor("ee57061", this);} // tgen
+ee57061 ::ee57061(){ note_ctor("ee57061", this);} // tgen
+
+static void Test_ee57061()
+{
+ extern Class_Descriptor cd_ee57061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57061, buf);
+ ee57061 *dp, &lv = *(dp=new (buf) ee57061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee57061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee57061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(32,16), "ee57061");
+ check_base_class_offset(lv, (dd7061*), ABISELECT(16,8), "ee57061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57061.e");
+ test_class_info(&lv, &cd_ee57061);
+ dp->~ee57061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57061(Test_ee57061, "ee57061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57061C1Ev();
+extern void _ZN7ee57061D1Ev();
+Name_Map name_map_ee57061[] = {
+ NSPAIR(_ZN7ee57061C1Ev),
+ NSPAIR(_ZN7ee57061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee57061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, ABISELECT(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 _ZTI7ee57061[];
+extern void _ZN7ee570613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570613barEv,_ZTv0_n16_N7ee570613barEv)();
+extern void ABISELECT(_ZThn16_N7ee570613barEv,_ZThn8_N7ee570613barEv)() __attribute__((weak));
+extern void _ZN6dd70613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee570613barEv,_ZTv0_n16_N7ee570613barEv)();
+extern void ABISELECT(_ZThn32_N7ee570613barEv,_ZThn16_N7ee570613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57061[0]),
+ (VTBL_ENTRY)&_ZN7ee570613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570613barEv,_ZTv0_n16_N7ee570613barEv),
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570613barEv,_ZTv0_n16_N7ee570613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee57061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee57061[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee57061[] = {
+ {&(_ZTV7ee57061[4]), 4,18},
+ {&(_ZTV7ee57061[10]), 10,18},
+ {&(_ZTV7ee57061[16]), 16,18},
+ {&(_tg__ZTV6dd7061__7ee57061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee57061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57061[];
+extern VTBL_ENTRY _ZTV7ee57061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57061[];
+static VTBL_ENTRY alt_thunk_names508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570613barEv,_ZTv0_n16_N7ee570613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570613barEv,_ZThn16_N7ee570613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570613barEv,_ZThn8_N7ee570613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57061 = { "ee57061", // class name
+ bases_ee57061, 4,
+ &(vtc_ee57061[0]), // expected_vtbl_contents
+ &(vtt_ee57061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57061),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names508,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67061 : dd7061 {
+ int e;
+ virtual void foo(); // _ZN7ee670613fooEv
+ virtual void bar(); // _ZN7ee670613barEv
+ ~ee67061(); // tgen
+ ee67061(); // tgen
+};
+//SIG(1 ee67061) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67061 ::foo(){vfunc_called(this, "_ZN7ee670613fooEv");}
+void ee67061 ::bar(){vfunc_called(this, "_ZN7ee670613barEv");}
+ee67061 ::~ee67061(){ note_dtor("ee67061", this);} // tgen
+ee67061 ::ee67061(){ note_ctor("ee67061", this);} // tgen
+
+static void Test_ee67061()
+{
+ extern Class_Descriptor cd_ee67061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67061, buf);
+ ee67061 *dp, &lv = *(dp=new (buf) ee67061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(16,12), "ee67061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(16,12), "ee67061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(16,12), "ee67061");
+ check_base_class_offset(lv, (dd7061*), 0, "ee67061");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67061.e");
+ test_class_info(&lv, &cd_ee67061);
+ dp->~ee67061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67061(Test_ee67061, "ee67061", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67061C1Ev();
+extern void _ZN7ee67061D1Ev();
+Name_Map name_map_ee67061[] = {
+ NSPAIR(_ZN7ee67061C1Ev),
+ NSPAIR(_ZN7ee67061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee67061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67061[];
+extern void _ZN7ee670613barEv();
+extern void _ZN7ee670613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670613fooEv,_ZTv0_n12_N7ee670613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670613fooEv,_ZThn12_N7ee670613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670613barEv,_ZTv0_n16_N7ee670613barEv)();
+extern void ABISELECT(_ZThn16_N7ee670613barEv,_ZThn12_N7ee670613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67061[0]),
+ (VTBL_ENTRY)&_ZN7ee670613barEv,
+ (VTBL_ENTRY)&_ZN7ee670613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670613fooEv,_ZTv0_n12_N7ee670613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670613barEv,_ZTv0_n16_N7ee670613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee67061[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee67061[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee67061[] = {
+ {&(_ZTV7ee67061[3]), 3,11},
+ {&(_tg__ZTV6dd7061__7ee67061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee67061[4]), 4,6},
+ {&(_ZTV7ee67061[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67061[];
+extern VTBL_ENTRY _ZTV7ee67061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67061[];
+static VTBL_ENTRY alt_thunk_names509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn12_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn12_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670613barEv,_ZTv0_n16_N7ee670613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670613barEv,_ZThn12_N7ee670613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670613fooEv,_ZTv0_n12_N7ee670613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670613fooEv,_ZThn12_N7ee670613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67061 = { "ee67061", // class name
+ bases_ee67061, 4,
+ &(vtc_ee67061[0]), // expected_vtbl_contents
+ &(vtt_ee67061[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67061),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67061),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67061),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names509,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77061 : virtual dd7061 {
+ int e;
+ virtual void foo(); // _ZN7ee770613fooEv
+ virtual void bar(); // _ZN7ee770613barEv
+ ~ee77061(); // tgen
+ ee77061(); // tgen
+};
+//SIG(1 ee77061) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77061 ::foo(){vfunc_called(this, "_ZN7ee770613fooEv");}
+void ee77061 ::bar(){vfunc_called(this, "_ZN7ee770613barEv");}
+ee77061 ::~ee77061(){ note_dtor("ee77061", this);} // tgen
+ee77061 ::ee77061(){ note_ctor("ee77061", this);} // tgen
+
+static void Test_ee77061()
+{
+ extern Class_Descriptor cd_ee77061;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77061, buf);
+ ee77061 *dp, &lv = *(dp=new (buf) ee77061());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77061)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77061)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc061*), ABISELECT(32,16), "ee77061");
+ check_base_class_offset(lv, (bb61*)(cc061*), ABISELECT(32,16), "ee77061");
+ check_base_class_offset(lv, (cc061*)(dd7061*), ABISELECT(32,16), "ee77061");
+ check_base_class_offset(lv, (dd7061*), ABISELECT(16,8), "ee77061");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77061.e");
+ test_class_info(&lv, &cd_ee77061);
+ dp->~ee77061();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77061(Test_ee77061, "ee77061", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77061C1Ev();
+extern void _ZN7ee77061D1Ev();
+Name_Map name_map_ee77061[] = {
+ NSPAIR(_ZN7ee77061C1Ev),
+ NSPAIR(_ZN7ee77061D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc061;
+extern VTBL_ENTRY _ZTI5cc061[];
+extern VTBL_ENTRY _ZTV5cc061[];
+extern Class_Descriptor cd_dd7061;
+extern VTBL_ENTRY _ZTI6dd7061[];
+extern VTBL_ENTRY _ZTV6dd7061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7061[];
+static Base_Class bases_ee77061[] = {
+ // 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_bb61, 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_cc061, 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_dd7061, ABISELECT(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 _ZTI7ee77061[];
+extern void _ZN7ee770613fooEv();
+extern void _ZN7ee770613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770613barEv,_ZTv0_n16_N7ee770613barEv)();
+extern void ABISELECT(_ZThn16_N7ee770613barEv,_ZThn8_N7ee770613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770613fooEv,_ZTv0_n20_N7ee770613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770613fooEv,_ZThn8_N7ee770613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770613fooEv,_ZTv0_n12_N7ee770613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770613fooEv,_ZThn16_N7ee770613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770613barEv,_ZTv0_n16_N7ee770613barEv)();
+extern void ABISELECT(_ZThn32_N7ee770613barEv,_ZThn16_N7ee770613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77061[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77061[0]),
+ (VTBL_ENTRY)&_ZN7ee770613fooEv,
+ (VTBL_ENTRY)&_ZN7ee770613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770613barEv,_ZTv0_n16_N7ee770613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770613fooEv,_ZTv0_n20_N7ee770613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770613fooEv,_ZTv0_n12_N7ee770613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770613barEv,_ZTv0_n16_N7ee770613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77061[];
+extern void _ZN6dd70613barEv();
+extern void _ZN6dd70613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7061__7ee77061[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&_ZN6dd70613barEv,
+ (VTBL_ENTRY)&_ZN6dd70613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv)();
+extern void ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb615cc061__6dd7061__7ee77061[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7061[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv),
+};
+static VTT_ENTRY vtt_ee77061[] = {
+ {&(_ZTV7ee77061[4]), 4,19},
+ {&(_ZTV7ee77061[11]), 11,19},
+ {&(_ZTV7ee77061[17]), 17,19},
+ {&(_tg__ZTV6dd7061__7ee77061[3]), 3,5},
+ {&(_tg__ZTV4bb615cc061__6dd7061__7ee77061[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77061[];
+extern VTBL_ENTRY _ZTV7ee77061[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77061[];
+static VTBL_ENTRY alt_thunk_names510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70613barEv,_ZTv0_n16_N6dd70613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613barEv,_ZThn8_N6dd70613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70613fooEv,_ZTv0_n12_N6dd70613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70613fooEv,_ZThn8_N6dd70613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770613fooEv,_ZTv0_n12_N7ee770613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770613fooEv,_ZThn16_N7ee770613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770613fooEv,_ZTv0_n20_N7ee770613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770613fooEv,_ZThn8_N7ee770613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770613barEv,_ZTv0_n16_N7ee770613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770613barEv,_ZThn16_N7ee770613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770613barEv,_ZThn8_N7ee770613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77061 = { "ee77061", // class name
+ bases_ee77061, 4,
+ &(vtc_ee77061[0]), // expected_vtbl_contents
+ &(vtt_ee77061[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77061),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77061),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77061),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names510,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc161 : virtual bb61 {
+ int c;
+ ~cc161(); // tgen
+ cc161(); // tgen
+};
+//SIG(-1 cc161) C1{ VBC2{ BC3{ v2 Fi} v1 v2 Fi} Fi}
+
+
+cc161 ::~cc161(){ note_dtor("cc161", this);} // tgen
+cc161 ::cc161(){ note_ctor("cc161", this);} // tgen
+
+static void Test_cc161()
+{
+ extern Class_Descriptor cd_cc161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc161, buf);
+ cc161 *dp, &lv = *(dp=new (buf) cc161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,8), "cc161");
+ check_base_class_offset(lv, (bb61*), ABISELECT(16,8), "cc161");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc161.c");
+ test_class_info(&lv, &cd_cc161);
+ dp->~cc161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc161(Test_cc161, "cc161", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc161C1Ev();
+extern void _ZN5cc161D1Ev();
+Name_Map name_map_cc161[] = {
+ NSPAIR(_ZN5cc161C1Ev),
+ NSPAIR(_ZN5cc161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc161[] = {
+ // 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_bb61, 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 _ZTI5cc161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_cc161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV5cc161[];
+static VTT_ENTRY vtt_cc161[] = {
+ {&(_ZTV5cc161[3]), 3,9},
+ {&(_ZTV5cc161[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+Class_Descriptor cd_cc161 = { "cc161", // class name
+ bases_cc161, 2,
+ &(vtc_cc161[0]), // expected_vtbl_contents
+ &(vtt_cc161[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc161),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc161),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 dd0161 : cc161 {
+ int d;
+ ~dd0161(); // tgen
+ dd0161(); // tgen
+};
+//SIG(-1 dd0161) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0161 ::~dd0161(){ note_dtor("dd0161", this);} // tgen
+dd0161 ::dd0161(){ note_ctor("dd0161", this);} // tgen
+
+static void Test_dd0161()
+{
+ extern Class_Descriptor cd_dd0161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0161, buf);
+ dd0161 *dp, &lv = *(dp=new (buf) dd0161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd0161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(16,12), "dd0161");
+ check_base_class_offset(lv, (cc161*), 0, "dd0161");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0161.d");
+ test_class_info(&lv, &cd_dd0161);
+ dp->~dd0161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0161(Test_dd0161, "dd0161", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0161C1Ev();
+extern void _ZN6dd0161D1Ev();
+Name_Map name_map_dd0161[] = {
+ NSPAIR(_ZN6dd0161C1Ev),
+ NSPAIR(_ZN6dd0161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd0161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd0161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd0161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd0161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd0161[] = {
+ {&(_ZTV6dd0161[3]), 3,9},
+ {&(_tg__ZTV5cc161__6dd0161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd0161[4]), 4,6},
+ {&(_ZTV6dd0161[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+Class_Descriptor cd_dd0161 = { "dd0161", // class name
+ bases_dd0161, 3,
+ &(vtc_dd0161[0]), // expected_vtbl_contents
+ &(vtt_dd0161[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0161),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0161),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 ee00161 : dd0161 {
+ int e;
+ ~ee00161(); // tgen
+ ee00161(); // tgen
+};
+//SIG(1 ee00161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00161 ::~ee00161(){ note_dtor("ee00161", this);} // tgen
+ee00161 ::ee00161(){ note_ctor("ee00161", this);} // tgen
+
+static void Test_ee00161()
+{
+ extern Class_Descriptor cd_ee00161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00161, buf);
+ ee00161 *dp, &lv = *(dp=new (buf) ee00161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee00161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(24,16), "ee00161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), 0, "ee00161");
+ check_base_class_offset(lv, (dd0161*), 0, "ee00161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00161.e");
+ test_class_info(&lv, &cd_ee00161);
+ dp->~ee00161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00161(Test_ee00161, "ee00161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00161C1Ev();
+extern void _ZN7ee00161D1Ev();
+Name_Map name_map_ee00161[] = {
+ NSPAIR(_ZN7ee00161C1Ev),
+ NSPAIR(_ZN7ee00161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee00161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee00161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00161[0]),
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee00161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee00161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee00161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee00161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee00161[] = {
+ {&(_ZTV7ee00161[3]), 3,9},
+ {&(_tg__ZTV6dd0161__7ee00161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee00161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee00161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee00161[4]), 4,6},
+ {&(_ZTV7ee00161[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee00161[];
+extern VTBL_ENTRY _ZTV7ee00161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00161[];
+Class_Descriptor cd_ee00161 = { "ee00161", // class name
+ bases_ee00161, 4,
+ &(vtc_ee00161[0]), // expected_vtbl_contents
+ &(vtt_ee00161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00161),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00161),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 ee10161 : virtual dd0161 {
+ int e;
+ ~ee10161(); // tgen
+ ee10161(); // tgen
+};
+//SIG(1 ee10161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10161 ::~ee10161(){ note_dtor("ee10161", this);} // tgen
+ee10161 ::ee10161(){ note_ctor("ee10161", this);} // tgen
+
+static void Test_ee10161()
+{
+ extern Class_Descriptor cd_ee10161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10161, buf);
+ ee10161 *dp, &lv = *(dp=new (buf) ee10161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee10161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(32,20), "ee10161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), ABISELECT(16,8), "ee10161");
+ check_base_class_offset(lv, (dd0161*), ABISELECT(16,8), "ee10161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10161.e");
+ test_class_info(&lv, &cd_ee10161);
+ dp->~ee10161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10161(Test_ee10161, "ee10161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10161C1Ev();
+extern void _ZN7ee10161D1Ev();
+Name_Map name_map_ee10161[] = {
+ NSPAIR(_ZN7ee10161C1Ev),
+ NSPAIR(_ZN7ee10161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee10161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 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 _ZTI7ee10161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee10161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10161[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10161[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee10161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee10161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee10161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee10161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee10161[] = {
+ {&(_ZTV7ee10161[4]), 4,13},
+ {&(_ZTV7ee10161[7]), 7,13},
+ {&(_ZTV7ee10161[11]), 11,13},
+ {&(_tg__ZTV6dd0161__7ee10161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee10161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee10161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee10161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10161[];
+extern VTBL_ENTRY _ZTV7ee10161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10161[];
+Class_Descriptor cd_ee10161 = { "ee10161", // class name
+ bases_ee10161, 4,
+ &(vtc_ee10161[0]), // expected_vtbl_contents
+ &(vtt_ee10161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10161),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10161),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 ee20161 : dd0161 {
+ int e;
+ virtual void foo(); // _ZN7ee201613fooEv
+ ~ee20161(); // tgen
+ ee20161(); // tgen
+};
+//SIG(1 ee20161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20161 ::foo(){vfunc_called(this, "_ZN7ee201613fooEv");}
+ee20161 ::~ee20161(){ note_dtor("ee20161", this);} // tgen
+ee20161 ::ee20161(){ note_ctor("ee20161", this);} // tgen
+
+static void Test_ee20161()
+{
+ extern Class_Descriptor cd_ee20161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20161, buf);
+ ee20161 *dp, &lv = *(dp=new (buf) ee20161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee20161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(24,16), "ee20161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), 0, "ee20161");
+ check_base_class_offset(lv, (dd0161*), 0, "ee20161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20161.e");
+ test_class_info(&lv, &cd_ee20161);
+ dp->~ee20161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20161(Test_ee20161, "ee20161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20161C1Ev();
+extern void _ZN7ee20161D1Ev();
+Name_Map name_map_ee20161[] = {
+ NSPAIR(_ZN7ee20161C1Ev),
+ NSPAIR(_ZN7ee20161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee20161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20161[];
+extern void _ZN7ee201613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201613fooEv,_ZTv0_n12_N7ee201613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201613fooEv,_ZThn16_N7ee201613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee20161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20161[0]),
+ (VTBL_ENTRY)&_ZN7ee201613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201613fooEv,_ZTv0_n12_N7ee201613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee20161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee20161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee20161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee20161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee20161[] = {
+ {&(_ZTV7ee20161[3]), 3,10},
+ {&(_tg__ZTV6dd0161__7ee20161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee20161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee20161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee20161[4]), 4,6},
+ {&(_ZTV7ee20161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20161[];
+extern VTBL_ENTRY _ZTV7ee20161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20161[];
+static VTBL_ENTRY alt_thunk_names511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201613fooEv,_ZTv0_n12_N7ee201613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201613fooEv,_ZThn16_N7ee201613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20161 = { "ee20161", // class name
+ bases_ee20161, 4,
+ &(vtc_ee20161[0]), // expected_vtbl_contents
+ &(vtt_ee20161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20161),6, //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 ee30161 : virtual dd0161 {
+ int e;
+ virtual void foo(); // _ZN7ee301613fooEv
+ ~ee30161(); // tgen
+ ee30161(); // tgen
+};
+//SIG(1 ee30161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30161 ::foo(){vfunc_called(this, "_ZN7ee301613fooEv");}
+ee30161 ::~ee30161(){ note_dtor("ee30161", this);} // tgen
+ee30161 ::ee30161(){ note_ctor("ee30161", this);} // tgen
+
+static void Test_ee30161()
+{
+ extern Class_Descriptor cd_ee30161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30161, buf);
+ ee30161 *dp, &lv = *(dp=new (buf) ee30161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee30161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(32,20), "ee30161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), ABISELECT(16,8), "ee30161");
+ check_base_class_offset(lv, (dd0161*), ABISELECT(16,8), "ee30161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30161.e");
+ test_class_info(&lv, &cd_ee30161);
+ dp->~ee30161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30161(Test_ee30161, "ee30161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30161C1Ev();
+extern void _ZN7ee30161D1Ev();
+Name_Map name_map_ee30161[] = {
+ NSPAIR(_ZN7ee30161C1Ev),
+ NSPAIR(_ZN7ee30161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee30161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 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 _ZTI7ee30161[];
+extern void _ZN7ee301613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301613fooEv,_ZTv0_n12_N7ee301613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301613fooEv,_ZThn20_N7ee301613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee30161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30161[0]),
+ (VTBL_ENTRY)&_ZN7ee301613fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30161[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301613fooEv,_ZTv0_n12_N7ee301613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee30161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee30161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee30161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee30161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee30161[] = {
+ {&(_ZTV7ee30161[4]), 4,14},
+ {&(_ZTV7ee30161[8]), 8,14},
+ {&(_ZTV7ee30161[12]), 12,14},
+ {&(_tg__ZTV6dd0161__7ee30161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee30161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee30161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee30161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30161[];
+extern VTBL_ENTRY _ZTV7ee30161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30161[];
+static VTBL_ENTRY alt_thunk_names512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301613fooEv,_ZTv0_n12_N7ee301613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301613fooEv,_ZThn20_N7ee301613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30161 = { "ee30161", // class name
+ bases_ee30161, 4,
+ &(vtc_ee30161[0]), // expected_vtbl_contents
+ &(vtt_ee30161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30161),7, //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 ee40161 : dd0161 {
+ int e;
+ virtual void bar(); // _ZN7ee401613barEv
+ ~ee40161(); // tgen
+ ee40161(); // tgen
+};
+//SIG(1 ee40161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40161 ::bar(){vfunc_called(this, "_ZN7ee401613barEv");}
+ee40161 ::~ee40161(){ note_dtor("ee40161", this);} // tgen
+ee40161 ::ee40161(){ note_ctor("ee40161", this);} // tgen
+
+static void Test_ee40161()
+{
+ extern Class_Descriptor cd_ee40161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40161, buf);
+ ee40161 *dp, &lv = *(dp=new (buf) ee40161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee40161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(24,16), "ee40161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), 0, "ee40161");
+ check_base_class_offset(lv, (dd0161*), 0, "ee40161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40161.e");
+ test_class_info(&lv, &cd_ee40161);
+ dp->~ee40161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40161(Test_ee40161, "ee40161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40161C1Ev();
+extern void _ZN7ee40161D1Ev();
+Name_Map name_map_ee40161[] = {
+ NSPAIR(_ZN7ee40161C1Ev),
+ NSPAIR(_ZN7ee40161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee40161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40161[];
+extern void _ZN7ee401613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401613barEv,_ZTv0_n16_N7ee401613barEv)();
+extern void ABISELECT(_ZThn24_N7ee401613barEv,_ZThn16_N7ee401613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40161[0]),
+ (VTBL_ENTRY)&_ZN7ee401613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401613barEv,_ZTv0_n16_N7ee401613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee40161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee40161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee40161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee40161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee40161[] = {
+ {&(_ZTV7ee40161[3]), 3,10},
+ {&(_tg__ZTV6dd0161__7ee40161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee40161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee40161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee40161[4]), 4,6},
+ {&(_ZTV7ee40161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40161[];
+extern VTBL_ENTRY _ZTV7ee40161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40161[];
+static VTBL_ENTRY alt_thunk_names513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401613barEv,_ZTv0_n16_N7ee401613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401613barEv,_ZThn16_N7ee401613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40161 = { "ee40161", // class name
+ bases_ee40161, 4,
+ &(vtc_ee40161[0]), // expected_vtbl_contents
+ &(vtt_ee40161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40161),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names513,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50161 : virtual dd0161 {
+ int e;
+ virtual void bar(); // _ZN7ee501613barEv
+ ~ee50161(); // tgen
+ ee50161(); // tgen
+};
+//SIG(1 ee50161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50161 ::bar(){vfunc_called(this, "_ZN7ee501613barEv");}
+ee50161 ::~ee50161(){ note_dtor("ee50161", this);} // tgen
+ee50161 ::ee50161(){ note_ctor("ee50161", this);} // tgen
+
+static void Test_ee50161()
+{
+ extern Class_Descriptor cd_ee50161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50161, buf);
+ ee50161 *dp, &lv = *(dp=new (buf) ee50161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee50161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(32,20), "ee50161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), ABISELECT(16,8), "ee50161");
+ check_base_class_offset(lv, (dd0161*), ABISELECT(16,8), "ee50161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50161.e");
+ test_class_info(&lv, &cd_ee50161);
+ dp->~ee50161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50161(Test_ee50161, "ee50161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50161C1Ev();
+extern void _ZN7ee50161D1Ev();
+Name_Map name_map_ee50161[] = {
+ NSPAIR(_ZN7ee50161C1Ev),
+ NSPAIR(_ZN7ee50161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee50161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 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 _ZTI7ee50161[];
+extern void _ZN7ee501613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501613barEv,_ZTv0_n16_N7ee501613barEv)();
+extern void ABISELECT(_ZThn32_N7ee501613barEv,_ZThn20_N7ee501613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50161[0]),
+ (VTBL_ENTRY)&_ZN7ee501613barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50161[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501613barEv,_ZTv0_n16_N7ee501613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee50161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee50161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee50161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee50161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee50161[] = {
+ {&(_ZTV7ee50161[4]), 4,14},
+ {&(_ZTV7ee50161[8]), 8,14},
+ {&(_ZTV7ee50161[12]), 12,14},
+ {&(_tg__ZTV6dd0161__7ee50161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee50161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee50161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee50161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50161[];
+extern VTBL_ENTRY _ZTV7ee50161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50161[];
+static VTBL_ENTRY alt_thunk_names514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501613barEv,_ZTv0_n16_N7ee501613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501613barEv,_ZThn20_N7ee501613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50161 = { "ee50161", // class name
+ bases_ee50161, 4,
+ &(vtc_ee50161[0]), // expected_vtbl_contents
+ &(vtt_ee50161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50161),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names514,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60161 : dd0161 {
+ int e;
+ virtual void foo(); // _ZN7ee601613fooEv
+ virtual void bar(); // _ZN7ee601613barEv
+ ~ee60161(); // tgen
+ ee60161(); // tgen
+};
+//SIG(1 ee60161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60161 ::foo(){vfunc_called(this, "_ZN7ee601613fooEv");}
+void ee60161 ::bar(){vfunc_called(this, "_ZN7ee601613barEv");}
+ee60161 ::~ee60161(){ note_dtor("ee60161", this);} // tgen
+ee60161 ::ee60161(){ note_ctor("ee60161", this);} // tgen
+
+static void Test_ee60161()
+{
+ extern Class_Descriptor cd_ee60161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60161, buf);
+ ee60161 *dp, &lv = *(dp=new (buf) ee60161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee60161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(24,16), "ee60161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), 0, "ee60161");
+ check_base_class_offset(lv, (dd0161*), 0, "ee60161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60161.e");
+ test_class_info(&lv, &cd_ee60161);
+ dp->~ee60161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60161(Test_ee60161, "ee60161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60161C1Ev();
+extern void _ZN7ee60161D1Ev();
+Name_Map name_map_ee60161[] = {
+ NSPAIR(_ZN7ee60161C1Ev),
+ NSPAIR(_ZN7ee60161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee60161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60161[];
+extern void _ZN7ee601613fooEv();
+extern void _ZN7ee601613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601613fooEv,_ZTv0_n12_N7ee601613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601613fooEv,_ZThn16_N7ee601613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601613barEv,_ZTv0_n16_N7ee601613barEv)();
+extern void ABISELECT(_ZThn24_N7ee601613barEv,_ZThn16_N7ee601613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60161[0]),
+ (VTBL_ENTRY)&_ZN7ee601613fooEv,
+ (VTBL_ENTRY)&_ZN7ee601613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601613fooEv,_ZTv0_n12_N7ee601613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601613barEv,_ZTv0_n16_N7ee601613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee60161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee60161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee60161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee60161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee60161[] = {
+ {&(_ZTV7ee60161[3]), 3,11},
+ {&(_tg__ZTV6dd0161__7ee60161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee60161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee60161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee60161[4]), 4,6},
+ {&(_ZTV7ee60161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60161[];
+extern VTBL_ENTRY _ZTV7ee60161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60161[];
+static VTBL_ENTRY alt_thunk_names515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601613barEv,_ZTv0_n16_N7ee601613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601613barEv,_ZThn16_N7ee601613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601613fooEv,_ZTv0_n12_N7ee601613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601613fooEv,_ZThn16_N7ee601613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60161 = { "ee60161", // class name
+ bases_ee60161, 4,
+ &(vtc_ee60161[0]), // expected_vtbl_contents
+ &(vtt_ee60161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60161),6, //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 ee70161 : virtual dd0161 {
+ int e;
+ virtual void foo(); // _ZN7ee701613fooEv
+ virtual void bar(); // _ZN7ee701613barEv
+ ~ee70161(); // tgen
+ ee70161(); // tgen
+};
+//SIG(1 ee70161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70161 ::foo(){vfunc_called(this, "_ZN7ee701613fooEv");}
+void ee70161 ::bar(){vfunc_called(this, "_ZN7ee701613barEv");}
+ee70161 ::~ee70161(){ note_dtor("ee70161", this);} // tgen
+ee70161 ::ee70161(){ note_ctor("ee70161", this);} // tgen
+
+static void Test_ee70161()
+{
+ extern Class_Descriptor cd_ee70161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70161, buf);
+ ee70161 *dp, &lv = *(dp=new (buf) ee70161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee70161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd0161*), ABISELECT(32,20), "ee70161");
+ check_base_class_offset(lv, (cc161*)(dd0161*), ABISELECT(16,8), "ee70161");
+ check_base_class_offset(lv, (dd0161*), ABISELECT(16,8), "ee70161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70161.e");
+ test_class_info(&lv, &cd_ee70161);
+ dp->~ee70161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70161(Test_ee70161, "ee70161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70161C1Ev();
+extern void _ZN7ee70161D1Ev();
+Name_Map name_map_ee70161[] = {
+ NSPAIR(_ZN7ee70161C1Ev),
+ NSPAIR(_ZN7ee70161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd0161;
+extern VTBL_ENTRY _ZTI6dd0161[];
+extern VTBL_ENTRY _ZTV6dd0161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0161[];
+static Base_Class bases_ee70161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0161, 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 _ZTI7ee70161[];
+extern void _ZN7ee701613fooEv();
+extern void _ZN7ee701613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701613fooEv,_ZTv0_n12_N7ee701613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701613fooEv,_ZThn20_N7ee701613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701613barEv,_ZTv0_n16_N7ee701613barEv)();
+extern void ABISELECT(_ZThn32_N7ee701613barEv,_ZThn20_N7ee701613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70161[0]),
+ (VTBL_ENTRY)&_ZN7ee701613fooEv,
+ (VTBL_ENTRY)&_ZN7ee701613barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701613fooEv,_ZTv0_n12_N7ee701613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701613barEv,_ZTv0_n16_N7ee701613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70161[];
+static VTBL_ENTRY _tg__ZTV6dd0161__7ee70161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd0161__7ee70161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd0161__7ee70161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0161__7ee70161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee70161[] = {
+ {&(_ZTV7ee70161[4]), 4,15},
+ {&(_ZTV7ee70161[9]), 9,15},
+ {&(_ZTV7ee70161[13]), 13,15},
+ {&(_tg__ZTV6dd0161__7ee70161[3]), 3,3},
+ {&(_tg__ZTV5cc1616dd0161__7ee70161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd0161__7ee70161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0161__7ee70161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70161[];
+extern VTBL_ENTRY _ZTV7ee70161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70161[];
+static VTBL_ENTRY alt_thunk_names516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701613barEv,_ZTv0_n16_N7ee701613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701613barEv,_ZThn20_N7ee701613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701613fooEv,_ZTv0_n12_N7ee701613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701613fooEv,_ZThn20_N7ee701613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70161 = { "ee70161", // class name
+ bases_ee70161, 4,
+ &(vtc_ee70161[0]), // expected_vtbl_contents
+ &(vtt_ee70161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70161),7, //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 dd1161 : virtual cc161 {
+ int d;
+ ~dd1161(); // tgen
+ dd1161(); // tgen
+};
+//SIG(-1 dd1161) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1161 ::~dd1161(){ note_dtor("dd1161", this);} // tgen
+dd1161 ::dd1161(){ note_ctor("dd1161", this);} // tgen
+
+static void Test_dd1161()
+{
+ extern Class_Descriptor cd_dd1161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1161, buf);
+ dd1161 *dp, &lv = *(dp=new (buf) dd1161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd1161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,16), "dd1161");
+ check_base_class_offset(lv, (cc161*), ABISELECT(16,8), "dd1161");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1161.d");
+ test_class_info(&lv, &cd_dd1161);
+ dp->~dd1161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1161(Test_dd1161, "dd1161", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1161C1Ev();
+extern void _ZN6dd1161D1Ev();
+Name_Map name_map_dd1161[] = {
+ NSPAIR(_ZN6dd1161C1Ev),
+ NSPAIR(_ZN6dd1161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd1161[] = {
+ // 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_bb61, 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_cc161, 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 _ZTI6dd1161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd1161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd1161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd1161[] = {
+ {&(_ZTV6dd1161[4]), 4,13},
+ {&(_ZTV6dd1161[7]), 7,13},
+ {&(_ZTV6dd1161[11]), 11,13},
+ {&(_tg__ZTV5cc161__6dd1161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd1161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+Class_Descriptor cd_dd1161 = { "dd1161", // class name
+ bases_dd1161, 3,
+ &(vtc_dd1161[0]), // expected_vtbl_contents
+ &(vtt_dd1161[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1161),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1161),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 ee01161 : dd1161 {
+ int e;
+ ~ee01161(); // tgen
+ ee01161(); // tgen
+};
+//SIG(1 ee01161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01161 ::~ee01161(){ note_dtor("ee01161", this);} // tgen
+ee01161 ::ee01161(){ note_ctor("ee01161", this);} // tgen
+
+static void Test_ee01161()
+{
+ extern Class_Descriptor cd_ee01161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01161, buf);
+ ee01161 *dp, &lv = *(dp=new (buf) ee01161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee01161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee01161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(16,12), "ee01161");
+ check_base_class_offset(lv, (dd1161*), 0, "ee01161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01161.e");
+ test_class_info(&lv, &cd_ee01161);
+ dp->~ee01161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01161(Test_ee01161, "ee01161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01161C1Ev();
+extern void _ZN7ee01161D1Ev();
+Name_Map name_map_ee01161[] = {
+ NSPAIR(_ZN7ee01161C1Ev),
+ NSPAIR(_ZN7ee01161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee01161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee01161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01161[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee01161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee01161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee01161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee01161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee01161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee01161[] = {
+ {&(_ZTV7ee01161[4]), 4,13},
+ {&(_tg__ZTV6dd1161__7ee01161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee01161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee01161[4]), 4,6},
+ {&(_ZTV7ee01161[7]), 7,13},
+ {&(_ZTV7ee01161[11]), 11,13},
+ {&(_tg__ZTV5cc161__7ee01161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee01161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01161[];
+extern VTBL_ENTRY _ZTV7ee01161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01161[];
+Class_Descriptor cd_ee01161 = { "ee01161", // class name
+ bases_ee01161, 4,
+ &(vtc_ee01161[0]), // expected_vtbl_contents
+ &(vtt_ee01161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01161),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01161),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 ee11161 : virtual dd1161 {
+ int e;
+ ~ee11161(); // tgen
+ ee11161(); // tgen
+};
+//SIG(1 ee11161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11161 ::~ee11161(){ note_dtor("ee11161", this);} // tgen
+ee11161 ::ee11161(){ note_ctor("ee11161", this);} // tgen
+
+static void Test_ee11161()
+{
+ extern Class_Descriptor cd_ee11161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11161, buf);
+ ee11161 *dp, &lv = *(dp=new (buf) ee11161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee11161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee11161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(32,16), "ee11161");
+ check_base_class_offset(lv, (dd1161*), ABISELECT(16,8), "ee11161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11161.e");
+ test_class_info(&lv, &cd_ee11161);
+ dp->~ee11161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11161(Test_ee11161, "ee11161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11161C1Ev();
+extern void _ZN7ee11161D1Ev();
+Name_Map name_map_ee11161[] = {
+ NSPAIR(_ZN7ee11161C1Ev),
+ NSPAIR(_ZN7ee11161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee11161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, ABISELECT(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 _ZTI7ee11161[];
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee11161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11161[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11161[0]),
+ 0,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee11161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee11161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee11161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee11161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee11161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee11161[] = {
+ {&(_ZTV7ee11161[5]), 5,18},
+ {&(_ZTV7ee11161[9]), 9,18},
+ {&(_ZTV7ee11161[12]), 12,18},
+ {&(_ZTV7ee11161[16]), 16,18},
+ {&(_tg__ZTV6dd1161__7ee11161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee11161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee11161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee11161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee11161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11161[];
+extern VTBL_ENTRY _ZTV7ee11161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11161[];
+Class_Descriptor cd_ee11161 = { "ee11161", // class name
+ bases_ee11161, 4,
+ &(vtc_ee11161[0]), // expected_vtbl_contents
+ &(vtt_ee11161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11161),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11161),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 ee21161 : dd1161 {
+ int e;
+ virtual void foo(); // _ZN7ee211613fooEv
+ ~ee21161(); // tgen
+ ee21161(); // tgen
+};
+//SIG(1 ee21161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21161 ::foo(){vfunc_called(this, "_ZN7ee211613fooEv");}
+ee21161 ::~ee21161(){ note_dtor("ee21161", this);} // tgen
+ee21161 ::ee21161(){ note_ctor("ee21161", this);} // tgen
+
+static void Test_ee21161()
+{
+ extern Class_Descriptor cd_ee21161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21161, buf);
+ ee21161 *dp, &lv = *(dp=new (buf) ee21161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee21161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee21161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(16,12), "ee21161");
+ check_base_class_offset(lv, (dd1161*), 0, "ee21161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21161.e");
+ test_class_info(&lv, &cd_ee21161);
+ dp->~ee21161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21161(Test_ee21161, "ee21161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21161C1Ev();
+extern void _ZN7ee21161D1Ev();
+Name_Map name_map_ee21161[] = {
+ NSPAIR(_ZN7ee21161C1Ev),
+ NSPAIR(_ZN7ee21161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee21161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21161[];
+extern void _ZN7ee211613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211613fooEv,_ZTv0_n12_N7ee211613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211613fooEv,_ZThn20_N7ee211613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee21161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21161[0]),
+ (VTBL_ENTRY)&_ZN7ee211613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21161[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211613fooEv,_ZTv0_n12_N7ee211613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee21161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee21161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee21161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee21161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee21161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee21161[] = {
+ {&(_ZTV7ee21161[4]), 4,14},
+ {&(_tg__ZTV6dd1161__7ee21161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee21161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee21161[4]), 4,6},
+ {&(_ZTV7ee21161[8]), 8,14},
+ {&(_ZTV7ee21161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee21161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee21161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21161[];
+extern VTBL_ENTRY _ZTV7ee21161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21161[];
+static VTBL_ENTRY alt_thunk_names517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211613fooEv,_ZTv0_n12_N7ee211613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211613fooEv,_ZThn20_N7ee211613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21161 = { "ee21161", // class name
+ bases_ee21161, 4,
+ &(vtc_ee21161[0]), // expected_vtbl_contents
+ &(vtt_ee21161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21161),8, //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 ee31161 : virtual dd1161 {
+ int e;
+ virtual void foo(); // _ZN7ee311613fooEv
+ ~ee31161(); // tgen
+ ee31161(); // tgen
+};
+//SIG(1 ee31161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31161 ::foo(){vfunc_called(this, "_ZN7ee311613fooEv");}
+ee31161 ::~ee31161(){ note_dtor("ee31161", this);} // tgen
+ee31161 ::ee31161(){ note_ctor("ee31161", this);} // tgen
+
+static void Test_ee31161()
+{
+ extern Class_Descriptor cd_ee31161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31161, buf);
+ ee31161 *dp, &lv = *(dp=new (buf) ee31161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee31161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee31161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(32,16), "ee31161");
+ check_base_class_offset(lv, (dd1161*), ABISELECT(16,8), "ee31161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31161.e");
+ test_class_info(&lv, &cd_ee31161);
+ dp->~ee31161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31161(Test_ee31161, "ee31161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31161C1Ev();
+extern void _ZN7ee31161D1Ev();
+Name_Map name_map_ee31161[] = {
+ NSPAIR(_ZN7ee31161C1Ev),
+ NSPAIR(_ZN7ee31161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee31161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 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 _ZTI7ee31161[];
+extern void _ZN7ee311613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311613fooEv,_ZTv0_n12_N7ee311613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311613fooEv,_ZThn24_N7ee311613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee31161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31161[0]),
+ (VTBL_ENTRY)&_ZN7ee311613fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31161[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311613fooEv,_ZTv0_n12_N7ee311613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee31161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee31161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee31161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee31161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee31161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee31161[] = {
+ {&(_ZTV7ee31161[5]), 5,19},
+ {&(_ZTV7ee31161[10]), 10,19},
+ {&(_ZTV7ee31161[13]), 13,19},
+ {&(_ZTV7ee31161[17]), 17,19},
+ {&(_tg__ZTV6dd1161__7ee31161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee31161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee31161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee31161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee31161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31161[];
+extern VTBL_ENTRY _ZTV7ee31161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31161[];
+static VTBL_ENTRY alt_thunk_names518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311613fooEv,_ZTv0_n12_N7ee311613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311613fooEv,_ZThn24_N7ee311613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31161 = { "ee31161", // class name
+ bases_ee31161, 4,
+ &(vtc_ee31161[0]), // expected_vtbl_contents
+ &(vtt_ee31161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31161),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31161),9, //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 ee41161 : dd1161 {
+ int e;
+ virtual void bar(); // _ZN7ee411613barEv
+ ~ee41161(); // tgen
+ ee41161(); // tgen
+};
+//SIG(1 ee41161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41161 ::bar(){vfunc_called(this, "_ZN7ee411613barEv");}
+ee41161 ::~ee41161(){ note_dtor("ee41161", this);} // tgen
+ee41161 ::ee41161(){ note_ctor("ee41161", this);} // tgen
+
+static void Test_ee41161()
+{
+ extern Class_Descriptor cd_ee41161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41161, buf);
+ ee41161 *dp, &lv = *(dp=new (buf) ee41161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee41161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee41161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(16,12), "ee41161");
+ check_base_class_offset(lv, (dd1161*), 0, "ee41161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41161.e");
+ test_class_info(&lv, &cd_ee41161);
+ dp->~ee41161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41161(Test_ee41161, "ee41161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41161C1Ev();
+extern void _ZN7ee41161D1Ev();
+Name_Map name_map_ee41161[] = {
+ NSPAIR(_ZN7ee41161C1Ev),
+ NSPAIR(_ZN7ee41161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee41161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41161[];
+extern void _ZN7ee411613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411613barEv,_ZTv0_n16_N7ee411613barEv)();
+extern void ABISELECT(_ZThn32_N7ee411613barEv,_ZThn20_N7ee411613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41161[0]),
+ (VTBL_ENTRY)&_ZN7ee411613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41161[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411613barEv,_ZTv0_n16_N7ee411613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee41161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee41161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee41161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee41161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee41161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee41161[] = {
+ {&(_ZTV7ee41161[4]), 4,14},
+ {&(_tg__ZTV6dd1161__7ee41161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee41161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee41161[4]), 4,6},
+ {&(_ZTV7ee41161[8]), 8,14},
+ {&(_ZTV7ee41161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee41161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee41161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41161[];
+extern VTBL_ENTRY _ZTV7ee41161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41161[];
+static VTBL_ENTRY alt_thunk_names519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411613barEv,_ZTv0_n16_N7ee411613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411613barEv,_ZThn20_N7ee411613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41161 = { "ee41161", // class name
+ bases_ee41161, 4,
+ &(vtc_ee41161[0]), // expected_vtbl_contents
+ &(vtt_ee41161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41161),8, //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 ee51161 : virtual dd1161 {
+ int e;
+ virtual void bar(); // _ZN7ee511613barEv
+ ~ee51161(); // tgen
+ ee51161(); // tgen
+};
+//SIG(1 ee51161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51161 ::bar(){vfunc_called(this, "_ZN7ee511613barEv");}
+ee51161 ::~ee51161(){ note_dtor("ee51161", this);} // tgen
+ee51161 ::ee51161(){ note_ctor("ee51161", this);} // tgen
+
+static void Test_ee51161()
+{
+ extern Class_Descriptor cd_ee51161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51161, buf);
+ ee51161 *dp, &lv = *(dp=new (buf) ee51161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee51161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee51161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(32,16), "ee51161");
+ check_base_class_offset(lv, (dd1161*), ABISELECT(16,8), "ee51161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51161.e");
+ test_class_info(&lv, &cd_ee51161);
+ dp->~ee51161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51161(Test_ee51161, "ee51161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51161C1Ev();
+extern void _ZN7ee51161D1Ev();
+Name_Map name_map_ee51161[] = {
+ NSPAIR(_ZN7ee51161C1Ev),
+ NSPAIR(_ZN7ee51161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee51161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 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 _ZTI7ee51161[];
+extern void _ZN7ee511613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511613barEv,_ZTv0_n16_N7ee511613barEv)();
+extern void ABISELECT(_ZThn48_N7ee511613barEv,_ZThn24_N7ee511613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51161[0]),
+ (VTBL_ENTRY)&_ZN7ee511613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51161[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511613barEv,_ZTv0_n16_N7ee511613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee51161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee51161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee51161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee51161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee51161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee51161[] = {
+ {&(_ZTV7ee51161[5]), 5,19},
+ {&(_ZTV7ee51161[10]), 10,19},
+ {&(_ZTV7ee51161[13]), 13,19},
+ {&(_ZTV7ee51161[17]), 17,19},
+ {&(_tg__ZTV6dd1161__7ee51161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee51161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee51161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee51161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee51161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51161[];
+extern VTBL_ENTRY _ZTV7ee51161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51161[];
+static VTBL_ENTRY alt_thunk_names520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511613barEv,_ZTv0_n16_N7ee511613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511613barEv,_ZThn24_N7ee511613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51161 = { "ee51161", // class name
+ bases_ee51161, 4,
+ &(vtc_ee51161[0]), // expected_vtbl_contents
+ &(vtt_ee51161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51161),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51161),9, //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 ee61161 : dd1161 {
+ int e;
+ virtual void foo(); // _ZN7ee611613fooEv
+ virtual void bar(); // _ZN7ee611613barEv
+ ~ee61161(); // tgen
+ ee61161(); // tgen
+};
+//SIG(1 ee61161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61161 ::foo(){vfunc_called(this, "_ZN7ee611613fooEv");}
+void ee61161 ::bar(){vfunc_called(this, "_ZN7ee611613barEv");}
+ee61161 ::~ee61161(){ note_dtor("ee61161", this);} // tgen
+ee61161 ::ee61161(){ note_ctor("ee61161", this);} // tgen
+
+static void Test_ee61161()
+{
+ extern Class_Descriptor cd_ee61161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61161, buf);
+ ee61161 *dp, &lv = *(dp=new (buf) ee61161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee61161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee61161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(16,12), "ee61161");
+ check_base_class_offset(lv, (dd1161*), 0, "ee61161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61161.e");
+ test_class_info(&lv, &cd_ee61161);
+ dp->~ee61161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61161(Test_ee61161, "ee61161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61161C1Ev();
+extern void _ZN7ee61161D1Ev();
+Name_Map name_map_ee61161[] = {
+ NSPAIR(_ZN7ee61161C1Ev),
+ NSPAIR(_ZN7ee61161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee61161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61161[];
+extern void _ZN7ee611613fooEv();
+extern void _ZN7ee611613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611613fooEv,_ZTv0_n12_N7ee611613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611613fooEv,_ZThn20_N7ee611613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611613barEv,_ZTv0_n16_N7ee611613barEv)();
+extern void ABISELECT(_ZThn32_N7ee611613barEv,_ZThn20_N7ee611613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61161[0]),
+ (VTBL_ENTRY)&_ZN7ee611613fooEv,
+ (VTBL_ENTRY)&_ZN7ee611613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611613fooEv,_ZTv0_n12_N7ee611613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611613barEv,_ZTv0_n16_N7ee611613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee61161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee61161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee61161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee61161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee61161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee61161[] = {
+ {&(_ZTV7ee61161[4]), 4,15},
+ {&(_tg__ZTV6dd1161__7ee61161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee61161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee61161[4]), 4,6},
+ {&(_ZTV7ee61161[9]), 9,15},
+ {&(_ZTV7ee61161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee61161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee61161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61161[];
+extern VTBL_ENTRY _ZTV7ee61161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61161[];
+static VTBL_ENTRY alt_thunk_names521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611613barEv,_ZTv0_n16_N7ee611613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611613barEv,_ZThn20_N7ee611613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611613fooEv,_ZTv0_n12_N7ee611613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611613fooEv,_ZThn20_N7ee611613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61161 = { "ee61161", // class name
+ bases_ee61161, 4,
+ &(vtc_ee61161[0]), // expected_vtbl_contents
+ &(vtt_ee61161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61161),8, //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 ee71161 : virtual dd1161 {
+ int e;
+ virtual void foo(); // _ZN7ee711613fooEv
+ virtual void bar(); // _ZN7ee711613barEv
+ ~ee71161(); // tgen
+ ee71161(); // tgen
+};
+//SIG(1 ee71161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71161 ::foo(){vfunc_called(this, "_ZN7ee711613fooEv");}
+void ee71161 ::bar(){vfunc_called(this, "_ZN7ee711613barEv");}
+ee71161 ::~ee71161(){ note_dtor("ee71161", this);} // tgen
+ee71161 ::ee71161(){ note_ctor("ee71161", this);} // tgen
+
+static void Test_ee71161()
+{
+ extern Class_Descriptor cd_ee71161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71161, buf);
+ ee71161 *dp, &lv = *(dp=new (buf) ee71161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee71161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee71161");
+ check_base_class_offset(lv, (cc161*)(dd1161*), ABISELECT(32,16), "ee71161");
+ check_base_class_offset(lv, (dd1161*), ABISELECT(16,8), "ee71161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71161.e");
+ test_class_info(&lv, &cd_ee71161);
+ dp->~ee71161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71161(Test_ee71161, "ee71161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71161C1Ev();
+extern void _ZN7ee71161D1Ev();
+Name_Map name_map_ee71161[] = {
+ NSPAIR(_ZN7ee71161C1Ev),
+ NSPAIR(_ZN7ee71161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd1161;
+extern VTBL_ENTRY _ZTI6dd1161[];
+extern VTBL_ENTRY _ZTV6dd1161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1161[];
+static Base_Class bases_ee71161[] = {
+ // 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_bb61, 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_cc161, 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_dd1161, 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 _ZTI7ee71161[];
+extern void _ZN7ee711613fooEv();
+extern void _ZN7ee711613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711613fooEv,_ZTv0_n12_N7ee711613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711613fooEv,_ZThn24_N7ee711613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711613barEv,_ZTv0_n16_N7ee711613barEv)();
+extern void ABISELECT(_ZThn48_N7ee711613barEv,_ZThn24_N7ee711613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71161[0]),
+ (VTBL_ENTRY)&_ZN7ee711613fooEv,
+ (VTBL_ENTRY)&_ZN7ee711613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71161[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711613fooEv,_ZTv0_n12_N7ee711613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711613barEv,_ZTv0_n16_N7ee711613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71161[];
+static VTBL_ENTRY _tg__ZTV6dd1161__7ee71161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd1161__7ee71161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1161__7ee71161[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee71161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee71161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee71161[] = {
+ {&(_ZTV7ee71161[5]), 5,20},
+ {&(_ZTV7ee71161[11]), 11,20},
+ {&(_ZTV7ee71161[14]), 14,20},
+ {&(_ZTV7ee71161[18]), 18,20},
+ {&(_tg__ZTV6dd1161__7ee71161[4]), 4,4},
+ {&(_tg__ZTV5cc161__6dd1161__7ee71161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd1161__7ee71161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee71161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee71161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71161[];
+extern VTBL_ENTRY _ZTV7ee71161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71161[];
+static VTBL_ENTRY alt_thunk_names522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711613barEv,_ZTv0_n16_N7ee711613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711613barEv,_ZThn24_N7ee711613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711613fooEv,_ZTv0_n12_N7ee711613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711613fooEv,_ZThn24_N7ee711613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71161 = { "ee71161", // class name
+ bases_ee71161, 4,
+ &(vtc_ee71161[0]), // expected_vtbl_contents
+ &(vtt_ee71161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71161),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71161),9, //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 dd2161 : cc161 {
+ int d;
+ virtual void foo(); // _ZN6dd21613fooEv
+ ~dd2161(); // tgen
+ dd2161(); // tgen
+};
+//SIG(-1 dd2161) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2161 ::foo(){vfunc_called(this, "_ZN6dd21613fooEv");}
+dd2161 ::~dd2161(){ note_dtor("dd2161", this);} // tgen
+dd2161 ::dd2161(){ note_ctor("dd2161", this);} // tgen
+
+static void Test_dd2161()
+{
+ extern Class_Descriptor cd_dd2161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2161, buf);
+ dd2161 *dp, &lv = *(dp=new (buf) dd2161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd2161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(16,12), "dd2161");
+ check_base_class_offset(lv, (cc161*), 0, "dd2161");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2161.d");
+ test_class_info(&lv, &cd_dd2161);
+ dp->~dd2161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2161(Test_dd2161, "dd2161", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2161C1Ev();
+extern void _ZN6dd2161D1Ev();
+Name_Map name_map_dd2161[] = {
+ NSPAIR(_ZN6dd2161C1Ev),
+ NSPAIR(_ZN6dd2161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd2161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern void _ZN6dd21613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd2161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd2161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd2161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd2161[] = {
+ {&(_ZTV6dd2161[3]), 3,10},
+ {&(_tg__ZTV5cc161__6dd2161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd2161[4]), 4,6},
+ {&(_ZTV6dd2161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static VTBL_ENTRY alt_thunk_names523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2161 = { "dd2161", // class name
+ bases_dd2161, 3,
+ &(vtc_dd2161[0]), // expected_vtbl_contents
+ &(vtt_dd2161[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2161),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names523,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02161 : dd2161 {
+ int e;
+ ~ee02161(); // tgen
+ ee02161(); // tgen
+};
+//SIG(1 ee02161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02161 ::~ee02161(){ note_dtor("ee02161", this);} // tgen
+ee02161 ::ee02161(){ note_ctor("ee02161", this);} // tgen
+
+static void Test_ee02161()
+{
+ extern Class_Descriptor cd_ee02161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02161, buf);
+ ee02161 *dp, &lv = *(dp=new (buf) ee02161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee02161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(24,16), "ee02161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), 0, "ee02161");
+ check_base_class_offset(lv, (dd2161*), 0, "ee02161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02161.e");
+ test_class_info(&lv, &cd_ee02161);
+ dp->~ee02161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02161(Test_ee02161, "ee02161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02161C1Ev();
+extern void _ZN7ee02161D1Ev();
+Name_Map name_map_ee02161[] = {
+ NSPAIR(_ZN7ee02161C1Ev),
+ NSPAIR(_ZN7ee02161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee02161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02161[];
+extern void _ZN6dd21613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee02161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee02161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee02161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee02161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee02161[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee02161[] = {
+ {&(_ZTV7ee02161[3]), 3,10},
+ {&(_tg__ZTV6dd2161__7ee02161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee02161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee02161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee02161[4]), 4,6},
+ {&(_ZTV7ee02161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02161[];
+extern VTBL_ENTRY _ZTV7ee02161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02161[];
+static VTBL_ENTRY alt_thunk_names524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02161 = { "ee02161", // class name
+ bases_ee02161, 4,
+ &(vtc_ee02161[0]), // expected_vtbl_contents
+ &(vtt_ee02161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02161),6, //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 ee12161 : virtual dd2161 {
+ int e;
+ ~ee12161(); // tgen
+ ee12161(); // tgen
+};
+//SIG(1 ee12161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12161 ::~ee12161(){ note_dtor("ee12161", this);} // tgen
+ee12161 ::ee12161(){ note_ctor("ee12161", this);} // tgen
+
+static void Test_ee12161()
+{
+ extern Class_Descriptor cd_ee12161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12161, buf);
+ ee12161 *dp, &lv = *(dp=new (buf) ee12161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee12161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(32,20), "ee12161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), ABISELECT(16,8), "ee12161");
+ check_base_class_offset(lv, (dd2161*), ABISELECT(16,8), "ee12161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12161.e");
+ test_class_info(&lv, &cd_ee12161);
+ dp->~ee12161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12161(Test_ee12161, "ee12161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12161C1Ev();
+extern void _ZN7ee12161D1Ev();
+Name_Map name_map_ee12161[] = {
+ NSPAIR(_ZN7ee12161C1Ev),
+ NSPAIR(_ZN7ee12161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee12161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, ABISELECT(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 _ZTI7ee12161[];
+extern void _ZN6dd21613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee12161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12161[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee12161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee12161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee12161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee12161[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee12161[] = {
+ {&(_ZTV7ee12161[4]), 4,15},
+ {&(_ZTV7ee12161[8]), 8,15},
+ {&(_ZTV7ee12161[13]), 13,15},
+ {&(_tg__ZTV6dd2161__7ee12161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee12161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee12161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee12161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12161[];
+extern VTBL_ENTRY _ZTV7ee12161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12161[];
+static VTBL_ENTRY alt_thunk_names525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12161 = { "ee12161", // class name
+ bases_ee12161, 4,
+ &(vtc_ee12161[0]), // expected_vtbl_contents
+ &(vtt_ee12161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12161),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22161 : dd2161 {
+ int e;
+ virtual void foo(); // _ZN7ee221613fooEv
+ ~ee22161(); // tgen
+ ee22161(); // tgen
+};
+//SIG(1 ee22161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22161 ::foo(){vfunc_called(this, "_ZN7ee221613fooEv");}
+ee22161 ::~ee22161(){ note_dtor("ee22161", this);} // tgen
+ee22161 ::ee22161(){ note_ctor("ee22161", this);} // tgen
+
+static void Test_ee22161()
+{
+ extern Class_Descriptor cd_ee22161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22161, buf);
+ ee22161 *dp, &lv = *(dp=new (buf) ee22161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee22161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(24,16), "ee22161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), 0, "ee22161");
+ check_base_class_offset(lv, (dd2161*), 0, "ee22161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22161.e");
+ test_class_info(&lv, &cd_ee22161);
+ dp->~ee22161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22161(Test_ee22161, "ee22161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22161C1Ev();
+extern void _ZN7ee22161D1Ev();
+Name_Map name_map_ee22161[] = {
+ NSPAIR(_ZN7ee22161C1Ev),
+ NSPAIR(_ZN7ee22161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee22161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22161[];
+extern void _ZN7ee221613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221613fooEv,_ZTv0_n12_N7ee221613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221613fooEv,_ZThn16_N7ee221613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee22161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22161[0]),
+ (VTBL_ENTRY)&_ZN7ee221613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221613fooEv,_ZTv0_n12_N7ee221613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee22161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee22161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee22161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee22161[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee22161[] = {
+ {&(_ZTV7ee22161[3]), 3,10},
+ {&(_tg__ZTV6dd2161__7ee22161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee22161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee22161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee22161[4]), 4,6},
+ {&(_ZTV7ee22161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22161[];
+extern VTBL_ENTRY _ZTV7ee22161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22161[];
+static VTBL_ENTRY alt_thunk_names526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221613fooEv,_ZTv0_n12_N7ee221613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221613fooEv,_ZThn16_N7ee221613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22161 = { "ee22161", // class name
+ bases_ee22161, 4,
+ &(vtc_ee22161[0]), // expected_vtbl_contents
+ &(vtt_ee22161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22161),6, //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 ee32161 : virtual dd2161 {
+ int e;
+ virtual void foo(); // _ZN7ee321613fooEv
+ ~ee32161(); // tgen
+ ee32161(); // tgen
+};
+//SIG(1 ee32161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32161 ::foo(){vfunc_called(this, "_ZN7ee321613fooEv");}
+ee32161 ::~ee32161(){ note_dtor("ee32161", this);} // tgen
+ee32161 ::ee32161(){ note_ctor("ee32161", this);} // tgen
+
+static void Test_ee32161()
+{
+ extern Class_Descriptor cd_ee32161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32161, buf);
+ ee32161 *dp, &lv = *(dp=new (buf) ee32161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee32161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(32,20), "ee32161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), ABISELECT(16,8), "ee32161");
+ check_base_class_offset(lv, (dd2161*), ABISELECT(16,8), "ee32161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32161.e");
+ test_class_info(&lv, &cd_ee32161);
+ dp->~ee32161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32161(Test_ee32161, "ee32161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32161C1Ev();
+extern void _ZN7ee32161D1Ev();
+Name_Map name_map_ee32161[] = {
+ NSPAIR(_ZN7ee32161C1Ev),
+ NSPAIR(_ZN7ee32161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee32161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, ABISELECT(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 _ZTI7ee32161[];
+extern void _ZN7ee321613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321613fooEv,_ZTv0_n16_N7ee321613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321613fooEv,_ZThn8_N7ee321613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321613fooEv,_ZTv0_n12_N7ee321613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321613fooEv,_ZThn20_N7ee321613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee32161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32161[0]),
+ (VTBL_ENTRY)&_ZN7ee321613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321613fooEv,_ZTv0_n16_N7ee321613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321613fooEv,_ZTv0_n12_N7ee321613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee32161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee32161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee32161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee32161[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee32161[] = {
+ {&(_ZTV7ee32161[4]), 4,16},
+ {&(_ZTV7ee32161[9]), 9,16},
+ {&(_ZTV7ee32161[14]), 14,16},
+ {&(_tg__ZTV6dd2161__7ee32161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee32161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee32161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee32161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32161[];
+extern VTBL_ENTRY _ZTV7ee32161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32161[];
+static VTBL_ENTRY alt_thunk_names527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321613fooEv,_ZTv0_n12_N7ee321613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321613fooEv,_ZThn20_N7ee321613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321613fooEv,_ZTv0_n16_N7ee321613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321613fooEv,_ZThn8_N7ee321613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32161 = { "ee32161", // class name
+ bases_ee32161, 4,
+ &(vtc_ee32161[0]), // expected_vtbl_contents
+ &(vtt_ee32161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32161),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32161),7, //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 ee42161 : dd2161 {
+ int e;
+ virtual void bar(); // _ZN7ee421613barEv
+ ~ee42161(); // tgen
+ ee42161(); // tgen
+};
+//SIG(1 ee42161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42161 ::bar(){vfunc_called(this, "_ZN7ee421613barEv");}
+ee42161 ::~ee42161(){ note_dtor("ee42161", this);} // tgen
+ee42161 ::ee42161(){ note_ctor("ee42161", this);} // tgen
+
+static void Test_ee42161()
+{
+ extern Class_Descriptor cd_ee42161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42161, buf);
+ ee42161 *dp, &lv = *(dp=new (buf) ee42161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee42161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(24,16), "ee42161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), 0, "ee42161");
+ check_base_class_offset(lv, (dd2161*), 0, "ee42161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42161.e");
+ test_class_info(&lv, &cd_ee42161);
+ dp->~ee42161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42161(Test_ee42161, "ee42161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42161C1Ev();
+extern void _ZN7ee42161D1Ev();
+Name_Map name_map_ee42161[] = {
+ NSPAIR(_ZN7ee42161C1Ev),
+ NSPAIR(_ZN7ee42161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee42161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42161[];
+extern void _ZN6dd21613fooEv();
+extern void _ZN7ee421613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee421613barEv,_ZTv0_n16_N7ee421613barEv)();
+extern void ABISELECT(_ZThn24_N7ee421613barEv,_ZThn16_N7ee421613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+ (VTBL_ENTRY)&_ZN7ee421613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421613barEv,_ZTv0_n16_N7ee421613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee42161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee42161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee42161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee42161[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee42161[] = {
+ {&(_ZTV7ee42161[3]), 3,11},
+ {&(_tg__ZTV6dd2161__7ee42161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee42161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee42161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee42161[4]), 4,6},
+ {&(_ZTV7ee42161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42161[];
+extern VTBL_ENTRY _ZTV7ee42161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42161[];
+static VTBL_ENTRY alt_thunk_names528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421613barEv,_ZTv0_n16_N7ee421613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421613barEv,_ZThn16_N7ee421613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42161 = { "ee42161", // class name
+ bases_ee42161, 4,
+ &(vtc_ee42161[0]), // expected_vtbl_contents
+ &(vtt_ee42161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42161),6, //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 ee52161 : virtual dd2161 {
+ int e;
+ virtual void bar(); // _ZN7ee521613barEv
+ ~ee52161(); // tgen
+ ee52161(); // tgen
+};
+//SIG(1 ee52161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52161 ::bar(){vfunc_called(this, "_ZN7ee521613barEv");}
+ee52161 ::~ee52161(){ note_dtor("ee52161", this);} // tgen
+ee52161 ::ee52161(){ note_ctor("ee52161", this);} // tgen
+
+static void Test_ee52161()
+{
+ extern Class_Descriptor cd_ee52161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52161, buf);
+ ee52161 *dp, &lv = *(dp=new (buf) ee52161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee52161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(32,20), "ee52161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), ABISELECT(16,8), "ee52161");
+ check_base_class_offset(lv, (dd2161*), ABISELECT(16,8), "ee52161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52161.e");
+ test_class_info(&lv, &cd_ee52161);
+ dp->~ee52161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52161(Test_ee52161, "ee52161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52161C1Ev();
+extern void _ZN7ee52161D1Ev();
+Name_Map name_map_ee52161[] = {
+ NSPAIR(_ZN7ee52161C1Ev),
+ NSPAIR(_ZN7ee52161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee52161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, ABISELECT(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 _ZTI7ee52161[];
+extern void _ZN7ee521613barEv();
+extern void _ZN6dd21613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee521613barEv,_ZTv0_n16_N7ee521613barEv)();
+extern void ABISELECT(_ZThn32_N7ee521613barEv,_ZThn20_N7ee521613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52161[0]),
+ (VTBL_ENTRY)&_ZN7ee521613barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521613barEv,_ZTv0_n16_N7ee521613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee52161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee52161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee52161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee52161[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee52161[] = {
+ {&(_ZTV7ee52161[4]), 4,16},
+ {&(_ZTV7ee52161[9]), 9,16},
+ {&(_ZTV7ee52161[14]), 14,16},
+ {&(_tg__ZTV6dd2161__7ee52161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee52161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee52161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee52161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52161[];
+extern VTBL_ENTRY _ZTV7ee52161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52161[];
+static VTBL_ENTRY alt_thunk_names529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521613barEv,_ZTv0_n16_N7ee521613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521613barEv,_ZThn20_N7ee521613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52161 = { "ee52161", // class name
+ bases_ee52161, 4,
+ &(vtc_ee52161[0]), // expected_vtbl_contents
+ &(vtt_ee52161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52161),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52161),7, //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 ee62161 : dd2161 {
+ int e;
+ virtual void foo(); // _ZN7ee621613fooEv
+ virtual void bar(); // _ZN7ee621613barEv
+ ~ee62161(); // tgen
+ ee62161(); // tgen
+};
+//SIG(1 ee62161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62161 ::foo(){vfunc_called(this, "_ZN7ee621613fooEv");}
+void ee62161 ::bar(){vfunc_called(this, "_ZN7ee621613barEv");}
+ee62161 ::~ee62161(){ note_dtor("ee62161", this);} // tgen
+ee62161 ::ee62161(){ note_ctor("ee62161", this);} // tgen
+
+static void Test_ee62161()
+{
+ extern Class_Descriptor cd_ee62161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62161, buf);
+ ee62161 *dp, &lv = *(dp=new (buf) ee62161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee62161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(24,16), "ee62161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), 0, "ee62161");
+ check_base_class_offset(lv, (dd2161*), 0, "ee62161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62161.e");
+ test_class_info(&lv, &cd_ee62161);
+ dp->~ee62161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62161(Test_ee62161, "ee62161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62161C1Ev();
+extern void _ZN7ee62161D1Ev();
+Name_Map name_map_ee62161[] = {
+ NSPAIR(_ZN7ee62161C1Ev),
+ NSPAIR(_ZN7ee62161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee62161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62161[];
+extern void _ZN7ee621613fooEv();
+extern void _ZN7ee621613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621613fooEv,_ZTv0_n12_N7ee621613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621613fooEv,_ZThn16_N7ee621613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621613barEv,_ZTv0_n16_N7ee621613barEv)();
+extern void ABISELECT(_ZThn24_N7ee621613barEv,_ZThn16_N7ee621613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62161[0]),
+ (VTBL_ENTRY)&_ZN7ee621613fooEv,
+ (VTBL_ENTRY)&_ZN7ee621613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621613fooEv,_ZTv0_n12_N7ee621613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621613barEv,_ZTv0_n16_N7ee621613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee62161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee62161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee62161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee62161[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee62161[] = {
+ {&(_ZTV7ee62161[3]), 3,11},
+ {&(_tg__ZTV6dd2161__7ee62161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee62161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee62161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee62161[4]), 4,6},
+ {&(_ZTV7ee62161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62161[];
+extern VTBL_ENTRY _ZTV7ee62161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62161[];
+static VTBL_ENTRY alt_thunk_names530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21613fooEv,_ZThn16_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621613barEv,_ZTv0_n16_N7ee621613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621613barEv,_ZThn16_N7ee621613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621613fooEv,_ZTv0_n12_N7ee621613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621613fooEv,_ZThn16_N7ee621613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62161 = { "ee62161", // class name
+ bases_ee62161, 4,
+ &(vtc_ee62161[0]), // expected_vtbl_contents
+ &(vtt_ee62161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62161),6, //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 ee72161 : virtual dd2161 {
+ int e;
+ virtual void foo(); // _ZN7ee721613fooEv
+ virtual void bar(); // _ZN7ee721613barEv
+ ~ee72161(); // tgen
+ ee72161(); // tgen
+};
+//SIG(1 ee72161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72161 ::foo(){vfunc_called(this, "_ZN7ee721613fooEv");}
+void ee72161 ::bar(){vfunc_called(this, "_ZN7ee721613barEv");}
+ee72161 ::~ee72161(){ note_dtor("ee72161", this);} // tgen
+ee72161 ::ee72161(){ note_ctor("ee72161", this);} // tgen
+
+static void Test_ee72161()
+{
+ extern Class_Descriptor cd_ee72161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72161, buf);
+ ee72161 *dp, &lv = *(dp=new (buf) ee72161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee72161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd2161*), ABISELECT(32,20), "ee72161");
+ check_base_class_offset(lv, (cc161*)(dd2161*), ABISELECT(16,8), "ee72161");
+ check_base_class_offset(lv, (dd2161*), ABISELECT(16,8), "ee72161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72161.e");
+ test_class_info(&lv, &cd_ee72161);
+ dp->~ee72161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72161(Test_ee72161, "ee72161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72161C1Ev();
+extern void _ZN7ee72161D1Ev();
+Name_Map name_map_ee72161[] = {
+ NSPAIR(_ZN7ee72161C1Ev),
+ NSPAIR(_ZN7ee72161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd2161;
+extern VTBL_ENTRY _ZTI6dd2161[];
+extern VTBL_ENTRY _ZTV6dd2161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2161[];
+static Base_Class bases_ee72161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2161, 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 _ZTI7ee72161[];
+extern void _ZN7ee721613fooEv();
+extern void _ZN7ee721613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721613fooEv,_ZTv0_n16_N7ee721613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721613fooEv,_ZThn8_N7ee721613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721613fooEv,_ZTv0_n12_N7ee721613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721613fooEv,_ZThn20_N7ee721613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721613barEv,_ZTv0_n16_N7ee721613barEv)();
+extern void ABISELECT(_ZThn32_N7ee721613barEv,_ZThn20_N7ee721613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72161[0]),
+ (VTBL_ENTRY)&_ZN7ee721613fooEv,
+ (VTBL_ENTRY)&_ZN7ee721613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721613fooEv,_ZTv0_n16_N7ee721613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721613fooEv,_ZTv0_n12_N7ee721613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721613barEv,_ZTv0_n16_N7ee721613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72161[];
+extern void _ZN6dd21613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2161__7ee72161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&_ZN6dd21613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd2161__7ee72161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd2161__7ee72161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2161__7ee72161[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee72161[] = {
+ {&(_ZTV7ee72161[4]), 4,17},
+ {&(_ZTV7ee72161[10]), 10,17},
+ {&(_ZTV7ee72161[15]), 15,17},
+ {&(_tg__ZTV6dd2161__7ee72161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd2161__7ee72161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd2161__7ee72161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2161__7ee72161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72161[];
+extern VTBL_ENTRY _ZTV7ee72161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72161[];
+static VTBL_ENTRY alt_thunk_names531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21613fooEv,_ZTv0_n12_N6dd21613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21613fooEv,_ZThn12_N6dd21613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721613barEv,_ZTv0_n16_N7ee721613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721613barEv,_ZThn20_N7ee721613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721613fooEv,_ZTv0_n12_N7ee721613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721613fooEv,_ZThn20_N7ee721613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721613fooEv,_ZTv0_n16_N7ee721613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721613fooEv,_ZThn8_N7ee721613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72161 = { "ee72161", // class name
+ bases_ee72161, 4,
+ &(vtc_ee72161[0]), // expected_vtbl_contents
+ &(vtt_ee72161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72161),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72161),7, //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 dd3161 : virtual cc161 {
+ int d;
+ virtual void foo(); // _ZN6dd31613fooEv
+ ~dd3161(); // tgen
+ dd3161(); // tgen
+};
+//SIG(-1 dd3161) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3161 ::foo(){vfunc_called(this, "_ZN6dd31613fooEv");}
+dd3161 ::~dd3161(){ note_dtor("dd3161", this);} // tgen
+dd3161 ::dd3161(){ note_ctor("dd3161", this);} // tgen
+
+static void Test_dd3161()
+{
+ extern Class_Descriptor cd_dd3161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3161, buf);
+ dd3161 *dp, &lv = *(dp=new (buf) dd3161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd3161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,16), "dd3161");
+ check_base_class_offset(lv, (cc161*), ABISELECT(16,8), "dd3161");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3161.d");
+ test_class_info(&lv, &cd_dd3161);
+ dp->~dd3161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3161(Test_dd3161, "dd3161", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3161C1Ev();
+extern void _ZN6dd3161D1Ev();
+Name_Map name_map_dd3161[] = {
+ NSPAIR(_ZN6dd3161C1Ev),
+ NSPAIR(_ZN6dd3161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd3161[] = {
+ // 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_bb61, 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_cc161, 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 _ZTI6dd3161[];
+extern void _ZN6dd31613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd3161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd3161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd3161[] = {
+ {&(_ZTV6dd3161[4]), 4,14},
+ {&(_ZTV6dd3161[8]), 8,14},
+ {&(_ZTV6dd3161[12]), 12,14},
+ {&(_tg__ZTV5cc161__6dd3161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd3161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static VTBL_ENTRY alt_thunk_names532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3161 = { "dd3161", // class name
+ bases_dd3161, 3,
+ &(vtc_dd3161[0]), // expected_vtbl_contents
+ &(vtt_dd3161[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3161),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names532,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03161 : dd3161 {
+ int e;
+ ~ee03161(); // tgen
+ ee03161(); // tgen
+};
+//SIG(1 ee03161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03161 ::~ee03161(){ note_dtor("ee03161", this);} // tgen
+ee03161 ::ee03161(){ note_ctor("ee03161", this);} // tgen
+
+static void Test_ee03161()
+{
+ extern Class_Descriptor cd_ee03161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03161, buf);
+ ee03161 *dp, &lv = *(dp=new (buf) ee03161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee03161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee03161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(16,12), "ee03161");
+ check_base_class_offset(lv, (dd3161*), 0, "ee03161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03161.e");
+ test_class_info(&lv, &cd_ee03161);
+ dp->~ee03161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03161(Test_ee03161, "ee03161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03161C1Ev();
+extern void _ZN7ee03161D1Ev();
+Name_Map name_map_ee03161[] = {
+ NSPAIR(_ZN7ee03161C1Ev),
+ NSPAIR(_ZN7ee03161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee03161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03161[];
+extern void _ZN6dd31613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee03161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03161[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee03161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee03161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee03161[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee03161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee03161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee03161[] = {
+ {&(_ZTV7ee03161[4]), 4,14},
+ {&(_tg__ZTV6dd3161__7ee03161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee03161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee03161[4]), 4,6},
+ {&(_ZTV7ee03161[8]), 8,14},
+ {&(_ZTV7ee03161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee03161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee03161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03161[];
+extern VTBL_ENTRY _ZTV7ee03161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03161[];
+static VTBL_ENTRY alt_thunk_names533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03161 = { "ee03161", // class name
+ bases_ee03161, 4,
+ &(vtc_ee03161[0]), // expected_vtbl_contents
+ &(vtt_ee03161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03161),8, //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 ee13161 : virtual dd3161 {
+ int e;
+ ~ee13161(); // tgen
+ ee13161(); // tgen
+};
+//SIG(1 ee13161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13161 ::~ee13161(){ note_dtor("ee13161", this);} // tgen
+ee13161 ::ee13161(){ note_ctor("ee13161", this);} // tgen
+
+static void Test_ee13161()
+{
+ extern Class_Descriptor cd_ee13161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13161, buf);
+ ee13161 *dp, &lv = *(dp=new (buf) ee13161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee13161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee13161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(32,16), "ee13161");
+ check_base_class_offset(lv, (dd3161*), ABISELECT(16,8), "ee13161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13161.e");
+ test_class_info(&lv, &cd_ee13161);
+ dp->~ee13161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13161(Test_ee13161, "ee13161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13161C1Ev();
+extern void _ZN7ee13161D1Ev();
+Name_Map name_map_ee13161[] = {
+ NSPAIR(_ZN7ee13161C1Ev),
+ NSPAIR(_ZN7ee13161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee13161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, ABISELECT(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 _ZTI7ee13161[];
+extern void _ZN6dd31613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee13161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13161[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13161[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee13161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee13161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee13161[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee13161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee13161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee13161[] = {
+ {&(_ZTV7ee13161[5]), 5,20},
+ {&(_ZTV7ee13161[10]), 10,20},
+ {&(_ZTV7ee13161[14]), 14,20},
+ {&(_ZTV7ee13161[18]), 18,20},
+ {&(_tg__ZTV6dd3161__7ee13161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee13161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee13161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee13161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee13161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13161[];
+extern VTBL_ENTRY _ZTV7ee13161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13161[];
+static VTBL_ENTRY alt_thunk_names534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13161 = { "ee13161", // class name
+ bases_ee13161, 4,
+ &(vtc_ee13161[0]), // expected_vtbl_contents
+ &(vtt_ee13161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13161),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13161),9, //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 ee23161 : dd3161 {
+ int e;
+ virtual void foo(); // _ZN7ee231613fooEv
+ ~ee23161(); // tgen
+ ee23161(); // tgen
+};
+//SIG(1 ee23161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23161 ::foo(){vfunc_called(this, "_ZN7ee231613fooEv");}
+ee23161 ::~ee23161(){ note_dtor("ee23161", this);} // tgen
+ee23161 ::ee23161(){ note_ctor("ee23161", this);} // tgen
+
+static void Test_ee23161()
+{
+ extern Class_Descriptor cd_ee23161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23161, buf);
+ ee23161 *dp, &lv = *(dp=new (buf) ee23161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee23161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee23161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(16,12), "ee23161");
+ check_base_class_offset(lv, (dd3161*), 0, "ee23161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23161.e");
+ test_class_info(&lv, &cd_ee23161);
+ dp->~ee23161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23161(Test_ee23161, "ee23161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23161C1Ev();
+extern void _ZN7ee23161D1Ev();
+Name_Map name_map_ee23161[] = {
+ NSPAIR(_ZN7ee23161C1Ev),
+ NSPAIR(_ZN7ee23161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee23161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23161[];
+extern void _ZN7ee231613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231613fooEv,_ZTv0_n12_N7ee231613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231613fooEv,_ZThn20_N7ee231613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee23161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23161[0]),
+ (VTBL_ENTRY)&_ZN7ee231613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23161[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231613fooEv,_ZTv0_n12_N7ee231613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee23161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee23161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee23161[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee23161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee23161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee23161[] = {
+ {&(_ZTV7ee23161[4]), 4,14},
+ {&(_tg__ZTV6dd3161__7ee23161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee23161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee23161[4]), 4,6},
+ {&(_ZTV7ee23161[8]), 8,14},
+ {&(_ZTV7ee23161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee23161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee23161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23161[];
+extern VTBL_ENTRY _ZTV7ee23161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23161[];
+static VTBL_ENTRY alt_thunk_names535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231613fooEv,_ZTv0_n12_N7ee231613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231613fooEv,_ZThn20_N7ee231613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23161 = { "ee23161", // class name
+ bases_ee23161, 4,
+ &(vtc_ee23161[0]), // expected_vtbl_contents
+ &(vtt_ee23161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23161),8, //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 ee33161 : virtual dd3161 {
+ int e;
+ virtual void foo(); // _ZN7ee331613fooEv
+ ~ee33161(); // tgen
+ ee33161(); // tgen
+};
+//SIG(1 ee33161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33161 ::foo(){vfunc_called(this, "_ZN7ee331613fooEv");}
+ee33161 ::~ee33161(){ note_dtor("ee33161", this);} // tgen
+ee33161 ::ee33161(){ note_ctor("ee33161", this);} // tgen
+
+static void Test_ee33161()
+{
+ extern Class_Descriptor cd_ee33161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33161, buf);
+ ee33161 *dp, &lv = *(dp=new (buf) ee33161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee33161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee33161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(32,16), "ee33161");
+ check_base_class_offset(lv, (dd3161*), ABISELECT(16,8), "ee33161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33161.e");
+ test_class_info(&lv, &cd_ee33161);
+ dp->~ee33161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33161(Test_ee33161, "ee33161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33161C1Ev();
+extern void _ZN7ee33161D1Ev();
+Name_Map name_map_ee33161[] = {
+ NSPAIR(_ZN7ee33161C1Ev),
+ NSPAIR(_ZN7ee33161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee33161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, ABISELECT(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 _ZTI7ee33161[];
+extern void _ZN7ee331613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331613fooEv,_ZTv0_n20_N7ee331613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331613fooEv,_ZThn8_N7ee331613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331613fooEv,_ZTv0_n12_N7ee331613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331613fooEv,_ZThn24_N7ee331613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee33161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33161[0]),
+ (VTBL_ENTRY)&_ZN7ee331613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331613fooEv,_ZTv0_n20_N7ee331613fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33161[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331613fooEv,_ZTv0_n12_N7ee331613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee33161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee33161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee33161[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee33161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee33161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee33161[] = {
+ {&(_ZTV7ee33161[5]), 5,21},
+ {&(_ZTV7ee33161[11]), 11,21},
+ {&(_ZTV7ee33161[15]), 15,21},
+ {&(_ZTV7ee33161[19]), 19,21},
+ {&(_tg__ZTV6dd3161__7ee33161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee33161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee33161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee33161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee33161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33161[];
+extern VTBL_ENTRY _ZTV7ee33161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33161[];
+static VTBL_ENTRY alt_thunk_names536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331613fooEv,_ZTv0_n12_N7ee331613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331613fooEv,_ZThn24_N7ee331613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331613fooEv,_ZTv0_n20_N7ee331613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331613fooEv,_ZThn8_N7ee331613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33161 = { "ee33161", // class name
+ bases_ee33161, 4,
+ &(vtc_ee33161[0]), // expected_vtbl_contents
+ &(vtt_ee33161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33161),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33161),9, //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 ee43161 : dd3161 {
+ int e;
+ virtual void bar(); // _ZN7ee431613barEv
+ ~ee43161(); // tgen
+ ee43161(); // tgen
+};
+//SIG(1 ee43161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43161 ::bar(){vfunc_called(this, "_ZN7ee431613barEv");}
+ee43161 ::~ee43161(){ note_dtor("ee43161", this);} // tgen
+ee43161 ::ee43161(){ note_ctor("ee43161", this);} // tgen
+
+static void Test_ee43161()
+{
+ extern Class_Descriptor cd_ee43161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43161, buf);
+ ee43161 *dp, &lv = *(dp=new (buf) ee43161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee43161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee43161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(16,12), "ee43161");
+ check_base_class_offset(lv, (dd3161*), 0, "ee43161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43161.e");
+ test_class_info(&lv, &cd_ee43161);
+ dp->~ee43161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43161(Test_ee43161, "ee43161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43161C1Ev();
+extern void _ZN7ee43161D1Ev();
+Name_Map name_map_ee43161[] = {
+ NSPAIR(_ZN7ee43161C1Ev),
+ NSPAIR(_ZN7ee43161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee43161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43161[];
+extern void _ZN6dd31613fooEv();
+extern void _ZN7ee431613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee431613barEv,_ZTv0_n16_N7ee431613barEv)();
+extern void ABISELECT(_ZThn32_N7ee431613barEv,_ZThn20_N7ee431613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+ (VTBL_ENTRY)&_ZN7ee431613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431613barEv,_ZTv0_n16_N7ee431613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee43161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee43161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee43161[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee43161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee43161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee43161[] = {
+ {&(_ZTV7ee43161[4]), 4,15},
+ {&(_tg__ZTV6dd3161__7ee43161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee43161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee43161[4]), 4,6},
+ {&(_ZTV7ee43161[9]), 9,15},
+ {&(_ZTV7ee43161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee43161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee43161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43161[];
+extern VTBL_ENTRY _ZTV7ee43161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43161[];
+static VTBL_ENTRY alt_thunk_names537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431613barEv,_ZTv0_n16_N7ee431613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431613barEv,_ZThn20_N7ee431613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43161 = { "ee43161", // class name
+ bases_ee43161, 4,
+ &(vtc_ee43161[0]), // expected_vtbl_contents
+ &(vtt_ee43161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43161),8, //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 ee53161 : virtual dd3161 {
+ int e;
+ virtual void bar(); // _ZN7ee531613barEv
+ ~ee53161(); // tgen
+ ee53161(); // tgen
+};
+//SIG(1 ee53161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53161 ::bar(){vfunc_called(this, "_ZN7ee531613barEv");}
+ee53161 ::~ee53161(){ note_dtor("ee53161", this);} // tgen
+ee53161 ::ee53161(){ note_ctor("ee53161", this);} // tgen
+
+static void Test_ee53161()
+{
+ extern Class_Descriptor cd_ee53161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53161, buf);
+ ee53161 *dp, &lv = *(dp=new (buf) ee53161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee53161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee53161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(32,16), "ee53161");
+ check_base_class_offset(lv, (dd3161*), ABISELECT(16,8), "ee53161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53161.e");
+ test_class_info(&lv, &cd_ee53161);
+ dp->~ee53161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53161(Test_ee53161, "ee53161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53161C1Ev();
+extern void _ZN7ee53161D1Ev();
+Name_Map name_map_ee53161[] = {
+ NSPAIR(_ZN7ee53161C1Ev),
+ NSPAIR(_ZN7ee53161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee53161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, ABISELECT(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 _ZTI7ee53161[];
+extern void _ZN7ee531613barEv();
+extern void _ZN6dd31613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee531613barEv,_ZTv0_n16_N7ee531613barEv)();
+extern void ABISELECT(_ZThn48_N7ee531613barEv,_ZThn24_N7ee531613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53161[0]),
+ (VTBL_ENTRY)&_ZN7ee531613barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531613barEv,_ZTv0_n16_N7ee531613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee53161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee53161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee53161[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee53161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee53161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee53161[] = {
+ {&(_ZTV7ee53161[5]), 5,21},
+ {&(_ZTV7ee53161[11]), 11,21},
+ {&(_ZTV7ee53161[15]), 15,21},
+ {&(_ZTV7ee53161[19]), 19,21},
+ {&(_tg__ZTV6dd3161__7ee53161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee53161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee53161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee53161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee53161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53161[];
+extern VTBL_ENTRY _ZTV7ee53161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53161[];
+static VTBL_ENTRY alt_thunk_names538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531613barEv,_ZTv0_n16_N7ee531613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531613barEv,_ZThn24_N7ee531613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53161 = { "ee53161", // class name
+ bases_ee53161, 4,
+ &(vtc_ee53161[0]), // expected_vtbl_contents
+ &(vtt_ee53161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53161),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53161),9, //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 ee63161 : dd3161 {
+ int e;
+ virtual void foo(); // _ZN7ee631613fooEv
+ virtual void bar(); // _ZN7ee631613barEv
+ ~ee63161(); // tgen
+ ee63161(); // tgen
+};
+//SIG(1 ee63161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63161 ::foo(){vfunc_called(this, "_ZN7ee631613fooEv");}
+void ee63161 ::bar(){vfunc_called(this, "_ZN7ee631613barEv");}
+ee63161 ::~ee63161(){ note_dtor("ee63161", this);} // tgen
+ee63161 ::ee63161(){ note_ctor("ee63161", this);} // tgen
+
+static void Test_ee63161()
+{
+ extern Class_Descriptor cd_ee63161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63161, buf);
+ ee63161 *dp, &lv = *(dp=new (buf) ee63161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee63161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee63161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(16,12), "ee63161");
+ check_base_class_offset(lv, (dd3161*), 0, "ee63161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63161.e");
+ test_class_info(&lv, &cd_ee63161);
+ dp->~ee63161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63161(Test_ee63161, "ee63161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63161C1Ev();
+extern void _ZN7ee63161D1Ev();
+Name_Map name_map_ee63161[] = {
+ NSPAIR(_ZN7ee63161C1Ev),
+ NSPAIR(_ZN7ee63161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee63161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63161[];
+extern void _ZN7ee631613fooEv();
+extern void _ZN7ee631613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631613fooEv,_ZTv0_n12_N7ee631613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631613fooEv,_ZThn20_N7ee631613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631613barEv,_ZTv0_n16_N7ee631613barEv)();
+extern void ABISELECT(_ZThn32_N7ee631613barEv,_ZThn20_N7ee631613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63161[0]),
+ (VTBL_ENTRY)&_ZN7ee631613fooEv,
+ (VTBL_ENTRY)&_ZN7ee631613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631613fooEv,_ZTv0_n12_N7ee631613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631613barEv,_ZTv0_n16_N7ee631613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee63161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee63161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee63161[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee63161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee63161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee63161[] = {
+ {&(_ZTV7ee63161[4]), 4,15},
+ {&(_tg__ZTV6dd3161__7ee63161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee63161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee63161[4]), 4,6},
+ {&(_ZTV7ee63161[9]), 9,15},
+ {&(_ZTV7ee63161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee63161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee63161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63161[];
+extern VTBL_ENTRY _ZTV7ee63161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63161[];
+static VTBL_ENTRY alt_thunk_names539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn20_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631613barEv,_ZTv0_n16_N7ee631613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631613barEv,_ZThn20_N7ee631613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631613fooEv,_ZTv0_n12_N7ee631613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631613fooEv,_ZThn20_N7ee631613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63161 = { "ee63161", // class name
+ bases_ee63161, 4,
+ &(vtc_ee63161[0]), // expected_vtbl_contents
+ &(vtt_ee63161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63161),8, //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 ee73161 : virtual dd3161 {
+ int e;
+ virtual void foo(); // _ZN7ee731613fooEv
+ virtual void bar(); // _ZN7ee731613barEv
+ ~ee73161(); // tgen
+ ee73161(); // tgen
+};
+//SIG(1 ee73161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73161 ::foo(){vfunc_called(this, "_ZN7ee731613fooEv");}
+void ee73161 ::bar(){vfunc_called(this, "_ZN7ee731613barEv");}
+ee73161 ::~ee73161(){ note_dtor("ee73161", this);} // tgen
+ee73161 ::ee73161(){ note_ctor("ee73161", this);} // tgen
+
+static void Test_ee73161()
+{
+ extern Class_Descriptor cd_ee73161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73161, buf);
+ ee73161 *dp, &lv = *(dp=new (buf) ee73161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee73161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee73161");
+ check_base_class_offset(lv, (cc161*)(dd3161*), ABISELECT(32,16), "ee73161");
+ check_base_class_offset(lv, (dd3161*), ABISELECT(16,8), "ee73161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73161.e");
+ test_class_info(&lv, &cd_ee73161);
+ dp->~ee73161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73161(Test_ee73161, "ee73161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73161C1Ev();
+extern void _ZN7ee73161D1Ev();
+Name_Map name_map_ee73161[] = {
+ NSPAIR(_ZN7ee73161C1Ev),
+ NSPAIR(_ZN7ee73161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd3161;
+extern VTBL_ENTRY _ZTI6dd3161[];
+extern VTBL_ENTRY _ZTV6dd3161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3161[];
+static Base_Class bases_ee73161[] = {
+ // 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_bb61, 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_cc161, 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_dd3161, 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 _ZTI7ee73161[];
+extern void _ZN7ee731613fooEv();
+extern void _ZN7ee731613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731613fooEv,_ZTv0_n20_N7ee731613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731613fooEv,_ZThn8_N7ee731613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731613fooEv,_ZTv0_n12_N7ee731613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731613fooEv,_ZThn24_N7ee731613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731613barEv,_ZTv0_n16_N7ee731613barEv)();
+extern void ABISELECT(_ZThn48_N7ee731613barEv,_ZThn24_N7ee731613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73161[0]),
+ (VTBL_ENTRY)&_ZN7ee731613fooEv,
+ (VTBL_ENTRY)&_ZN7ee731613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731613fooEv,_ZTv0_n20_N7ee731613fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731613fooEv,_ZTv0_n12_N7ee731613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731613barEv,_ZTv0_n16_N7ee731613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73161[];
+extern void _ZN6dd31613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3161__7ee73161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&_ZN6dd31613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd3161__7ee73161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3161__7ee73161[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee73161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee73161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee73161[] = {
+ {&(_ZTV7ee73161[5]), 5,22},
+ {&(_ZTV7ee73161[12]), 12,22},
+ {&(_ZTV7ee73161[16]), 16,22},
+ {&(_ZTV7ee73161[20]), 20,22},
+ {&(_tg__ZTV6dd3161__7ee73161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd3161__7ee73161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd3161__7ee73161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee73161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee73161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73161[];
+extern VTBL_ENTRY _ZTV7ee73161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73161[];
+static VTBL_ENTRY alt_thunk_names540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31613fooEv,_ZTv0_n12_N6dd31613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31613fooEv,_ZThn16_N6dd31613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731613barEv,_ZTv0_n16_N7ee731613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731613barEv,_ZThn24_N7ee731613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731613fooEv,_ZTv0_n12_N7ee731613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731613fooEv,_ZThn24_N7ee731613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731613fooEv,_ZTv0_n20_N7ee731613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731613fooEv,_ZThn8_N7ee731613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73161 = { "ee73161", // class name
+ bases_ee73161, 4,
+ &(vtc_ee73161[0]), // expected_vtbl_contents
+ &(vtt_ee73161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73161),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73161),9, //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 dd4161 : cc161 {
+ int d;
+ virtual void bar(); // _ZN6dd41613barEv
+ ~dd4161(); // tgen
+ dd4161(); // tgen
+};
+//SIG(-1 dd4161) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4161 ::bar(){vfunc_called(this, "_ZN6dd41613barEv");}
+dd4161 ::~dd4161(){ note_dtor("dd4161", this);} // tgen
+dd4161 ::dd4161(){ note_ctor("dd4161", this);} // tgen
+
+static void Test_dd4161()
+{
+ extern Class_Descriptor cd_dd4161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4161, buf);
+ dd4161 *dp, &lv = *(dp=new (buf) dd4161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd4161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(16,12), "dd4161");
+ check_base_class_offset(lv, (cc161*), 0, "dd4161");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4161.d");
+ test_class_info(&lv, &cd_dd4161);
+ dp->~dd4161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4161(Test_dd4161, "dd4161", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4161C1Ev();
+extern void _ZN6dd4161D1Ev();
+Name_Map name_map_dd4161[] = {
+ NSPAIR(_ZN6dd4161C1Ev),
+ NSPAIR(_ZN6dd4161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd4161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern void _ZN6dd41613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd4161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd4161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd4161[] = {
+ {&(_ZTV6dd4161[3]), 3,10},
+ {&(_tg__ZTV5cc161__6dd4161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd4161[4]), 4,6},
+ {&(_ZTV6dd4161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static VTBL_ENTRY alt_thunk_names541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4161 = { "dd4161", // class name
+ bases_dd4161, 3,
+ &(vtc_dd4161[0]), // expected_vtbl_contents
+ &(vtt_dd4161[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4161),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names541,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04161 : dd4161 {
+ int e;
+ ~ee04161(); // tgen
+ ee04161(); // tgen
+};
+//SIG(1 ee04161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04161 ::~ee04161(){ note_dtor("ee04161", this);} // tgen
+ee04161 ::ee04161(){ note_ctor("ee04161", this);} // tgen
+
+static void Test_ee04161()
+{
+ extern Class_Descriptor cd_ee04161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04161, buf);
+ ee04161 *dp, &lv = *(dp=new (buf) ee04161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee04161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(24,16), "ee04161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), 0, "ee04161");
+ check_base_class_offset(lv, (dd4161*), 0, "ee04161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04161.e");
+ test_class_info(&lv, &cd_ee04161);
+ dp->~ee04161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04161(Test_ee04161, "ee04161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04161C1Ev();
+extern void _ZN7ee04161D1Ev();
+Name_Map name_map_ee04161[] = {
+ NSPAIR(_ZN7ee04161C1Ev),
+ NSPAIR(_ZN7ee04161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee04161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04161[];
+extern void _ZN6dd41613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee04161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee04161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee04161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee04161[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee04161[] = {
+ {&(_ZTV7ee04161[3]), 3,10},
+ {&(_tg__ZTV6dd4161__7ee04161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee04161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee04161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee04161[4]), 4,6},
+ {&(_ZTV7ee04161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04161[];
+extern VTBL_ENTRY _ZTV7ee04161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04161[];
+static VTBL_ENTRY alt_thunk_names542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04161 = { "ee04161", // class name
+ bases_ee04161, 4,
+ &(vtc_ee04161[0]), // expected_vtbl_contents
+ &(vtt_ee04161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04161),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names542,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14161 : virtual dd4161 {
+ int e;
+ ~ee14161(); // tgen
+ ee14161(); // tgen
+};
+//SIG(1 ee14161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14161 ::~ee14161(){ note_dtor("ee14161", this);} // tgen
+ee14161 ::ee14161(){ note_ctor("ee14161", this);} // tgen
+
+static void Test_ee14161()
+{
+ extern Class_Descriptor cd_ee14161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14161, buf);
+ ee14161 *dp, &lv = *(dp=new (buf) ee14161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee14161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(32,20), "ee14161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), ABISELECT(16,8), "ee14161");
+ check_base_class_offset(lv, (dd4161*), ABISELECT(16,8), "ee14161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14161.e");
+ test_class_info(&lv, &cd_ee14161);
+ dp->~ee14161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14161(Test_ee14161, "ee14161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14161C1Ev();
+extern void _ZN7ee14161D1Ev();
+Name_Map name_map_ee14161[] = {
+ NSPAIR(_ZN7ee14161C1Ev),
+ NSPAIR(_ZN7ee14161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee14161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, ABISELECT(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 _ZTI7ee14161[];
+extern void _ZN6dd41613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14161[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee14161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee14161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee14161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee14161[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee14161[] = {
+ {&(_ZTV7ee14161[4]), 4,15},
+ {&(_ZTV7ee14161[8]), 8,15},
+ {&(_ZTV7ee14161[13]), 13,15},
+ {&(_tg__ZTV6dd4161__7ee14161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee14161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee14161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee14161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14161[];
+extern VTBL_ENTRY _ZTV7ee14161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14161[];
+static VTBL_ENTRY alt_thunk_names543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14161 = { "ee14161", // class name
+ bases_ee14161, 4,
+ &(vtc_ee14161[0]), // expected_vtbl_contents
+ &(vtt_ee14161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14161),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names543,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24161 : dd4161 {
+ int e;
+ virtual void foo(); // _ZN7ee241613fooEv
+ ~ee24161(); // tgen
+ ee24161(); // tgen
+};
+//SIG(1 ee24161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24161 ::foo(){vfunc_called(this, "_ZN7ee241613fooEv");}
+ee24161 ::~ee24161(){ note_dtor("ee24161", this);} // tgen
+ee24161 ::ee24161(){ note_ctor("ee24161", this);} // tgen
+
+static void Test_ee24161()
+{
+ extern Class_Descriptor cd_ee24161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24161, buf);
+ ee24161 *dp, &lv = *(dp=new (buf) ee24161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee24161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(24,16), "ee24161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), 0, "ee24161");
+ check_base_class_offset(lv, (dd4161*), 0, "ee24161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24161.e");
+ test_class_info(&lv, &cd_ee24161);
+ dp->~ee24161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24161(Test_ee24161, "ee24161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24161C1Ev();
+extern void _ZN7ee24161D1Ev();
+Name_Map name_map_ee24161[] = {
+ NSPAIR(_ZN7ee24161C1Ev),
+ NSPAIR(_ZN7ee24161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee24161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24161[];
+extern void _ZN6dd41613barEv();
+extern void _ZN7ee241613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241613fooEv,_ZTv0_n12_N7ee241613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241613fooEv,_ZThn16_N7ee241613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+ (VTBL_ENTRY)&_ZN7ee241613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241613fooEv,_ZTv0_n12_N7ee241613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee24161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee24161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee24161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee24161[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee24161[] = {
+ {&(_ZTV7ee24161[3]), 3,11},
+ {&(_tg__ZTV6dd4161__7ee24161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee24161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee24161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee24161[4]), 4,6},
+ {&(_ZTV7ee24161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24161[];
+extern VTBL_ENTRY _ZTV7ee24161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24161[];
+static VTBL_ENTRY alt_thunk_names544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241613fooEv,_ZTv0_n12_N7ee241613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241613fooEv,_ZThn16_N7ee241613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24161 = { "ee24161", // class name
+ bases_ee24161, 4,
+ &(vtc_ee24161[0]), // expected_vtbl_contents
+ &(vtt_ee24161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24161),6, //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 ee34161 : virtual dd4161 {
+ int e;
+ virtual void foo(); // _ZN7ee341613fooEv
+ ~ee34161(); // tgen
+ ee34161(); // tgen
+};
+//SIG(1 ee34161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34161 ::foo(){vfunc_called(this, "_ZN7ee341613fooEv");}
+ee34161 ::~ee34161(){ note_dtor("ee34161", this);} // tgen
+ee34161 ::ee34161(){ note_ctor("ee34161", this);} // tgen
+
+static void Test_ee34161()
+{
+ extern Class_Descriptor cd_ee34161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34161, buf);
+ ee34161 *dp, &lv = *(dp=new (buf) ee34161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee34161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(32,20), "ee34161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), ABISELECT(16,8), "ee34161");
+ check_base_class_offset(lv, (dd4161*), ABISELECT(16,8), "ee34161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34161.e");
+ test_class_info(&lv, &cd_ee34161);
+ dp->~ee34161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34161(Test_ee34161, "ee34161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34161C1Ev();
+extern void _ZN7ee34161D1Ev();
+Name_Map name_map_ee34161[] = {
+ NSPAIR(_ZN7ee34161C1Ev),
+ NSPAIR(_ZN7ee34161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee34161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, ABISELECT(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 _ZTI7ee34161[];
+extern void _ZN7ee341613fooEv();
+extern void _ZN6dd41613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341613fooEv,_ZTv0_n12_N7ee341613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341613fooEv,_ZThn20_N7ee341613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34161[0]),
+ (VTBL_ENTRY)&_ZN7ee341613fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341613fooEv,_ZTv0_n12_N7ee341613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee34161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee34161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee34161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee34161[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee34161[] = {
+ {&(_ZTV7ee34161[4]), 4,16},
+ {&(_ZTV7ee34161[9]), 9,16},
+ {&(_ZTV7ee34161[14]), 14,16},
+ {&(_tg__ZTV6dd4161__7ee34161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee34161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee34161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee34161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34161[];
+extern VTBL_ENTRY _ZTV7ee34161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34161[];
+static VTBL_ENTRY alt_thunk_names545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341613fooEv,_ZTv0_n12_N7ee341613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341613fooEv,_ZThn20_N7ee341613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34161 = { "ee34161", // class name
+ bases_ee34161, 4,
+ &(vtc_ee34161[0]), // expected_vtbl_contents
+ &(vtt_ee34161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34161),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34161),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44161 : dd4161 {
+ int e;
+ virtual void bar(); // _ZN7ee441613barEv
+ ~ee44161(); // tgen
+ ee44161(); // tgen
+};
+//SIG(1 ee44161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44161 ::bar(){vfunc_called(this, "_ZN7ee441613barEv");}
+ee44161 ::~ee44161(){ note_dtor("ee44161", this);} // tgen
+ee44161 ::ee44161(){ note_ctor("ee44161", this);} // tgen
+
+static void Test_ee44161()
+{
+ extern Class_Descriptor cd_ee44161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44161, buf);
+ ee44161 *dp, &lv = *(dp=new (buf) ee44161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee44161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(24,16), "ee44161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), 0, "ee44161");
+ check_base_class_offset(lv, (dd4161*), 0, "ee44161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44161.e");
+ test_class_info(&lv, &cd_ee44161);
+ dp->~ee44161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44161(Test_ee44161, "ee44161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44161C1Ev();
+extern void _ZN7ee44161D1Ev();
+Name_Map name_map_ee44161[] = {
+ NSPAIR(_ZN7ee44161C1Ev),
+ NSPAIR(_ZN7ee44161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee44161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44161[];
+extern void _ZN7ee441613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441613barEv,_ZTv0_n16_N7ee441613barEv)();
+extern void ABISELECT(_ZThn24_N7ee441613barEv,_ZThn16_N7ee441613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44161[0]),
+ (VTBL_ENTRY)&_ZN7ee441613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441613barEv,_ZTv0_n16_N7ee441613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee44161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee44161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee44161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee44161[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee44161[] = {
+ {&(_ZTV7ee44161[3]), 3,10},
+ {&(_tg__ZTV6dd4161__7ee44161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee44161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee44161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee44161[4]), 4,6},
+ {&(_ZTV7ee44161[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44161[];
+extern VTBL_ENTRY _ZTV7ee44161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44161[];
+static VTBL_ENTRY alt_thunk_names546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441613barEv,_ZTv0_n16_N7ee441613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441613barEv,_ZThn16_N7ee441613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44161 = { "ee44161", // class name
+ bases_ee44161, 4,
+ &(vtc_ee44161[0]), // expected_vtbl_contents
+ &(vtt_ee44161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44161),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44161),6, //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 ee54161 : virtual dd4161 {
+ int e;
+ virtual void bar(); // _ZN7ee541613barEv
+ ~ee54161(); // tgen
+ ee54161(); // tgen
+};
+//SIG(1 ee54161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54161 ::bar(){vfunc_called(this, "_ZN7ee541613barEv");}
+ee54161 ::~ee54161(){ note_dtor("ee54161", this);} // tgen
+ee54161 ::ee54161(){ note_ctor("ee54161", this);} // tgen
+
+static void Test_ee54161()
+{
+ extern Class_Descriptor cd_ee54161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54161, buf);
+ ee54161 *dp, &lv = *(dp=new (buf) ee54161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee54161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(32,20), "ee54161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), ABISELECT(16,8), "ee54161");
+ check_base_class_offset(lv, (dd4161*), ABISELECT(16,8), "ee54161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54161.e");
+ test_class_info(&lv, &cd_ee54161);
+ dp->~ee54161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54161(Test_ee54161, "ee54161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54161C1Ev();
+extern void _ZN7ee54161D1Ev();
+Name_Map name_map_ee54161[] = {
+ NSPAIR(_ZN7ee54161C1Ev),
+ NSPAIR(_ZN7ee54161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee54161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, ABISELECT(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 _ZTI7ee54161[];
+extern void _ZN7ee541613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541613barEv,_ZTv0_n16_N7ee541613barEv)();
+extern void ABISELECT(_ZThn16_N7ee541613barEv,_ZThn8_N7ee541613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541613barEv,_ZTv0_n16_N7ee541613barEv)();
+extern void ABISELECT(_ZThn32_N7ee541613barEv,_ZThn20_N7ee541613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54161[0]),
+ (VTBL_ENTRY)&_ZN7ee541613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541613barEv,_ZTv0_n16_N7ee541613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541613barEv,_ZTv0_n16_N7ee541613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee54161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee54161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee54161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee54161[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee54161[] = {
+ {&(_ZTV7ee54161[4]), 4,16},
+ {&(_ZTV7ee54161[9]), 9,16},
+ {&(_ZTV7ee54161[14]), 14,16},
+ {&(_tg__ZTV6dd4161__7ee54161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee54161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee54161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee54161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54161[];
+extern VTBL_ENTRY _ZTV7ee54161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54161[];
+static VTBL_ENTRY alt_thunk_names547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541613barEv,_ZTv0_n16_N7ee541613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541613barEv,_ZThn20_N7ee541613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541613barEv,_ZThn8_N7ee541613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54161 = { "ee54161", // class name
+ bases_ee54161, 4,
+ &(vtc_ee54161[0]), // expected_vtbl_contents
+ &(vtt_ee54161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54161),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54161),7, //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 ee64161 : dd4161 {
+ int e;
+ virtual void foo(); // _ZN7ee641613fooEv
+ virtual void bar(); // _ZN7ee641613barEv
+ ~ee64161(); // tgen
+ ee64161(); // tgen
+};
+//SIG(1 ee64161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64161 ::foo(){vfunc_called(this, "_ZN7ee641613fooEv");}
+void ee64161 ::bar(){vfunc_called(this, "_ZN7ee641613barEv");}
+ee64161 ::~ee64161(){ note_dtor("ee64161", this);} // tgen
+ee64161 ::ee64161(){ note_ctor("ee64161", this);} // tgen
+
+static void Test_ee64161()
+{
+ extern Class_Descriptor cd_ee64161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64161, buf);
+ ee64161 *dp, &lv = *(dp=new (buf) ee64161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee64161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(24,16), "ee64161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), 0, "ee64161");
+ check_base_class_offset(lv, (dd4161*), 0, "ee64161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64161.e");
+ test_class_info(&lv, &cd_ee64161);
+ dp->~ee64161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64161(Test_ee64161, "ee64161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64161C1Ev();
+extern void _ZN7ee64161D1Ev();
+Name_Map name_map_ee64161[] = {
+ NSPAIR(_ZN7ee64161C1Ev),
+ NSPAIR(_ZN7ee64161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee64161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64161[];
+extern void _ZN7ee641613barEv();
+extern void _ZN7ee641613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641613fooEv,_ZTv0_n12_N7ee641613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641613fooEv,_ZThn16_N7ee641613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641613barEv,_ZTv0_n16_N7ee641613barEv)();
+extern void ABISELECT(_ZThn24_N7ee641613barEv,_ZThn16_N7ee641613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64161[0]),
+ (VTBL_ENTRY)&_ZN7ee641613barEv,
+ (VTBL_ENTRY)&_ZN7ee641613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641613fooEv,_ZTv0_n12_N7ee641613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641613barEv,_ZTv0_n16_N7ee641613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee64161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee64161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee64161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee64161[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee64161[] = {
+ {&(_ZTV7ee64161[3]), 3,11},
+ {&(_tg__ZTV6dd4161__7ee64161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee64161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee64161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee64161[4]), 4,6},
+ {&(_ZTV7ee64161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64161[];
+extern VTBL_ENTRY _ZTV7ee64161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64161[];
+static VTBL_ENTRY alt_thunk_names548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41613barEv,_ZThn16_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641613barEv,_ZTv0_n16_N7ee641613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641613barEv,_ZThn16_N7ee641613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641613fooEv,_ZTv0_n12_N7ee641613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641613fooEv,_ZThn16_N7ee641613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64161 = { "ee64161", // class name
+ bases_ee64161, 4,
+ &(vtc_ee64161[0]), // expected_vtbl_contents
+ &(vtt_ee64161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64161),6, //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 ee74161 : virtual dd4161 {
+ int e;
+ virtual void foo(); // _ZN7ee741613fooEv
+ virtual void bar(); // _ZN7ee741613barEv
+ ~ee74161(); // tgen
+ ee74161(); // tgen
+};
+//SIG(1 ee74161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74161 ::foo(){vfunc_called(this, "_ZN7ee741613fooEv");}
+void ee74161 ::bar(){vfunc_called(this, "_ZN7ee741613barEv");}
+ee74161 ::~ee74161(){ note_dtor("ee74161", this);} // tgen
+ee74161 ::ee74161(){ note_ctor("ee74161", this);} // tgen
+
+static void Test_ee74161()
+{
+ extern Class_Descriptor cd_ee74161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74161, buf);
+ ee74161 *dp, &lv = *(dp=new (buf) ee74161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee74161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd4161*), ABISELECT(32,20), "ee74161");
+ check_base_class_offset(lv, (cc161*)(dd4161*), ABISELECT(16,8), "ee74161");
+ check_base_class_offset(lv, (dd4161*), ABISELECT(16,8), "ee74161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74161.e");
+ test_class_info(&lv, &cd_ee74161);
+ dp->~ee74161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74161(Test_ee74161, "ee74161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74161C1Ev();
+extern void _ZN7ee74161D1Ev();
+Name_Map name_map_ee74161[] = {
+ NSPAIR(_ZN7ee74161C1Ev),
+ NSPAIR(_ZN7ee74161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd4161;
+extern VTBL_ENTRY _ZTI6dd4161[];
+extern VTBL_ENTRY _ZTV6dd4161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4161[];
+static Base_Class bases_ee74161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4161, 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 _ZTI7ee74161[];
+extern void _ZN7ee741613fooEv();
+extern void _ZN7ee741613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741613barEv,_ZTv0_n16_N7ee741613barEv)();
+extern void ABISELECT(_ZThn16_N7ee741613barEv,_ZThn8_N7ee741613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741613fooEv,_ZTv0_n12_N7ee741613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741613fooEv,_ZThn20_N7ee741613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741613barEv,_ZTv0_n16_N7ee741613barEv)();
+extern void ABISELECT(_ZThn32_N7ee741613barEv,_ZThn20_N7ee741613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74161[0]),
+ (VTBL_ENTRY)&_ZN7ee741613fooEv,
+ (VTBL_ENTRY)&_ZN7ee741613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741613barEv,_ZTv0_n16_N7ee741613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741613fooEv,_ZTv0_n12_N7ee741613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741613barEv,_ZTv0_n16_N7ee741613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74161[];
+extern void _ZN6dd41613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4161__7ee74161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN6dd41613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd4161__7ee74161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd4161__7ee74161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv)();
+extern void ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4161__7ee74161[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv),
+};
+static VTT_ENTRY vtt_ee74161[] = {
+ {&(_ZTV7ee74161[4]), 4,17},
+ {&(_ZTV7ee74161[10]), 10,17},
+ {&(_ZTV7ee74161[15]), 15,17},
+ {&(_tg__ZTV6dd4161__7ee74161[3]), 3,4},
+ {&(_tg__ZTV5cc1616dd4161__7ee74161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd4161__7ee74161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4161__7ee74161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74161[];
+extern VTBL_ENTRY _ZTV7ee74161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74161[];
+static VTBL_ENTRY alt_thunk_names549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41613barEv,_ZTv0_n16_N6dd41613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41613barEv,_ZThn12_N6dd41613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741613fooEv,_ZTv0_n12_N7ee741613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741613fooEv,_ZThn20_N7ee741613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741613barEv,_ZTv0_n16_N7ee741613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741613barEv,_ZThn20_N7ee741613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741613barEv,_ZThn8_N7ee741613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74161 = { "ee74161", // class name
+ bases_ee74161, 4,
+ &(vtc_ee74161[0]), // expected_vtbl_contents
+ &(vtt_ee74161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74161),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74161),7, //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 dd5161 : virtual cc161 {
+ int d;
+ virtual void bar(); // _ZN6dd51613barEv
+ ~dd5161(); // tgen
+ dd5161(); // tgen
+};
+//SIG(-1 dd5161) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5161 ::bar(){vfunc_called(this, "_ZN6dd51613barEv");}
+dd5161 ::~dd5161(){ note_dtor("dd5161", this);} // tgen
+dd5161 ::dd5161(){ note_ctor("dd5161", this);} // tgen
+
+static void Test_dd5161()
+{
+ extern Class_Descriptor cd_dd5161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5161, buf);
+ dd5161 *dp, &lv = *(dp=new (buf) dd5161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd5161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,16), "dd5161");
+ check_base_class_offset(lv, (cc161*), ABISELECT(16,8), "dd5161");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5161.d");
+ test_class_info(&lv, &cd_dd5161);
+ dp->~dd5161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5161(Test_dd5161, "dd5161", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5161C1Ev();
+extern void _ZN6dd5161D1Ev();
+Name_Map name_map_dd5161[] = {
+ NSPAIR(_ZN6dd5161C1Ev),
+ NSPAIR(_ZN6dd5161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd5161[] = {
+ // 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_bb61, 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_cc161, 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 _ZTI6dd5161[];
+extern void _ZN6dd51613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd5161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd5161[] = {
+ {&(_ZTV6dd5161[4]), 4,14},
+ {&(_ZTV6dd5161[8]), 8,14},
+ {&(_ZTV6dd5161[12]), 12,14},
+ {&(_tg__ZTV5cc161__6dd5161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd5161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static VTBL_ENTRY alt_thunk_names550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5161 = { "dd5161", // class name
+ bases_dd5161, 3,
+ &(vtc_dd5161[0]), // expected_vtbl_contents
+ &(vtt_dd5161[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5161),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names550,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05161 : dd5161 {
+ int e;
+ ~ee05161(); // tgen
+ ee05161(); // tgen
+};
+//SIG(1 ee05161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05161 ::~ee05161(){ note_dtor("ee05161", this);} // tgen
+ee05161 ::ee05161(){ note_ctor("ee05161", this);} // tgen
+
+static void Test_ee05161()
+{
+ extern Class_Descriptor cd_ee05161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05161, buf);
+ ee05161 *dp, &lv = *(dp=new (buf) ee05161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee05161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee05161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(16,12), "ee05161");
+ check_base_class_offset(lv, (dd5161*), 0, "ee05161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05161.e");
+ test_class_info(&lv, &cd_ee05161);
+ dp->~ee05161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05161(Test_ee05161, "ee05161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05161C1Ev();
+extern void _ZN7ee05161D1Ev();
+Name_Map name_map_ee05161[] = {
+ NSPAIR(_ZN7ee05161C1Ev),
+ NSPAIR(_ZN7ee05161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee05161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05161[];
+extern void _ZN6dd51613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05161[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee05161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee05161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee05161[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee05161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee05161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee05161[] = {
+ {&(_ZTV7ee05161[4]), 4,14},
+ {&(_tg__ZTV6dd5161__7ee05161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee05161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee05161[4]), 4,6},
+ {&(_ZTV7ee05161[8]), 8,14},
+ {&(_ZTV7ee05161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee05161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee05161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05161[];
+extern VTBL_ENTRY _ZTV7ee05161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05161[];
+static VTBL_ENTRY alt_thunk_names551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05161 = { "ee05161", // class name
+ bases_ee05161, 4,
+ &(vtc_ee05161[0]), // expected_vtbl_contents
+ &(vtt_ee05161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05161),8, //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 ee15161 : virtual dd5161 {
+ int e;
+ ~ee15161(); // tgen
+ ee15161(); // tgen
+};
+//SIG(1 ee15161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15161 ::~ee15161(){ note_dtor("ee15161", this);} // tgen
+ee15161 ::ee15161(){ note_ctor("ee15161", this);} // tgen
+
+static void Test_ee15161()
+{
+ extern Class_Descriptor cd_ee15161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15161, buf);
+ ee15161 *dp, &lv = *(dp=new (buf) ee15161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee15161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee15161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(32,16), "ee15161");
+ check_base_class_offset(lv, (dd5161*), ABISELECT(16,8), "ee15161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15161.e");
+ test_class_info(&lv, &cd_ee15161);
+ dp->~ee15161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15161(Test_ee15161, "ee15161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15161C1Ev();
+extern void _ZN7ee15161D1Ev();
+Name_Map name_map_ee15161[] = {
+ NSPAIR(_ZN7ee15161C1Ev),
+ NSPAIR(_ZN7ee15161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee15161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, ABISELECT(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 _ZTI7ee15161[];
+extern void _ZN6dd51613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15161[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15161[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee15161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee15161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee15161[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee15161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee15161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee15161[] = {
+ {&(_ZTV7ee15161[5]), 5,20},
+ {&(_ZTV7ee15161[10]), 10,20},
+ {&(_ZTV7ee15161[14]), 14,20},
+ {&(_ZTV7ee15161[18]), 18,20},
+ {&(_tg__ZTV6dd5161__7ee15161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee15161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee15161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee15161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee15161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15161[];
+extern VTBL_ENTRY _ZTV7ee15161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15161[];
+static VTBL_ENTRY alt_thunk_names552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15161 = { "ee15161", // class name
+ bases_ee15161, 4,
+ &(vtc_ee15161[0]), // expected_vtbl_contents
+ &(vtt_ee15161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15161),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15161),9, //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 ee25161 : dd5161 {
+ int e;
+ virtual void foo(); // _ZN7ee251613fooEv
+ ~ee25161(); // tgen
+ ee25161(); // tgen
+};
+//SIG(1 ee25161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25161 ::foo(){vfunc_called(this, "_ZN7ee251613fooEv");}
+ee25161 ::~ee25161(){ note_dtor("ee25161", this);} // tgen
+ee25161 ::ee25161(){ note_ctor("ee25161", this);} // tgen
+
+static void Test_ee25161()
+{
+ extern Class_Descriptor cd_ee25161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25161, buf);
+ ee25161 *dp, &lv = *(dp=new (buf) ee25161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee25161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee25161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(16,12), "ee25161");
+ check_base_class_offset(lv, (dd5161*), 0, "ee25161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25161.e");
+ test_class_info(&lv, &cd_ee25161);
+ dp->~ee25161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25161(Test_ee25161, "ee25161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25161C1Ev();
+extern void _ZN7ee25161D1Ev();
+Name_Map name_map_ee25161[] = {
+ NSPAIR(_ZN7ee25161C1Ev),
+ NSPAIR(_ZN7ee25161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee25161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25161[];
+extern void _ZN6dd51613barEv();
+extern void _ZN7ee251613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251613fooEv,_ZTv0_n12_N7ee251613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251613fooEv,_ZThn20_N7ee251613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+ (VTBL_ENTRY)&_ZN7ee251613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251613fooEv,_ZTv0_n12_N7ee251613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee25161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee25161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee25161[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee25161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee25161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee25161[] = {
+ {&(_ZTV7ee25161[4]), 4,15},
+ {&(_tg__ZTV6dd5161__7ee25161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee25161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee25161[4]), 4,6},
+ {&(_ZTV7ee25161[9]), 9,15},
+ {&(_ZTV7ee25161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee25161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee25161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25161[];
+extern VTBL_ENTRY _ZTV7ee25161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25161[];
+static VTBL_ENTRY alt_thunk_names553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251613fooEv,_ZTv0_n12_N7ee251613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251613fooEv,_ZThn20_N7ee251613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25161 = { "ee25161", // class name
+ bases_ee25161, 4,
+ &(vtc_ee25161[0]), // expected_vtbl_contents
+ &(vtt_ee25161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25161),8, //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 ee35161 : virtual dd5161 {
+ int e;
+ virtual void foo(); // _ZN7ee351613fooEv
+ ~ee35161(); // tgen
+ ee35161(); // tgen
+};
+//SIG(1 ee35161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35161 ::foo(){vfunc_called(this, "_ZN7ee351613fooEv");}
+ee35161 ::~ee35161(){ note_dtor("ee35161", this);} // tgen
+ee35161 ::ee35161(){ note_ctor("ee35161", this);} // tgen
+
+static void Test_ee35161()
+{
+ extern Class_Descriptor cd_ee35161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35161, buf);
+ ee35161 *dp, &lv = *(dp=new (buf) ee35161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee35161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee35161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(32,16), "ee35161");
+ check_base_class_offset(lv, (dd5161*), ABISELECT(16,8), "ee35161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35161.e");
+ test_class_info(&lv, &cd_ee35161);
+ dp->~ee35161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35161(Test_ee35161, "ee35161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35161C1Ev();
+extern void _ZN7ee35161D1Ev();
+Name_Map name_map_ee35161[] = {
+ NSPAIR(_ZN7ee35161C1Ev),
+ NSPAIR(_ZN7ee35161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee35161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, ABISELECT(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 _ZTI7ee35161[];
+extern void _ZN7ee351613fooEv();
+extern void _ZN6dd51613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351613fooEv,_ZTv0_n12_N7ee351613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351613fooEv,_ZThn24_N7ee351613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35161[0]),
+ (VTBL_ENTRY)&_ZN7ee351613fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35161[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351613fooEv,_ZTv0_n12_N7ee351613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee35161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee35161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee35161[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee35161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee35161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee35161[] = {
+ {&(_ZTV7ee35161[5]), 5,21},
+ {&(_ZTV7ee35161[11]), 11,21},
+ {&(_ZTV7ee35161[15]), 15,21},
+ {&(_ZTV7ee35161[19]), 19,21},
+ {&(_tg__ZTV6dd5161__7ee35161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee35161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee35161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee35161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee35161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35161[];
+extern VTBL_ENTRY _ZTV7ee35161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35161[];
+static VTBL_ENTRY alt_thunk_names554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351613fooEv,_ZTv0_n12_N7ee351613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351613fooEv,_ZThn24_N7ee351613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35161 = { "ee35161", // class name
+ bases_ee35161, 4,
+ &(vtc_ee35161[0]), // expected_vtbl_contents
+ &(vtt_ee35161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35161),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35161),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45161 : dd5161 {
+ int e;
+ virtual void bar(); // _ZN7ee451613barEv
+ ~ee45161(); // tgen
+ ee45161(); // tgen
+};
+//SIG(1 ee45161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45161 ::bar(){vfunc_called(this, "_ZN7ee451613barEv");}
+ee45161 ::~ee45161(){ note_dtor("ee45161", this);} // tgen
+ee45161 ::ee45161(){ note_ctor("ee45161", this);} // tgen
+
+static void Test_ee45161()
+{
+ extern Class_Descriptor cd_ee45161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45161, buf);
+ ee45161 *dp, &lv = *(dp=new (buf) ee45161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee45161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee45161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(16,12), "ee45161");
+ check_base_class_offset(lv, (dd5161*), 0, "ee45161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45161.e");
+ test_class_info(&lv, &cd_ee45161);
+ dp->~ee45161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45161(Test_ee45161, "ee45161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45161C1Ev();
+extern void _ZN7ee45161D1Ev();
+Name_Map name_map_ee45161[] = {
+ NSPAIR(_ZN7ee45161C1Ev),
+ NSPAIR(_ZN7ee45161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee45161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45161[];
+extern void _ZN7ee451613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451613barEv,_ZTv0_n16_N7ee451613barEv)();
+extern void ABISELECT(_ZThn32_N7ee451613barEv,_ZThn20_N7ee451613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45161[0]),
+ (VTBL_ENTRY)&_ZN7ee451613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45161[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451613barEv,_ZTv0_n16_N7ee451613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee45161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee45161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee45161[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee45161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee45161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee45161[] = {
+ {&(_ZTV7ee45161[4]), 4,14},
+ {&(_tg__ZTV6dd5161__7ee45161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee45161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee45161[4]), 4,6},
+ {&(_ZTV7ee45161[8]), 8,14},
+ {&(_ZTV7ee45161[12]), 12,14},
+ {&(_tg__ZTV5cc161__7ee45161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee45161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45161[];
+extern VTBL_ENTRY _ZTV7ee45161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45161[];
+static VTBL_ENTRY alt_thunk_names555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451613barEv,_ZTv0_n16_N7ee451613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451613barEv,_ZThn20_N7ee451613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45161 = { "ee45161", // class name
+ bases_ee45161, 4,
+ &(vtc_ee45161[0]), // expected_vtbl_contents
+ &(vtt_ee45161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45161),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45161),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55161 : virtual dd5161 {
+ int e;
+ virtual void bar(); // _ZN7ee551613barEv
+ ~ee55161(); // tgen
+ ee55161(); // tgen
+};
+//SIG(1 ee55161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55161 ::bar(){vfunc_called(this, "_ZN7ee551613barEv");}
+ee55161 ::~ee55161(){ note_dtor("ee55161", this);} // tgen
+ee55161 ::ee55161(){ note_ctor("ee55161", this);} // tgen
+
+static void Test_ee55161()
+{
+ extern Class_Descriptor cd_ee55161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55161, buf);
+ ee55161 *dp, &lv = *(dp=new (buf) ee55161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee55161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee55161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(32,16), "ee55161");
+ check_base_class_offset(lv, (dd5161*), ABISELECT(16,8), "ee55161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55161.e");
+ test_class_info(&lv, &cd_ee55161);
+ dp->~ee55161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55161(Test_ee55161, "ee55161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55161C1Ev();
+extern void _ZN7ee55161D1Ev();
+Name_Map name_map_ee55161[] = {
+ NSPAIR(_ZN7ee55161C1Ev),
+ NSPAIR(_ZN7ee55161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee55161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, ABISELECT(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 _ZTI7ee55161[];
+extern void _ZN7ee551613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551613barEv,_ZTv0_n20_N7ee551613barEv)();
+extern void ABISELECT(_ZThn16_N7ee551613barEv,_ZThn8_N7ee551613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee551613barEv,_ZTv0_n16_N7ee551613barEv)();
+extern void ABISELECT(_ZThn48_N7ee551613barEv,_ZThn24_N7ee551613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55161[0]),
+ (VTBL_ENTRY)&_ZN7ee551613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551613barEv,_ZTv0_n20_N7ee551613barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55161[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551613barEv,_ZTv0_n16_N7ee551613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee55161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee55161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee55161[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee55161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee55161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee55161[] = {
+ {&(_ZTV7ee55161[5]), 5,21},
+ {&(_ZTV7ee55161[11]), 11,21},
+ {&(_ZTV7ee55161[15]), 15,21},
+ {&(_ZTV7ee55161[19]), 19,21},
+ {&(_tg__ZTV6dd5161__7ee55161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee55161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee55161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee55161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee55161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55161[];
+extern VTBL_ENTRY _ZTV7ee55161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55161[];
+static VTBL_ENTRY alt_thunk_names556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551613barEv,_ZTv0_n16_N7ee551613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551613barEv,_ZThn24_N7ee551613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551613barEv,_ZTv0_n20_N7ee551613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551613barEv,_ZThn8_N7ee551613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55161 = { "ee55161", // class name
+ bases_ee55161, 4,
+ &(vtc_ee55161[0]), // expected_vtbl_contents
+ &(vtt_ee55161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55161),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55161),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65161 : dd5161 {
+ int e;
+ virtual void foo(); // _ZN7ee651613fooEv
+ virtual void bar(); // _ZN7ee651613barEv
+ ~ee65161(); // tgen
+ ee65161(); // tgen
+};
+//SIG(1 ee65161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65161 ::foo(){vfunc_called(this, "_ZN7ee651613fooEv");}
+void ee65161 ::bar(){vfunc_called(this, "_ZN7ee651613barEv");}
+ee65161 ::~ee65161(){ note_dtor("ee65161", this);} // tgen
+ee65161 ::ee65161(){ note_ctor("ee65161", this);} // tgen
+
+static void Test_ee65161()
+{
+ extern Class_Descriptor cd_ee65161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65161, buf);
+ ee65161 *dp, &lv = *(dp=new (buf) ee65161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee65161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee65161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(16,12), "ee65161");
+ check_base_class_offset(lv, (dd5161*), 0, "ee65161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65161.e");
+ test_class_info(&lv, &cd_ee65161);
+ dp->~ee65161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65161(Test_ee65161, "ee65161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65161C1Ev();
+extern void _ZN7ee65161D1Ev();
+Name_Map name_map_ee65161[] = {
+ NSPAIR(_ZN7ee65161C1Ev),
+ NSPAIR(_ZN7ee65161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee65161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65161[];
+extern void _ZN7ee651613barEv();
+extern void _ZN7ee651613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651613fooEv,_ZTv0_n12_N7ee651613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651613fooEv,_ZThn20_N7ee651613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651613barEv,_ZTv0_n16_N7ee651613barEv)();
+extern void ABISELECT(_ZThn32_N7ee651613barEv,_ZThn20_N7ee651613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65161[0]),
+ (VTBL_ENTRY)&_ZN7ee651613barEv,
+ (VTBL_ENTRY)&_ZN7ee651613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651613fooEv,_ZTv0_n12_N7ee651613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651613barEv,_ZTv0_n16_N7ee651613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee65161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee65161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee65161[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee65161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee65161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee65161[] = {
+ {&(_ZTV7ee65161[4]), 4,15},
+ {&(_tg__ZTV6dd5161__7ee65161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee65161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee65161[4]), 4,6},
+ {&(_ZTV7ee65161[9]), 9,15},
+ {&(_ZTV7ee65161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee65161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee65161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65161[];
+extern VTBL_ENTRY _ZTV7ee65161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65161[];
+static VTBL_ENTRY alt_thunk_names557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn20_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651613barEv,_ZTv0_n16_N7ee651613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651613barEv,_ZThn20_N7ee651613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651613fooEv,_ZTv0_n12_N7ee651613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651613fooEv,_ZThn20_N7ee651613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65161 = { "ee65161", // class name
+ bases_ee65161, 4,
+ &(vtc_ee65161[0]), // expected_vtbl_contents
+ &(vtt_ee65161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65161),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names557,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75161 : virtual dd5161 {
+ int e;
+ virtual void foo(); // _ZN7ee751613fooEv
+ virtual void bar(); // _ZN7ee751613barEv
+ ~ee75161(); // tgen
+ ee75161(); // tgen
+};
+//SIG(1 ee75161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75161 ::foo(){vfunc_called(this, "_ZN7ee751613fooEv");}
+void ee75161 ::bar(){vfunc_called(this, "_ZN7ee751613barEv");}
+ee75161 ::~ee75161(){ note_dtor("ee75161", this);} // tgen
+ee75161 ::ee75161(){ note_ctor("ee75161", this);} // tgen
+
+static void Test_ee75161()
+{
+ extern Class_Descriptor cd_ee75161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75161, buf);
+ ee75161 *dp, &lv = *(dp=new (buf) ee75161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee75161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee75161");
+ check_base_class_offset(lv, (cc161*)(dd5161*), ABISELECT(32,16), "ee75161");
+ check_base_class_offset(lv, (dd5161*), ABISELECT(16,8), "ee75161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75161.e");
+ test_class_info(&lv, &cd_ee75161);
+ dp->~ee75161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75161(Test_ee75161, "ee75161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75161C1Ev();
+extern void _ZN7ee75161D1Ev();
+Name_Map name_map_ee75161[] = {
+ NSPAIR(_ZN7ee75161C1Ev),
+ NSPAIR(_ZN7ee75161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd5161;
+extern VTBL_ENTRY _ZTI6dd5161[];
+extern VTBL_ENTRY _ZTV6dd5161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5161[];
+static Base_Class bases_ee75161[] = {
+ // 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_bb61, 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_cc161, 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_dd5161, 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 _ZTI7ee75161[];
+extern void _ZN7ee751613fooEv();
+extern void _ZN7ee751613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751613barEv,_ZTv0_n20_N7ee751613barEv)();
+extern void ABISELECT(_ZThn16_N7ee751613barEv,_ZThn8_N7ee751613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751613fooEv,_ZTv0_n12_N7ee751613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751613fooEv,_ZThn24_N7ee751613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751613barEv,_ZTv0_n16_N7ee751613barEv)();
+extern void ABISELECT(_ZThn48_N7ee751613barEv,_ZThn24_N7ee751613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75161[0]),
+ (VTBL_ENTRY)&_ZN7ee751613fooEv,
+ (VTBL_ENTRY)&_ZN7ee751613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751613barEv,_ZTv0_n20_N7ee751613barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751613fooEv,_ZTv0_n12_N7ee751613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751613barEv,_ZTv0_n16_N7ee751613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75161[];
+extern void _ZN6dd51613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5161__7ee75161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN6dd51613barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd5161__7ee75161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv)();
+extern void ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5161__7ee75161[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee75161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee75161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee75161[] = {
+ {&(_ZTV7ee75161[5]), 5,22},
+ {&(_ZTV7ee75161[12]), 12,22},
+ {&(_ZTV7ee75161[16]), 16,22},
+ {&(_ZTV7ee75161[20]), 20,22},
+ {&(_tg__ZTV6dd5161__7ee75161[4]), 4,5},
+ {&(_tg__ZTV5cc161__6dd5161__7ee75161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd5161__7ee75161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee75161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee75161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75161[];
+extern VTBL_ENTRY _ZTV7ee75161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75161[];
+static VTBL_ENTRY alt_thunk_names558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51613barEv,_ZTv0_n16_N6dd51613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51613barEv,_ZThn16_N6dd51613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751613barEv,_ZTv0_n16_N7ee751613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751613barEv,_ZThn24_N7ee751613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751613fooEv,_ZTv0_n12_N7ee751613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751613fooEv,_ZThn24_N7ee751613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751613barEv,_ZTv0_n20_N7ee751613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751613barEv,_ZThn8_N7ee751613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75161 = { "ee75161", // class name
+ bases_ee75161, 4,
+ &(vtc_ee75161[0]), // expected_vtbl_contents
+ &(vtt_ee75161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75161),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75161),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names558,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6161 : cc161 {
+ int d;
+ virtual void bar(); // _ZN6dd61613barEv
+ virtual void foo(); // _ZN6dd61613fooEv
+ ~dd6161(); // tgen
+ dd6161(); // tgen
+};
+//SIG(-1 dd6161) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6161 ::bar(){vfunc_called(this, "_ZN6dd61613barEv");}
+void dd6161 ::foo(){vfunc_called(this, "_ZN6dd61613fooEv");}
+dd6161 ::~dd6161(){ note_dtor("dd6161", this);} // tgen
+dd6161 ::dd6161(){ note_ctor("dd6161", this);} // tgen
+
+static void Test_dd6161()
+{
+ extern Class_Descriptor cd_dd6161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6161, buf);
+ dd6161 *dp, &lv = *(dp=new (buf) dd6161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd6161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(16,12), "dd6161");
+ check_base_class_offset(lv, (cc161*), 0, "dd6161");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6161.d");
+ test_class_info(&lv, &cd_dd6161);
+ dp->~dd6161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6161(Test_dd6161, "dd6161", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6161C1Ev();
+extern void _ZN6dd6161D1Ev();
+Name_Map name_map_dd6161[] = {
+ NSPAIR(_ZN6dd6161C1Ev),
+ NSPAIR(_ZN6dd6161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd6161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd6161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd6161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd6161[] = {
+ {&(_ZTV6dd6161[3]), 3,11},
+ {&(_tg__ZTV5cc161__6dd6161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd6161[4]), 4,6},
+ {&(_ZTV6dd6161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static VTBL_ENTRY alt_thunk_names559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6161 = { "dd6161", // class name
+ bases_dd6161, 3,
+ &(vtc_dd6161[0]), // expected_vtbl_contents
+ &(vtt_dd6161[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6161),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names559,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06161 : dd6161 {
+ int e;
+ ~ee06161(); // tgen
+ ee06161(); // tgen
+};
+//SIG(1 ee06161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06161 ::~ee06161(){ note_dtor("ee06161", this);} // tgen
+ee06161 ::ee06161(){ note_ctor("ee06161", this);} // tgen
+
+static void Test_ee06161()
+{
+ extern Class_Descriptor cd_ee06161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06161, buf);
+ ee06161 *dp, &lv = *(dp=new (buf) ee06161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee06161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(24,16), "ee06161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), 0, "ee06161");
+ check_base_class_offset(lv, (dd6161*), 0, "ee06161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06161.e");
+ test_class_info(&lv, &cd_ee06161);
+ dp->~ee06161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06161(Test_ee06161, "ee06161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06161C1Ev();
+extern void _ZN7ee06161D1Ev();
+Name_Map name_map_ee06161[] = {
+ NSPAIR(_ZN7ee06161C1Ev),
+ NSPAIR(_ZN7ee06161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee06161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee06161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee06161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee06161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee06161[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee06161[] = {
+ {&(_ZTV7ee06161[3]), 3,11},
+ {&(_tg__ZTV6dd6161__7ee06161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee06161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee06161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee06161[4]), 4,6},
+ {&(_ZTV7ee06161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06161[];
+extern VTBL_ENTRY _ZTV7ee06161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06161[];
+static VTBL_ENTRY alt_thunk_names560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06161 = { "ee06161", // class name
+ bases_ee06161, 4,
+ &(vtc_ee06161[0]), // expected_vtbl_contents
+ &(vtt_ee06161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06161),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 ee16161 : virtual dd6161 {
+ int e;
+ ~ee16161(); // tgen
+ ee16161(); // tgen
+};
+//SIG(1 ee16161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16161 ::~ee16161(){ note_dtor("ee16161", this);} // tgen
+ee16161 ::ee16161(){ note_ctor("ee16161", this);} // tgen
+
+static void Test_ee16161()
+{
+ extern Class_Descriptor cd_ee16161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16161, buf);
+ ee16161 *dp, &lv = *(dp=new (buf) ee16161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee16161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(32,20), "ee16161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), ABISELECT(16,8), "ee16161");
+ check_base_class_offset(lv, (dd6161*), ABISELECT(16,8), "ee16161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16161.e");
+ test_class_info(&lv, &cd_ee16161);
+ dp->~ee16161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16161(Test_ee16161, "ee16161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16161C1Ev();
+extern void _ZN7ee16161D1Ev();
+Name_Map name_map_ee16161[] = {
+ NSPAIR(_ZN7ee16161C1Ev),
+ NSPAIR(_ZN7ee16161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee16161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, 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 _ZTI7ee16161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16161[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee16161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee16161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee16161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee16161[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee16161[] = {
+ {&(_ZTV7ee16161[4]), 4,17},
+ {&(_ZTV7ee16161[9]), 9,17},
+ {&(_ZTV7ee16161[15]), 15,17},
+ {&(_tg__ZTV6dd6161__7ee16161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee16161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee16161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee16161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16161[];
+extern VTBL_ENTRY _ZTV7ee16161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16161[];
+static VTBL_ENTRY alt_thunk_names561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16161 = { "ee16161", // class name
+ bases_ee16161, 4,
+ &(vtc_ee16161[0]), // expected_vtbl_contents
+ &(vtt_ee16161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16161),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16161),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 ee26161 : dd6161 {
+ int e;
+ virtual void foo(); // _ZN7ee261613fooEv
+ ~ee26161(); // tgen
+ ee26161(); // tgen
+};
+//SIG(1 ee26161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26161 ::foo(){vfunc_called(this, "_ZN7ee261613fooEv");}
+ee26161 ::~ee26161(){ note_dtor("ee26161", this);} // tgen
+ee26161 ::ee26161(){ note_ctor("ee26161", this);} // tgen
+
+static void Test_ee26161()
+{
+ extern Class_Descriptor cd_ee26161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26161, buf);
+ ee26161 *dp, &lv = *(dp=new (buf) ee26161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee26161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(24,16), "ee26161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), 0, "ee26161");
+ check_base_class_offset(lv, (dd6161*), 0, "ee26161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26161.e");
+ test_class_info(&lv, &cd_ee26161);
+ dp->~ee26161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26161(Test_ee26161, "ee26161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26161C1Ev();
+extern void _ZN7ee26161D1Ev();
+Name_Map name_map_ee26161[] = {
+ NSPAIR(_ZN7ee26161C1Ev),
+ NSPAIR(_ZN7ee26161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee26161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN7ee261613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261613fooEv,_ZTv0_n12_N7ee261613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261613fooEv,_ZThn16_N7ee261613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN7ee261613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261613fooEv,_ZTv0_n12_N7ee261613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee26161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee26161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee26161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee26161[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee26161[] = {
+ {&(_ZTV7ee26161[3]), 3,11},
+ {&(_tg__ZTV6dd6161__7ee26161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee26161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee26161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee26161[4]), 4,6},
+ {&(_ZTV7ee26161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26161[];
+extern VTBL_ENTRY _ZTV7ee26161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26161[];
+static VTBL_ENTRY alt_thunk_names562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261613fooEv,_ZTv0_n12_N7ee261613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261613fooEv,_ZThn16_N7ee261613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26161 = { "ee26161", // class name
+ bases_ee26161, 4,
+ &(vtc_ee26161[0]), // expected_vtbl_contents
+ &(vtt_ee26161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26161),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 ee36161 : virtual dd6161 {
+ int e;
+ virtual void foo(); // _ZN7ee361613fooEv
+ ~ee36161(); // tgen
+ ee36161(); // tgen
+};
+//SIG(1 ee36161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36161 ::foo(){vfunc_called(this, "_ZN7ee361613fooEv");}
+ee36161 ::~ee36161(){ note_dtor("ee36161", this);} // tgen
+ee36161 ::ee36161(){ note_ctor("ee36161", this);} // tgen
+
+static void Test_ee36161()
+{
+ extern Class_Descriptor cd_ee36161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36161, buf);
+ ee36161 *dp, &lv = *(dp=new (buf) ee36161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee36161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(32,20), "ee36161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), ABISELECT(16,8), "ee36161");
+ check_base_class_offset(lv, (dd6161*), ABISELECT(16,8), "ee36161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36161.e");
+ test_class_info(&lv, &cd_ee36161);
+ dp->~ee36161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36161(Test_ee36161, "ee36161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36161C1Ev();
+extern void _ZN7ee36161D1Ev();
+Name_Map name_map_ee36161[] = {
+ NSPAIR(_ZN7ee36161C1Ev),
+ NSPAIR(_ZN7ee36161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee36161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, ABISELECT(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 _ZTI7ee36161[];
+extern void _ZN7ee361613fooEv();
+extern void _ZN6dd61613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361613fooEv,_ZTv0_n20_N7ee361613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361613fooEv,_ZThn8_N7ee361613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361613fooEv,_ZTv0_n12_N7ee361613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361613fooEv,_ZThn20_N7ee361613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36161[0]),
+ (VTBL_ENTRY)&_ZN7ee361613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361613fooEv,_ZTv0_n20_N7ee361613fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361613fooEv,_ZTv0_n12_N7ee361613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee36161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee36161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee36161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee36161[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee36161[] = {
+ {&(_ZTV7ee36161[4]), 4,18},
+ {&(_ZTV7ee36161[10]), 10,18},
+ {&(_ZTV7ee36161[16]), 16,18},
+ {&(_tg__ZTV6dd6161__7ee36161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee36161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee36161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee36161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36161[];
+extern VTBL_ENTRY _ZTV7ee36161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36161[];
+static VTBL_ENTRY alt_thunk_names563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361613fooEv,_ZTv0_n12_N7ee361613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361613fooEv,_ZThn20_N7ee361613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361613fooEv,_ZTv0_n20_N7ee361613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361613fooEv,_ZThn8_N7ee361613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36161 = { "ee36161", // class name
+ bases_ee36161, 4,
+ &(vtc_ee36161[0]), // expected_vtbl_contents
+ &(vtt_ee36161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36161),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36161),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 ee46161 : dd6161 {
+ int e;
+ virtual void bar(); // _ZN7ee461613barEv
+ ~ee46161(); // tgen
+ ee46161(); // tgen
+};
+//SIG(1 ee46161) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46161 ::bar(){vfunc_called(this, "_ZN7ee461613barEv");}
+ee46161 ::~ee46161(){ note_dtor("ee46161", this);} // tgen
+ee46161 ::ee46161(){ note_ctor("ee46161", this);} // tgen
+
+static void Test_ee46161()
+{
+ extern Class_Descriptor cd_ee46161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46161, buf);
+ ee46161 *dp, &lv = *(dp=new (buf) ee46161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee46161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(24,16), "ee46161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), 0, "ee46161");
+ check_base_class_offset(lv, (dd6161*), 0, "ee46161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46161.e");
+ test_class_info(&lv, &cd_ee46161);
+ dp->~ee46161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46161(Test_ee46161, "ee46161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46161C1Ev();
+extern void _ZN7ee46161D1Ev();
+Name_Map name_map_ee46161[] = {
+ NSPAIR(_ZN7ee46161C1Ev),
+ NSPAIR(_ZN7ee46161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee46161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46161[];
+extern void _ZN7ee461613barEv();
+extern void _ZN6dd61613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee461613barEv,_ZTv0_n16_N7ee461613barEv)();
+extern void ABISELECT(_ZThn24_N7ee461613barEv,_ZThn16_N7ee461613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46161[0]),
+ (VTBL_ENTRY)&_ZN7ee461613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461613barEv,_ZTv0_n16_N7ee461613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee46161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee46161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee46161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee46161[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee46161[] = {
+ {&(_ZTV7ee46161[3]), 3,11},
+ {&(_tg__ZTV6dd6161__7ee46161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee46161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee46161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee46161[4]), 4,6},
+ {&(_ZTV7ee46161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46161[];
+extern VTBL_ENTRY _ZTV7ee46161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46161[];
+static VTBL_ENTRY alt_thunk_names564[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461613barEv,_ZTv0_n16_N7ee461613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461613barEv,_ZThn16_N7ee461613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46161 = { "ee46161", // class name
+ bases_ee46161, 4,
+ &(vtc_ee46161[0]), // expected_vtbl_contents
+ &(vtt_ee46161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46161),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names564,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56161 : virtual dd6161 {
+ int e;
+ virtual void bar(); // _ZN7ee561613barEv
+ ~ee56161(); // tgen
+ ee56161(); // tgen
+};
+//SIG(1 ee56161) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56161 ::bar(){vfunc_called(this, "_ZN7ee561613barEv");}
+ee56161 ::~ee56161(){ note_dtor("ee56161", this);} // tgen
+ee56161 ::ee56161(){ note_ctor("ee56161", this);} // tgen
+
+static void Test_ee56161()
+{
+ extern Class_Descriptor cd_ee56161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56161, buf);
+ ee56161 *dp, &lv = *(dp=new (buf) ee56161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee56161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(32,20), "ee56161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), ABISELECT(16,8), "ee56161");
+ check_base_class_offset(lv, (dd6161*), ABISELECT(16,8), "ee56161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56161.e");
+ test_class_info(&lv, &cd_ee56161);
+ dp->~ee56161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56161(Test_ee56161, "ee56161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56161C1Ev();
+extern void _ZN7ee56161D1Ev();
+Name_Map name_map_ee56161[] = {
+ NSPAIR(_ZN7ee56161C1Ev),
+ NSPAIR(_ZN7ee56161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee56161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, ABISELECT(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 _ZTI7ee56161[];
+extern void _ZN7ee561613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561613barEv,_ZTv0_n16_N7ee561613barEv)();
+extern void ABISELECT(_ZThn16_N7ee561613barEv,_ZThn8_N7ee561613barEv)() __attribute__((weak));
+extern void _ZN6dd61613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee561613barEv,_ZTv0_n16_N7ee561613barEv)();
+extern void ABISELECT(_ZThn32_N7ee561613barEv,_ZThn20_N7ee561613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56161[0]),
+ (VTBL_ENTRY)&_ZN7ee561613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561613barEv,_ZTv0_n16_N7ee561613barEv),
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561613barEv,_ZTv0_n16_N7ee561613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee56161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee56161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee56161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee56161[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee56161[] = {
+ {&(_ZTV7ee56161[4]), 4,18},
+ {&(_ZTV7ee56161[10]), 10,18},
+ {&(_ZTV7ee56161[16]), 16,18},
+ {&(_tg__ZTV6dd6161__7ee56161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee56161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee56161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee56161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56161[];
+extern VTBL_ENTRY _ZTV7ee56161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56161[];
+static VTBL_ENTRY alt_thunk_names565[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561613barEv,_ZTv0_n16_N7ee561613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561613barEv,_ZThn20_N7ee561613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561613barEv,_ZThn8_N7ee561613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56161 = { "ee56161", // class name
+ bases_ee56161, 4,
+ &(vtc_ee56161[0]), // expected_vtbl_contents
+ &(vtt_ee56161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56161),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56161),7, //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 ee66161 : dd6161 {
+ int e;
+ virtual void foo(); // _ZN7ee661613fooEv
+ virtual void bar(); // _ZN7ee661613barEv
+ ~ee66161(); // tgen
+ ee66161(); // tgen
+};
+//SIG(1 ee66161) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66161 ::foo(){vfunc_called(this, "_ZN7ee661613fooEv");}
+void ee66161 ::bar(){vfunc_called(this, "_ZN7ee661613barEv");}
+ee66161 ::~ee66161(){ note_dtor("ee66161", this);} // tgen
+ee66161 ::ee66161(){ note_ctor("ee66161", this);} // tgen
+
+static void Test_ee66161()
+{
+ extern Class_Descriptor cd_ee66161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66161, buf);
+ ee66161 *dp, &lv = *(dp=new (buf) ee66161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee66161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(24,16), "ee66161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), 0, "ee66161");
+ check_base_class_offset(lv, (dd6161*), 0, "ee66161");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66161.e");
+ test_class_info(&lv, &cd_ee66161);
+ dp->~ee66161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66161(Test_ee66161, "ee66161", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66161C1Ev();
+extern void _ZN7ee66161D1Ev();
+Name_Map name_map_ee66161[] = {
+ NSPAIR(_ZN7ee66161C1Ev),
+ NSPAIR(_ZN7ee66161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee66161[] = {
+ // 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_bb61, 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_cc161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66161[];
+extern void _ZN7ee661613barEv();
+extern void _ZN7ee661613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661613fooEv,_ZTv0_n12_N7ee661613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661613fooEv,_ZThn16_N7ee661613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661613barEv,_ZTv0_n16_N7ee661613barEv)();
+extern void ABISELECT(_ZThn24_N7ee661613barEv,_ZThn16_N7ee661613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66161[0]),
+ (VTBL_ENTRY)&_ZN7ee661613barEv,
+ (VTBL_ENTRY)&_ZN7ee661613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661613fooEv,_ZTv0_n12_N7ee661613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661613barEv,_ZTv0_n16_N7ee661613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee66161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee66161[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee66161[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee66161[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee66161[] = {
+ {&(_ZTV7ee66161[3]), 3,11},
+ {&(_tg__ZTV6dd6161__7ee66161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee66161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee66161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee66161[4]), 4,6},
+ {&(_ZTV7ee66161[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66161[];
+extern VTBL_ENTRY _ZTV7ee66161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66161[];
+static VTBL_ENTRY alt_thunk_names566[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613barEv,_ZThn16_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61613fooEv,_ZThn16_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661613barEv,_ZTv0_n16_N7ee661613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661613barEv,_ZThn16_N7ee661613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661613fooEv,_ZTv0_n12_N7ee661613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661613fooEv,_ZThn16_N7ee661613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66161 = { "ee66161", // class name
+ bases_ee66161, 4,
+ &(vtc_ee66161[0]), // expected_vtbl_contents
+ &(vtt_ee66161[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66161),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66161),6, //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 ee76161 : virtual dd6161 {
+ int e;
+ virtual void foo(); // _ZN7ee761613fooEv
+ virtual void bar(); // _ZN7ee761613barEv
+ ~ee76161(); // tgen
+ ee76161(); // tgen
+};
+//SIG(1 ee76161) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76161 ::foo(){vfunc_called(this, "_ZN7ee761613fooEv");}
+void ee76161 ::bar(){vfunc_called(this, "_ZN7ee761613barEv");}
+ee76161 ::~ee76161(){ note_dtor("ee76161", this);} // tgen
+ee76161 ::ee76161(){ note_ctor("ee76161", this);} // tgen
+
+static void Test_ee76161()
+{
+ extern Class_Descriptor cd_ee76161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76161, buf);
+ ee76161 *dp, &lv = *(dp=new (buf) ee76161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee76161");
+ check_base_class_offset(lv, (bb61*)(cc161*)(dd6161*), ABISELECT(32,20), "ee76161");
+ check_base_class_offset(lv, (cc161*)(dd6161*), ABISELECT(16,8), "ee76161");
+ check_base_class_offset(lv, (dd6161*), ABISELECT(16,8), "ee76161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76161.e");
+ test_class_info(&lv, &cd_ee76161);
+ dp->~ee76161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76161(Test_ee76161, "ee76161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76161C1Ev();
+extern void _ZN7ee76161D1Ev();
+Name_Map name_map_ee76161[] = {
+ NSPAIR(_ZN7ee76161C1Ev),
+ NSPAIR(_ZN7ee76161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd6161;
+extern VTBL_ENTRY _ZTI6dd6161[];
+extern VTBL_ENTRY _ZTV6dd6161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6161[];
+static Base_Class bases_ee76161[] = {
+ // 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_bb61, 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_cc161, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6161, ABISELECT(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 _ZTI7ee76161[];
+extern void _ZN7ee761613fooEv();
+extern void _ZN7ee761613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761613barEv,_ZTv0_n16_N7ee761613barEv)();
+extern void ABISELECT(_ZThn16_N7ee761613barEv,_ZThn8_N7ee761613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761613fooEv,_ZTv0_n20_N7ee761613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761613fooEv,_ZThn8_N7ee761613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761613fooEv,_ZTv0_n12_N7ee761613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761613fooEv,_ZThn20_N7ee761613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761613barEv,_ZTv0_n16_N7ee761613barEv)();
+extern void ABISELECT(_ZThn32_N7ee761613barEv,_ZThn20_N7ee761613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76161[0]),
+ (VTBL_ENTRY)&_ZN7ee761613fooEv,
+ (VTBL_ENTRY)&_ZN7ee761613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761613barEv,_ZTv0_n16_N7ee761613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761613fooEv,_ZTv0_n20_N7ee761613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761613fooEv,_ZTv0_n12_N7ee761613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761613barEv,_ZTv0_n16_N7ee761613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76161[];
+extern void _ZN6dd61613barEv();
+extern void _ZN6dd61613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6161__7ee76161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&_ZN6dd61613barEv,
+ (VTBL_ENTRY)&_ZN6dd61613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1616dd6161__7ee76161[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc1616dd6161__7ee76161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv)();
+extern void ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6161__7ee76161[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv),
+};
+static VTT_ENTRY vtt_ee76161[] = {
+ {&(_ZTV7ee76161[4]), 4,19},
+ {&(_ZTV7ee76161[11]), 11,19},
+ {&(_ZTV7ee76161[17]), 17,19},
+ {&(_tg__ZTV6dd6161__7ee76161[3]), 3,5},
+ {&(_tg__ZTV5cc1616dd6161__7ee76161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc1616dd6161__7ee76161[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6161__7ee76161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76161[];
+extern VTBL_ENTRY _ZTV7ee76161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76161[];
+static VTBL_ENTRY alt_thunk_names567[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61613barEv,_ZTv0_n16_N6dd61613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613barEv,_ZThn12_N6dd61613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61613fooEv,_ZTv0_n12_N6dd61613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61613fooEv,_ZThn12_N6dd61613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761613fooEv,_ZTv0_n12_N7ee761613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761613fooEv,_ZThn20_N7ee761613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761613fooEv,_ZTv0_n20_N7ee761613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761613fooEv,_ZThn8_N7ee761613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761613barEv,_ZTv0_n16_N7ee761613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761613barEv,_ZThn20_N7ee761613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761613barEv,_ZThn8_N7ee761613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76161 = { "ee76161", // class name
+ bases_ee76161, 4,
+ &(vtc_ee76161[0]), // expected_vtbl_contents
+ &(vtt_ee76161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76161),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76161),7, //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 dd7161 : virtual cc161 {
+ int d;
+ virtual void bar(); // _ZN6dd71613barEv
+ virtual void foo(); // _ZN6dd71613fooEv
+ ~dd7161(); // tgen
+ dd7161(); // tgen
+};
+//SIG(-1 dd7161) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7161 ::bar(){vfunc_called(this, "_ZN6dd71613barEv");}
+void dd7161 ::foo(){vfunc_called(this, "_ZN6dd71613fooEv");}
+dd7161 ::~dd7161(){ note_dtor("dd7161", this);} // tgen
+dd7161 ::dd7161(){ note_ctor("dd7161", this);} // tgen
+
+static void Test_dd7161()
+{
+ extern Class_Descriptor cd_dd7161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7161, buf);
+ dd7161 *dp, &lv = *(dp=new (buf) dd7161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd7161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,16), "dd7161");
+ check_base_class_offset(lv, (cc161*), ABISELECT(16,8), "dd7161");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7161.d");
+ test_class_info(&lv, &cd_dd7161);
+ dp->~dd7161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7161(Test_dd7161, "dd7161", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7161C1Ev();
+extern void _ZN6dd7161D1Ev();
+Name_Map name_map_dd7161[] = {
+ NSPAIR(_ZN6dd7161C1Ev),
+ NSPAIR(_ZN6dd7161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+static Base_Class bases_dd7161[] = {
+ // 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_bb61, 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_cc161, 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 _ZTI6dd7161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7161[];
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__6dd7161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd7161[] = {
+ {&(_ZTV6dd7161[4]), 4,15},
+ {&(_ZTV6dd7161[9]), 9,15},
+ {&(_ZTV6dd7161[13]), 13,15},
+ {&(_tg__ZTV5cc161__6dd7161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__6dd7161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static VTBL_ENTRY alt_thunk_names568[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7161 = { "dd7161", // class name
+ bases_dd7161, 3,
+ &(vtc_dd7161[0]), // expected_vtbl_contents
+ &(vtt_dd7161[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7161),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names568,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07161 : dd7161 {
+ int e;
+ ~ee07161(); // tgen
+ ee07161(); // tgen
+};
+//SIG(1 ee07161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07161 ::~ee07161(){ note_dtor("ee07161", this);} // tgen
+ee07161 ::ee07161(){ note_ctor("ee07161", this);} // tgen
+
+static void Test_ee07161()
+{
+ extern Class_Descriptor cd_ee07161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07161, buf);
+ ee07161 *dp, &lv = *(dp=new (buf) ee07161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee07161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee07161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(16,12), "ee07161");
+ check_base_class_offset(lv, (dd7161*), 0, "ee07161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07161.e");
+ test_class_info(&lv, &cd_ee07161);
+ dp->~ee07161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07161(Test_ee07161, "ee07161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07161C1Ev();
+extern void _ZN7ee07161D1Ev();
+Name_Map name_map_ee07161[] = {
+ NSPAIR(_ZN7ee07161C1Ev),
+ NSPAIR(_ZN7ee07161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee07161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee07161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee07161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee07161[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee07161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee07161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee07161[] = {
+ {&(_ZTV7ee07161[4]), 4,15},
+ {&(_tg__ZTV6dd7161__7ee07161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee07161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee07161[4]), 4,6},
+ {&(_ZTV7ee07161[9]), 9,15},
+ {&(_ZTV7ee07161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee07161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee07161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07161[];
+extern VTBL_ENTRY _ZTV7ee07161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07161[];
+static VTBL_ENTRY alt_thunk_names569[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07161 = { "ee07161", // class name
+ bases_ee07161, 4,
+ &(vtc_ee07161[0]), // expected_vtbl_contents
+ &(vtt_ee07161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07161),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 ee17161 : virtual dd7161 {
+ int e;
+ ~ee17161(); // tgen
+ ee17161(); // tgen
+};
+//SIG(1 ee17161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17161 ::~ee17161(){ note_dtor("ee17161", this);} // tgen
+ee17161 ::ee17161(){ note_ctor("ee17161", this);} // tgen
+
+static void Test_ee17161()
+{
+ extern Class_Descriptor cd_ee17161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17161, buf);
+ ee17161 *dp, &lv = *(dp=new (buf) ee17161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee17161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee17161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(32,16), "ee17161");
+ check_base_class_offset(lv, (dd7161*), ABISELECT(16,8), "ee17161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17161.e");
+ test_class_info(&lv, &cd_ee17161);
+ dp->~ee17161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17161(Test_ee17161, "ee17161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17161C1Ev();
+extern void _ZN7ee17161D1Ev();
+Name_Map name_map_ee17161[] = {
+ NSPAIR(_ZN7ee17161C1Ev),
+ NSPAIR(_ZN7ee17161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee17161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 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 _ZTI7ee17161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17161[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17161[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee17161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee17161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee17161[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee17161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee17161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee17161[] = {
+ {&(_ZTV7ee17161[5]), 5,22},
+ {&(_ZTV7ee17161[11]), 11,22},
+ {&(_ZTV7ee17161[16]), 16,22},
+ {&(_ZTV7ee17161[20]), 20,22},
+ {&(_tg__ZTV6dd7161__7ee17161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee17161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee17161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee17161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee17161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17161[];
+extern VTBL_ENTRY _ZTV7ee17161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17161[];
+static VTBL_ENTRY alt_thunk_names570[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17161 = { "ee17161", // class name
+ bases_ee17161, 4,
+ &(vtc_ee17161[0]), // expected_vtbl_contents
+ &(vtt_ee17161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17161),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17161),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 ee27161 : dd7161 {
+ int e;
+ virtual void foo(); // _ZN7ee271613fooEv
+ ~ee27161(); // tgen
+ ee27161(); // tgen
+};
+//SIG(1 ee27161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27161 ::foo(){vfunc_called(this, "_ZN7ee271613fooEv");}
+ee27161 ::~ee27161(){ note_dtor("ee27161", this);} // tgen
+ee27161 ::ee27161(){ note_ctor("ee27161", this);} // tgen
+
+static void Test_ee27161()
+{
+ extern Class_Descriptor cd_ee27161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27161, buf);
+ ee27161 *dp, &lv = *(dp=new (buf) ee27161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee27161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee27161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(16,12), "ee27161");
+ check_base_class_offset(lv, (dd7161*), 0, "ee27161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27161.e");
+ test_class_info(&lv, &cd_ee27161);
+ dp->~ee27161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27161(Test_ee27161, "ee27161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27161C1Ev();
+extern void _ZN7ee27161D1Ev();
+Name_Map name_map_ee27161[] = {
+ NSPAIR(_ZN7ee27161C1Ev),
+ NSPAIR(_ZN7ee27161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee27161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN7ee271613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271613fooEv,_ZTv0_n12_N7ee271613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271613fooEv,_ZThn20_N7ee271613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN7ee271613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271613fooEv,_ZTv0_n12_N7ee271613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee27161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee27161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee27161[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee27161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee27161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee27161[] = {
+ {&(_ZTV7ee27161[4]), 4,15},
+ {&(_tg__ZTV6dd7161__7ee27161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee27161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee27161[4]), 4,6},
+ {&(_ZTV7ee27161[9]), 9,15},
+ {&(_ZTV7ee27161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee27161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee27161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27161[];
+extern VTBL_ENTRY _ZTV7ee27161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27161[];
+static VTBL_ENTRY alt_thunk_names571[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271613fooEv,_ZTv0_n12_N7ee271613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271613fooEv,_ZThn20_N7ee271613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27161 = { "ee27161", // class name
+ bases_ee27161, 4,
+ &(vtc_ee27161[0]), // expected_vtbl_contents
+ &(vtt_ee27161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27161),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 ee37161 : virtual dd7161 {
+ int e;
+ virtual void foo(); // _ZN7ee371613fooEv
+ ~ee37161(); // tgen
+ ee37161(); // tgen
+};
+//SIG(1 ee37161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37161 ::foo(){vfunc_called(this, "_ZN7ee371613fooEv");}
+ee37161 ::~ee37161(){ note_dtor("ee37161", this);} // tgen
+ee37161 ::ee37161(){ note_ctor("ee37161", this);} // tgen
+
+static void Test_ee37161()
+{
+ extern Class_Descriptor cd_ee37161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37161, buf);
+ ee37161 *dp, &lv = *(dp=new (buf) ee37161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee37161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee37161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(32,16), "ee37161");
+ check_base_class_offset(lv, (dd7161*), ABISELECT(16,8), "ee37161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37161.e");
+ test_class_info(&lv, &cd_ee37161);
+ dp->~ee37161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37161(Test_ee37161, "ee37161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37161C1Ev();
+extern void _ZN7ee37161D1Ev();
+Name_Map name_map_ee37161[] = {
+ NSPAIR(_ZN7ee37161C1Ev),
+ NSPAIR(_ZN7ee37161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee37161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 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 _ZTI7ee37161[];
+extern void _ZN7ee371613fooEv();
+extern void _ZN6dd71613barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371613fooEv,_ZTv0_n24_N7ee371613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371613fooEv,_ZThn8_N7ee371613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371613fooEv,_ZTv0_n12_N7ee371613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371613fooEv,_ZThn24_N7ee371613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37161[0]),
+ (VTBL_ENTRY)&_ZN7ee371613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371613fooEv,_ZTv0_n24_N7ee371613fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37161[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371613fooEv,_ZTv0_n12_N7ee371613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee37161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee37161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee37161[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee37161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee37161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee37161[] = {
+ {&(_ZTV7ee37161[5]), 5,23},
+ {&(_ZTV7ee37161[12]), 12,23},
+ {&(_ZTV7ee37161[17]), 17,23},
+ {&(_ZTV7ee37161[21]), 21,23},
+ {&(_tg__ZTV6dd7161__7ee37161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee37161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee37161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee37161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee37161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37161[];
+extern VTBL_ENTRY _ZTV7ee37161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37161[];
+static VTBL_ENTRY alt_thunk_names572[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371613fooEv,_ZTv0_n12_N7ee371613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371613fooEv,_ZThn24_N7ee371613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371613fooEv,_ZTv0_n24_N7ee371613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371613fooEv,_ZThn8_N7ee371613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37161 = { "ee37161", // class name
+ bases_ee37161, 4,
+ &(vtc_ee37161[0]), // expected_vtbl_contents
+ &(vtt_ee37161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37161),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37161),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 ee47161 : dd7161 {
+ int e;
+ virtual void bar(); // _ZN7ee471613barEv
+ ~ee47161(); // tgen
+ ee47161(); // tgen
+};
+//SIG(1 ee47161) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47161 ::bar(){vfunc_called(this, "_ZN7ee471613barEv");}
+ee47161 ::~ee47161(){ note_dtor("ee47161", this);} // tgen
+ee47161 ::ee47161(){ note_ctor("ee47161", this);} // tgen
+
+static void Test_ee47161()
+{
+ extern Class_Descriptor cd_ee47161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47161, buf);
+ ee47161 *dp, &lv = *(dp=new (buf) ee47161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee47161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee47161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(16,12), "ee47161");
+ check_base_class_offset(lv, (dd7161*), 0, "ee47161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47161.e");
+ test_class_info(&lv, &cd_ee47161);
+ dp->~ee47161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47161(Test_ee47161, "ee47161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47161C1Ev();
+extern void _ZN7ee47161D1Ev();
+Name_Map name_map_ee47161[] = {
+ NSPAIR(_ZN7ee47161C1Ev),
+ NSPAIR(_ZN7ee47161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee47161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47161[];
+extern void _ZN7ee471613barEv();
+extern void _ZN6dd71613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee471613barEv,_ZTv0_n16_N7ee471613barEv)();
+extern void ABISELECT(_ZThn32_N7ee471613barEv,_ZThn20_N7ee471613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47161[0]),
+ (VTBL_ENTRY)&_ZN7ee471613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471613barEv,_ZTv0_n16_N7ee471613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee47161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee47161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee47161[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee47161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee47161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee47161[] = {
+ {&(_ZTV7ee47161[4]), 4,15},
+ {&(_tg__ZTV6dd7161__7ee47161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee47161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee47161[4]), 4,6},
+ {&(_ZTV7ee47161[9]), 9,15},
+ {&(_ZTV7ee47161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee47161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee47161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47161[];
+extern VTBL_ENTRY _ZTV7ee47161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47161[];
+static VTBL_ENTRY alt_thunk_names573[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471613barEv,_ZTv0_n16_N7ee471613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471613barEv,_ZThn20_N7ee471613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47161 = { "ee47161", // class name
+ bases_ee47161, 4,
+ &(vtc_ee47161[0]), // expected_vtbl_contents
+ &(vtt_ee47161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47161),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names573,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57161 : virtual dd7161 {
+ int e;
+ virtual void bar(); // _ZN7ee571613barEv
+ ~ee57161(); // tgen
+ ee57161(); // tgen
+};
+//SIG(1 ee57161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57161 ::bar(){vfunc_called(this, "_ZN7ee571613barEv");}
+ee57161 ::~ee57161(){ note_dtor("ee57161", this);} // tgen
+ee57161 ::ee57161(){ note_ctor("ee57161", this);} // tgen
+
+static void Test_ee57161()
+{
+ extern Class_Descriptor cd_ee57161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57161, buf);
+ ee57161 *dp, &lv = *(dp=new (buf) ee57161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee57161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee57161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(32,16), "ee57161");
+ check_base_class_offset(lv, (dd7161*), ABISELECT(16,8), "ee57161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57161.e");
+ test_class_info(&lv, &cd_ee57161);
+ dp->~ee57161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57161(Test_ee57161, "ee57161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57161C1Ev();
+extern void _ZN7ee57161D1Ev();
+Name_Map name_map_ee57161[] = {
+ NSPAIR(_ZN7ee57161C1Ev),
+ NSPAIR(_ZN7ee57161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee57161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 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 _ZTI7ee57161[];
+extern void _ZN7ee571613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571613barEv,_ZTv0_n20_N7ee571613barEv)();
+extern void ABISELECT(_ZThn16_N7ee571613barEv,_ZThn8_N7ee571613barEv)() __attribute__((weak));
+extern void _ZN6dd71613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee571613barEv,_ZTv0_n16_N7ee571613barEv)();
+extern void ABISELECT(_ZThn48_N7ee571613barEv,_ZThn24_N7ee571613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57161[0]),
+ (VTBL_ENTRY)&_ZN7ee571613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571613barEv,_ZTv0_n20_N7ee571613barEv),
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571613barEv,_ZTv0_n16_N7ee571613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee57161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee57161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee57161[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee57161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee57161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee57161[] = {
+ {&(_ZTV7ee57161[5]), 5,23},
+ {&(_ZTV7ee57161[12]), 12,23},
+ {&(_ZTV7ee57161[17]), 17,23},
+ {&(_ZTV7ee57161[21]), 21,23},
+ {&(_tg__ZTV6dd7161__7ee57161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee57161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee57161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee57161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee57161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57161[];
+extern VTBL_ENTRY _ZTV7ee57161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57161[];
+static VTBL_ENTRY alt_thunk_names574[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571613barEv,_ZTv0_n16_N7ee571613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571613barEv,_ZThn24_N7ee571613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571613barEv,_ZTv0_n20_N7ee571613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571613barEv,_ZThn8_N7ee571613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57161 = { "ee57161", // class name
+ bases_ee57161, 4,
+ &(vtc_ee57161[0]), // expected_vtbl_contents
+ &(vtt_ee57161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57161),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57161),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names574,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67161 : dd7161 {
+ int e;
+ virtual void foo(); // _ZN7ee671613fooEv
+ virtual void bar(); // _ZN7ee671613barEv
+ ~ee67161(); // tgen
+ ee67161(); // tgen
+};
+//SIG(1 ee67161) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67161 ::foo(){vfunc_called(this, "_ZN7ee671613fooEv");}
+void ee67161 ::bar(){vfunc_called(this, "_ZN7ee671613barEv");}
+ee67161 ::~ee67161(){ note_dtor("ee67161", this);} // tgen
+ee67161 ::ee67161(){ note_ctor("ee67161", this);} // tgen
+
+static void Test_ee67161()
+{
+ extern Class_Descriptor cd_ee67161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67161, buf);
+ ee67161 *dp, &lv = *(dp=new (buf) ee67161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee67161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(32,20), "ee67161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(16,12), "ee67161");
+ check_base_class_offset(lv, (dd7161*), 0, "ee67161");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67161.e");
+ test_class_info(&lv, &cd_ee67161);
+ dp->~ee67161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67161(Test_ee67161, "ee67161", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67161C1Ev();
+extern void _ZN7ee67161D1Ev();
+Name_Map name_map_ee67161[] = {
+ NSPAIR(_ZN7ee67161C1Ev),
+ NSPAIR(_ZN7ee67161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee67161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67161[];
+extern void _ZN7ee671613barEv();
+extern void _ZN7ee671613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671613fooEv,_ZTv0_n12_N7ee671613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671613fooEv,_ZThn20_N7ee671613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671613barEv,_ZTv0_n16_N7ee671613barEv)();
+extern void ABISELECT(_ZThn32_N7ee671613barEv,_ZThn20_N7ee671613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67161[0]),
+ (VTBL_ENTRY)&_ZN7ee671613barEv,
+ (VTBL_ENTRY)&_ZN7ee671613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67161[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671613fooEv,_ZTv0_n12_N7ee671613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671613barEv,_ZTv0_n16_N7ee671613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee67161[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee67161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee67161[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee67161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee67161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee67161[] = {
+ {&(_ZTV7ee67161[4]), 4,15},
+ {&(_tg__ZTV6dd7161__7ee67161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee67161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee67161[4]), 4,6},
+ {&(_ZTV7ee67161[9]), 9,15},
+ {&(_ZTV7ee67161[13]), 13,15},
+ {&(_tg__ZTV5cc161__7ee67161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee67161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67161[];
+extern VTBL_ENTRY _ZTV7ee67161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67161[];
+static VTBL_ENTRY alt_thunk_names575[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn20_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn20_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671613barEv,_ZTv0_n16_N7ee671613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671613barEv,_ZThn20_N7ee671613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671613fooEv,_ZTv0_n12_N7ee671613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671613fooEv,_ZThn20_N7ee671613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67161 = { "ee67161", // class name
+ bases_ee67161, 4,
+ &(vtc_ee67161[0]), // expected_vtbl_contents
+ &(vtt_ee67161[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67161),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67161),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67161),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names575,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77161 : virtual dd7161 {
+ int e;
+ virtual void foo(); // _ZN7ee771613fooEv
+ virtual void bar(); // _ZN7ee771613barEv
+ ~ee77161(); // tgen
+ ee77161(); // tgen
+};
+//SIG(1 ee77161) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77161 ::foo(){vfunc_called(this, "_ZN7ee771613fooEv");}
+void ee77161 ::bar(){vfunc_called(this, "_ZN7ee771613barEv");}
+ee77161 ::~ee77161(){ note_dtor("ee77161", this);} // tgen
+ee77161 ::ee77161(){ note_ctor("ee77161", this);} // tgen
+
+static void Test_ee77161()
+{
+ extern Class_Descriptor cd_ee77161;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77161, buf);
+ ee77161 *dp, &lv = *(dp=new (buf) ee77161());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77161)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77161)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee77161");
+ check_base_class_offset(lv, (bb61*)(cc161*), ABISELECT(48,24), "ee77161");
+ check_base_class_offset(lv, (cc161*)(dd7161*), ABISELECT(32,16), "ee77161");
+ check_base_class_offset(lv, (dd7161*), ABISELECT(16,8), "ee77161");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77161.e");
+ test_class_info(&lv, &cd_ee77161);
+ dp->~ee77161();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77161(Test_ee77161, "ee77161", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77161C1Ev();
+extern void _ZN7ee77161D1Ev();
+Name_Map name_map_ee77161[] = {
+ NSPAIR(_ZN7ee77161C1Ev),
+ NSPAIR(_ZN7ee77161D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc161;
+extern VTBL_ENTRY _ZTI5cc161[];
+extern VTBL_ENTRY _ZTV5cc161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc161[];
+extern Class_Descriptor cd_dd7161;
+extern VTBL_ENTRY _ZTI6dd7161[];
+extern VTBL_ENTRY _ZTV6dd7161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7161[];
+static Base_Class bases_ee77161[] = {
+ // 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_bb61, 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_cc161, 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_dd7161, 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 _ZTI7ee77161[];
+extern void _ZN7ee771613fooEv();
+extern void _ZN7ee771613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771613barEv,_ZTv0_n20_N7ee771613barEv)();
+extern void ABISELECT(_ZThn16_N7ee771613barEv,_ZThn8_N7ee771613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771613fooEv,_ZTv0_n24_N7ee771613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771613fooEv,_ZThn8_N7ee771613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771613fooEv,_ZTv0_n12_N7ee771613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771613fooEv,_ZThn24_N7ee771613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771613barEv,_ZTv0_n16_N7ee771613barEv)();
+extern void ABISELECT(_ZThn48_N7ee771613barEv,_ZThn24_N7ee771613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77161[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77161[0]),
+ (VTBL_ENTRY)&_ZN7ee771613fooEv,
+ (VTBL_ENTRY)&_ZN7ee771613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771613barEv,_ZTv0_n20_N7ee771613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771613fooEv,_ZTv0_n24_N7ee771613fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77161[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771613fooEv,_ZTv0_n12_N7ee771613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771613barEv,_ZTv0_n16_N7ee771613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77161[];
+extern void _ZN6dd71613barEv();
+extern void _ZN6dd71613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7161__7ee77161[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&_ZN6dd71613barEv,
+ (VTBL_ENTRY)&_ZN6dd71613fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc161__6dd7161__7ee77161[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv)();
+extern void ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7161__7ee77161[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7161[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc161__7ee77161[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc161__7ee77161[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc161[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee77161[] = {
+ {&(_ZTV7ee77161[5]), 5,24},
+ {&(_ZTV7ee77161[13]), 13,24},
+ {&(_ZTV7ee77161[18]), 18,24},
+ {&(_ZTV7ee77161[22]), 22,24},
+ {&(_tg__ZTV6dd7161__7ee77161[4]), 4,6},
+ {&(_tg__ZTV5cc161__6dd7161__7ee77161[3]), 3,3},
+ {&(_tg__ZTV4bb61__6dd7161__7ee77161[4]), 4,6},
+ {&(_tg__ZTV5cc161__7ee77161[3]), 3,3},
+ {&(_tg__ZTV4bb61__5cc161__7ee77161[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77161[];
+extern VTBL_ENTRY _ZTV7ee77161[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77161[];
+static VTBL_ENTRY alt_thunk_names576[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71613barEv,_ZTv0_n16_N6dd71613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613barEv,_ZThn16_N6dd71613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71613fooEv,_ZTv0_n12_N6dd71613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71613fooEv,_ZThn16_N6dd71613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771613barEv,_ZTv0_n16_N7ee771613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771613barEv,_ZThn24_N7ee771613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771613fooEv,_ZTv0_n12_N7ee771613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771613fooEv,_ZThn24_N7ee771613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771613fooEv,_ZTv0_n24_N7ee771613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771613fooEv,_ZThn8_N7ee771613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771613barEv,_ZTv0_n20_N7ee771613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771613barEv,_ZThn8_N7ee771613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77161 = { "ee77161", // class name
+ bases_ee77161, 4,
+ &(vtc_ee77161[0]), // expected_vtbl_contents
+ &(vtt_ee77161[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77161),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77161),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77161),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names576,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc261 : bb61 {
+ int c;
+ virtual void foo(); // _ZN5cc2613fooEv
+ ~cc261(); // tgen
+ cc261(); // tgen
+};
+//SIG(-1 cc261) C1{ BC2{ BC3{ v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc261 ::foo(){vfunc_called(this, "_ZN5cc2613fooEv");}
+cc261 ::~cc261(){ note_dtor("cc261", this);} // tgen
+cc261 ::cc261(){ note_ctor("cc261", this);} // tgen
+
+static void Test_cc261()
+{
+ extern Class_Descriptor cd_cc261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc261, buf);
+ cc261 *dp, &lv = *(dp=new (buf) cc261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc261)");
+ check_base_class_offset(lv, (aa1*)(bb61*), 0, "cc261");
+ check_base_class_offset(lv, (bb61*), 0, "cc261");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc261.c");
+ test_class_info(&lv, &cd_cc261);
+ dp->~cc261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc261(Test_cc261, "cc261", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc261C1Ev();
+extern void _ZN5cc261D1Ev();
+Name_Map name_map_cc261[] = {
+ NSPAIR(_ZN5cc261C1Ev),
+ NSPAIR(_ZN5cc261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_cc261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+Class_Descriptor cd_cc261 = { "cc261", // class name
+ bases_cc261, 2,
+ &(vtc_cc261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc261),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 dd0261 : cc261 {
+ int d;
+ ~dd0261(); // tgen
+ dd0261(); // tgen
+};
+//SIG(-1 dd0261) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0261 ::~dd0261(){ note_dtor("dd0261", this);} // tgen
+dd0261 ::dd0261(){ note_ctor("dd0261", this);} // tgen
+
+static void Test_dd0261()
+{
+ extern Class_Descriptor cd_dd0261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0261, buf);
+ dd0261 *dp, &lv = *(dp=new (buf) dd0261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), 0, "dd0261");
+ check_base_class_offset(lv, (bb61*)(cc261*), 0, "dd0261");
+ check_base_class_offset(lv, (cc261*), 0, "dd0261");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0261.d");
+ test_class_info(&lv, &cd_dd0261);
+ dp->~dd0261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0261(Test_dd0261, "dd0261", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0261C1Ev();
+extern void _ZN6dd0261D1Ev();
+Name_Map name_map_dd0261[] = {
+ NSPAIR(_ZN6dd0261C1Ev),
+ NSPAIR(_ZN6dd0261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd0261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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 _ZTI6dd0261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd0261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+Class_Descriptor cd_dd0261 = { "dd0261", // class name
+ bases_dd0261, 3,
+ &(vtc_dd0261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0261),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 ee00261 : dd0261 {
+ int e;
+ ~ee00261(); // tgen
+ ee00261(); // tgen
+};
+//SIG(1 ee00261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00261 ::~ee00261(){ note_dtor("ee00261", this);} // tgen
+ee00261 ::ee00261(){ note_ctor("ee00261", this);} // tgen
+
+static void Test_ee00261()
+{
+ extern Class_Descriptor cd_ee00261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00261, buf);
+ ee00261 *dp, &lv = *(dp=new (buf) ee00261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), 0, "ee00261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), 0, "ee00261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), 0, "ee00261");
+ check_base_class_offset(lv, (dd0261*), 0, "ee00261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00261.e");
+ test_class_info(&lv, &cd_ee00261);
+ dp->~ee00261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00261(Test_ee00261, "ee00261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00261C1Ev();
+extern void _ZN7ee00261D1Ev();
+Name_Map name_map_ee00261[] = {
+ NSPAIR(_ZN7ee00261C1Ev),
+ NSPAIR(_ZN7ee00261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee00261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd0261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee00261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00261[];
+extern VTBL_ENTRY _ZTV7ee00261[];
+Class_Descriptor cd_ee00261 = { "ee00261", // class name
+ bases_ee00261, 4,
+ &(vtc_ee00261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00261),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 ee10261 : virtual dd0261 {
+ int e;
+ ~ee10261(); // tgen
+ ee10261(); // tgen
+};
+//SIG(1 ee10261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10261 ::~ee10261(){ note_dtor("ee10261", this);} // tgen
+ee10261 ::ee10261(){ note_ctor("ee10261", this);} // tgen
+
+static void Test_ee10261()
+{
+ extern Class_Descriptor cd_ee10261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10261, buf);
+ ee10261 *dp, &lv = *(dp=new (buf) ee10261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee10261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee10261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), ABISELECT(16,8), "ee10261");
+ check_base_class_offset(lv, (dd0261*), ABISELECT(16,8), "ee10261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10261.e");
+ test_class_info(&lv, &cd_ee10261);
+ dp->~ee10261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10261(Test_ee10261, "ee10261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10261C1Ev();
+extern void _ZN7ee10261D1Ev();
+Name_Map name_map_ee10261[] = {
+ NSPAIR(_ZN7ee10261C1Ev),
+ NSPAIR(_ZN7ee10261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee10261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd0261, 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 _ZTI7ee10261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee10261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10261[];
+static VTT_ENTRY vtt_ee10261[] = {
+ {&(_ZTV7ee10261[3]), 3,9},
+ {&(_ZTV7ee10261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10261[];
+extern VTBL_ENTRY _ZTV7ee10261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10261[];
+Class_Descriptor cd_ee10261 = { "ee10261", // class name
+ bases_ee10261, 4,
+ &(vtc_ee10261[0]), // expected_vtbl_contents
+ &(vtt_ee10261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10261),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 ee20261 : dd0261 {
+ int e;
+ virtual void foo(); // _ZN7ee202613fooEv
+ ~ee20261(); // tgen
+ ee20261(); // tgen
+};
+//SIG(1 ee20261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20261 ::foo(){vfunc_called(this, "_ZN7ee202613fooEv");}
+ee20261 ::~ee20261(){ note_dtor("ee20261", this);} // tgen
+ee20261 ::ee20261(){ note_ctor("ee20261", this);} // tgen
+
+static void Test_ee20261()
+{
+ extern Class_Descriptor cd_ee20261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20261, buf);
+ ee20261 *dp, &lv = *(dp=new (buf) ee20261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), 0, "ee20261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), 0, "ee20261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), 0, "ee20261");
+ check_base_class_offset(lv, (dd0261*), 0, "ee20261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20261.e");
+ test_class_info(&lv, &cd_ee20261);
+ dp->~ee20261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20261(Test_ee20261, "ee20261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20261C1Ev();
+extern void _ZN7ee20261D1Ev();
+Name_Map name_map_ee20261[] = {
+ NSPAIR(_ZN7ee20261C1Ev),
+ NSPAIR(_ZN7ee20261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee20261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20261[];
+extern void _ZN7ee202613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee20261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20261[0]),
+ (VTBL_ENTRY)&_ZN7ee202613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20261[];
+extern VTBL_ENTRY _ZTV7ee20261[];
+Class_Descriptor cd_ee20261 = { "ee20261", // class name
+ bases_ee20261, 4,
+ &(vtc_ee20261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20261),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 ee30261 : virtual dd0261 {
+ int e;
+ virtual void foo(); // _ZN7ee302613fooEv
+ ~ee30261(); // tgen
+ ee30261(); // tgen
+};
+//SIG(1 ee30261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30261 ::foo(){vfunc_called(this, "_ZN7ee302613fooEv");}
+ee30261 ::~ee30261(){ note_dtor("ee30261", this);} // tgen
+ee30261 ::ee30261(){ note_ctor("ee30261", this);} // tgen
+
+static void Test_ee30261()
+{
+ extern Class_Descriptor cd_ee30261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30261, buf);
+ ee30261 *dp, &lv = *(dp=new (buf) ee30261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee30261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee30261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), ABISELECT(16,8), "ee30261");
+ check_base_class_offset(lv, (dd0261*), ABISELECT(16,8), "ee30261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30261.e");
+ test_class_info(&lv, &cd_ee30261);
+ dp->~ee30261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30261(Test_ee30261, "ee30261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30261C1Ev();
+extern void _ZN7ee30261D1Ev();
+Name_Map name_map_ee30261[] = {
+ NSPAIR(_ZN7ee30261C1Ev),
+ NSPAIR(_ZN7ee30261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee30261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd0261, 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 _ZTI7ee30261[];
+extern void _ZN7ee302613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302613fooEv,_ZTv0_n12_N7ee302613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302613fooEv,_ZThn8_N7ee302613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee30261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30261[0]),
+ (VTBL_ENTRY)&_ZN7ee302613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302613fooEv,_ZTv0_n12_N7ee302613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30261[];
+static VTT_ENTRY vtt_ee30261[] = {
+ {&(_ZTV7ee30261[3]), 3,10},
+ {&(_ZTV7ee30261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30261[];
+extern VTBL_ENTRY _ZTV7ee30261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30261[];
+static VTBL_ENTRY alt_thunk_names577[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302613fooEv,_ZTv0_n12_N7ee302613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302613fooEv,_ZThn8_N7ee302613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30261 = { "ee30261", // class name
+ bases_ee30261, 4,
+ &(vtc_ee30261[0]), // expected_vtbl_contents
+ &(vtt_ee30261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30261),2, //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 ee40261 : dd0261 {
+ int e;
+ virtual void bar(); // _ZN7ee402613barEv
+ ~ee40261(); // tgen
+ ee40261(); // tgen
+};
+//SIG(1 ee40261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40261 ::bar(){vfunc_called(this, "_ZN7ee402613barEv");}
+ee40261 ::~ee40261(){ note_dtor("ee40261", this);} // tgen
+ee40261 ::ee40261(){ note_ctor("ee40261", this);} // tgen
+
+static void Test_ee40261()
+{
+ extern Class_Descriptor cd_ee40261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40261, buf);
+ ee40261 *dp, &lv = *(dp=new (buf) ee40261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), 0, "ee40261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), 0, "ee40261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), 0, "ee40261");
+ check_base_class_offset(lv, (dd0261*), 0, "ee40261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40261.e");
+ test_class_info(&lv, &cd_ee40261);
+ dp->~ee40261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40261(Test_ee40261, "ee40261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40261C1Ev();
+extern void _ZN7ee40261D1Ev();
+Name_Map name_map_ee40261[] = {
+ NSPAIR(_ZN7ee40261C1Ev),
+ NSPAIR(_ZN7ee40261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee40261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN7ee402613barEv();
+static VTBL_ENTRY vtc_ee40261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN7ee402613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40261[];
+extern VTBL_ENTRY _ZTV7ee40261[];
+Class_Descriptor cd_ee40261 = { "ee40261", // class name
+ bases_ee40261, 4,
+ &(vtc_ee40261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40261),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 ee50261 : virtual dd0261 {
+ int e;
+ virtual void bar(); // _ZN7ee502613barEv
+ ~ee50261(); // tgen
+ ee50261(); // tgen
+};
+//SIG(1 ee50261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50261 ::bar(){vfunc_called(this, "_ZN7ee502613barEv");}
+ee50261 ::~ee50261(){ note_dtor("ee50261", this);} // tgen
+ee50261 ::ee50261(){ note_ctor("ee50261", this);} // tgen
+
+static void Test_ee50261()
+{
+ extern Class_Descriptor cd_ee50261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50261, buf);
+ ee50261 *dp, &lv = *(dp=new (buf) ee50261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee50261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee50261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), ABISELECT(16,8), "ee50261");
+ check_base_class_offset(lv, (dd0261*), ABISELECT(16,8), "ee50261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50261.e");
+ test_class_info(&lv, &cd_ee50261);
+ dp->~ee50261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50261(Test_ee50261, "ee50261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50261C1Ev();
+extern void _ZN7ee50261D1Ev();
+Name_Map name_map_ee50261[] = {
+ NSPAIR(_ZN7ee50261C1Ev),
+ NSPAIR(_ZN7ee50261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee50261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd0261, 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 _ZTI7ee50261[];
+extern void _ZN7ee502613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502613barEv,_ZTv0_n16_N7ee502613barEv)();
+extern void ABISELECT(_ZThn16_N7ee502613barEv,_ZThn8_N7ee502613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50261[0]),
+ (VTBL_ENTRY)&_ZN7ee502613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502613barEv,_ZTv0_n16_N7ee502613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50261[];
+static VTT_ENTRY vtt_ee50261[] = {
+ {&(_ZTV7ee50261[3]), 3,10},
+ {&(_ZTV7ee50261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50261[];
+extern VTBL_ENTRY _ZTV7ee50261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50261[];
+static VTBL_ENTRY alt_thunk_names578[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502613barEv,_ZTv0_n16_N7ee502613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502613barEv,_ZThn8_N7ee502613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50261 = { "ee50261", // class name
+ bases_ee50261, 4,
+ &(vtc_ee50261[0]), // expected_vtbl_contents
+ &(vtt_ee50261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50261),2, //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 ee60261 : dd0261 {
+ int e;
+ virtual void foo(); // _ZN7ee602613fooEv
+ virtual void bar(); // _ZN7ee602613barEv
+ ~ee60261(); // tgen
+ ee60261(); // tgen
+};
+//SIG(1 ee60261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60261 ::foo(){vfunc_called(this, "_ZN7ee602613fooEv");}
+void ee60261 ::bar(){vfunc_called(this, "_ZN7ee602613barEv");}
+ee60261 ::~ee60261(){ note_dtor("ee60261", this);} // tgen
+ee60261 ::ee60261(){ note_ctor("ee60261", this);} // tgen
+
+static void Test_ee60261()
+{
+ extern Class_Descriptor cd_ee60261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60261, buf);
+ ee60261 *dp, &lv = *(dp=new (buf) ee60261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), 0, "ee60261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), 0, "ee60261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), 0, "ee60261");
+ check_base_class_offset(lv, (dd0261*), 0, "ee60261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60261.e");
+ test_class_info(&lv, &cd_ee60261);
+ dp->~ee60261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60261(Test_ee60261, "ee60261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60261C1Ev();
+extern void _ZN7ee60261D1Ev();
+Name_Map name_map_ee60261[] = {
+ NSPAIR(_ZN7ee60261C1Ev),
+ NSPAIR(_ZN7ee60261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee60261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60261[];
+extern void _ZN7ee602613fooEv();
+extern void _ZN7ee602613barEv();
+static VTBL_ENTRY vtc_ee60261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60261[0]),
+ (VTBL_ENTRY)&_ZN7ee602613fooEv,
+ (VTBL_ENTRY)&_ZN7ee602613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60261[];
+extern VTBL_ENTRY _ZTV7ee60261[];
+Class_Descriptor cd_ee60261 = { "ee60261", // class name
+ bases_ee60261, 4,
+ &(vtc_ee60261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60261),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 ee70261 : virtual dd0261 {
+ int e;
+ virtual void foo(); // _ZN7ee702613fooEv
+ virtual void bar(); // _ZN7ee702613barEv
+ ~ee70261(); // tgen
+ ee70261(); // tgen
+};
+//SIG(1 ee70261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70261 ::foo(){vfunc_called(this, "_ZN7ee702613fooEv");}
+void ee70261 ::bar(){vfunc_called(this, "_ZN7ee702613barEv");}
+ee70261 ::~ee70261(){ note_dtor("ee70261", this);} // tgen
+ee70261 ::ee70261(){ note_ctor("ee70261", this);} // tgen
+
+static void Test_ee70261()
+{
+ extern Class_Descriptor cd_ee70261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70261, buf);
+ ee70261 *dp, &lv = *(dp=new (buf) ee70261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee70261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd0261*), ABISELECT(16,8), "ee70261");
+ check_base_class_offset(lv, (cc261*)(dd0261*), ABISELECT(16,8), "ee70261");
+ check_base_class_offset(lv, (dd0261*), ABISELECT(16,8), "ee70261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70261.e");
+ test_class_info(&lv, &cd_ee70261);
+ dp->~ee70261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70261(Test_ee70261, "ee70261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70261C1Ev();
+extern void _ZN7ee70261D1Ev();
+Name_Map name_map_ee70261[] = {
+ NSPAIR(_ZN7ee70261C1Ev),
+ NSPAIR(_ZN7ee70261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd0261;
+extern VTBL_ENTRY _ZTI6dd0261[];
+extern VTBL_ENTRY _ZTV6dd0261[];
+static Base_Class bases_ee70261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd0261, 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 _ZTI7ee70261[];
+extern void _ZN7ee702613fooEv();
+extern void _ZN7ee702613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702613fooEv,_ZTv0_n12_N7ee702613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702613fooEv,_ZThn8_N7ee702613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702613barEv,_ZTv0_n16_N7ee702613barEv)();
+extern void ABISELECT(_ZThn16_N7ee702613barEv,_ZThn8_N7ee702613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70261[0]),
+ (VTBL_ENTRY)&_ZN7ee702613fooEv,
+ (VTBL_ENTRY)&_ZN7ee702613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702613fooEv,_ZTv0_n12_N7ee702613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702613barEv,_ZTv0_n16_N7ee702613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70261[];
+static VTT_ENTRY vtt_ee70261[] = {
+ {&(_ZTV7ee70261[3]), 3,11},
+ {&(_ZTV7ee70261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70261[];
+extern VTBL_ENTRY _ZTV7ee70261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70261[];
+static VTBL_ENTRY alt_thunk_names579[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702613barEv,_ZTv0_n16_N7ee702613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702613barEv,_ZThn8_N7ee702613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702613fooEv,_ZTv0_n12_N7ee702613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702613fooEv,_ZThn8_N7ee702613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70261 = { "ee70261", // class name
+ bases_ee70261, 4,
+ &(vtc_ee70261[0]), // expected_vtbl_contents
+ &(vtt_ee70261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70261),2, //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 dd1261 : virtual cc261 {
+ int d;
+ ~dd1261(); // tgen
+ dd1261(); // tgen
+};
+//SIG(-1 dd1261) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1261 ::~dd1261(){ note_dtor("dd1261", this);} // tgen
+dd1261 ::dd1261(){ note_ctor("dd1261", this);} // tgen
+
+static void Test_dd1261()
+{
+ extern Class_Descriptor cd_dd1261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1261, buf);
+ dd1261 *dp, &lv = *(dp=new (buf) dd1261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,8), "dd1261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,8), "dd1261");
+ check_base_class_offset(lv, (cc261*), ABISELECT(16,8), "dd1261");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1261.d");
+ test_class_info(&lv, &cd_dd1261);
+ dp->~dd1261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1261(Test_dd1261, "dd1261", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1261C1Ev();
+extern void _ZN6dd1261D1Ev();
+Name_Map name_map_dd1261[] = {
+ NSPAIR(_ZN6dd1261C1Ev),
+ NSPAIR(_ZN6dd1261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd1261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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 _ZTI6dd1261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd1261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1261[];
+static VTT_ENTRY vtt_dd1261[] = {
+ {&(_ZTV6dd1261[3]), 3,9},
+ {&(_ZTV6dd1261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+Class_Descriptor cd_dd1261 = { "dd1261", // class name
+ bases_dd1261, 3,
+ &(vtc_dd1261[0]), // expected_vtbl_contents
+ &(vtt_dd1261[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1261),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 ee01261 : dd1261 {
+ int e;
+ ~ee01261(); // tgen
+ ee01261(); // tgen
+};
+//SIG(1 ee01261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01261 ::~ee01261(){ note_dtor("ee01261", this);} // tgen
+ee01261 ::ee01261(){ note_ctor("ee01261", this);} // tgen
+
+static void Test_ee01261()
+{
+ extern Class_Descriptor cd_ee01261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01261, buf);
+ ee01261 *dp, &lv = *(dp=new (buf) ee01261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee01261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee01261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(16,12), "ee01261");
+ check_base_class_offset(lv, (dd1261*), 0, "ee01261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01261.e");
+ test_class_info(&lv, &cd_ee01261);
+ dp->~ee01261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01261(Test_ee01261, "ee01261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01261C1Ev();
+extern void _ZN7ee01261D1Ev();
+Name_Map name_map_ee01261[] = {
+ NSPAIR(_ZN7ee01261C1Ev),
+ NSPAIR(_ZN7ee01261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee01261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee01261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee01261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee01261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee01261[] = {
+ {&(_ZTV7ee01261[3]), 3,9},
+ {&(_tg__ZTV6dd1261__7ee01261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee01261[4]), 4,6},
+ {&(_ZTV7ee01261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01261[];
+extern VTBL_ENTRY _ZTV7ee01261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01261[];
+Class_Descriptor cd_ee01261 = { "ee01261", // class name
+ bases_ee01261, 4,
+ &(vtc_ee01261[0]), // expected_vtbl_contents
+ &(vtt_ee01261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01261),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 ee11261 : virtual dd1261 {
+ int e;
+ ~ee11261(); // tgen
+ ee11261(); // tgen
+};
+//SIG(1 ee11261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11261 ::~ee11261(){ note_dtor("ee11261", this);} // tgen
+ee11261 ::ee11261(){ note_ctor("ee11261", this);} // tgen
+
+static void Test_ee11261()
+{
+ extern Class_Descriptor cd_ee11261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11261, buf);
+ ee11261 *dp, &lv = *(dp=new (buf) ee11261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee11261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee11261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(32,16), "ee11261");
+ check_base_class_offset(lv, (dd1261*), ABISELECT(16,8), "ee11261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11261.e");
+ test_class_info(&lv, &cd_ee11261);
+ dp->~ee11261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11261(Test_ee11261, "ee11261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11261C1Ev();
+extern void _ZN7ee11261D1Ev();
+Name_Map name_map_ee11261[] = {
+ NSPAIR(_ZN7ee11261C1Ev),
+ NSPAIR(_ZN7ee11261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee11261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 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 _ZTI7ee11261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee11261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11261[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11261[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee11261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee11261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee11261[] = {
+ {&(_ZTV7ee11261[4]), 4,13},
+ {&(_ZTV7ee11261[7]), 7,13},
+ {&(_ZTV7ee11261[11]), 11,13},
+ {&(_tg__ZTV6dd1261__7ee11261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee11261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11261[];
+extern VTBL_ENTRY _ZTV7ee11261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11261[];
+Class_Descriptor cd_ee11261 = { "ee11261", // class name
+ bases_ee11261, 4,
+ &(vtc_ee11261[0]), // expected_vtbl_contents
+ &(vtt_ee11261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11261),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11261),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 ee21261 : dd1261 {
+ int e;
+ virtual void foo(); // _ZN7ee212613fooEv
+ ~ee21261(); // tgen
+ ee21261(); // tgen
+};
+//SIG(1 ee21261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21261 ::foo(){vfunc_called(this, "_ZN7ee212613fooEv");}
+ee21261 ::~ee21261(){ note_dtor("ee21261", this);} // tgen
+ee21261 ::ee21261(){ note_ctor("ee21261", this);} // tgen
+
+static void Test_ee21261()
+{
+ extern Class_Descriptor cd_ee21261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21261, buf);
+ ee21261 *dp, &lv = *(dp=new (buf) ee21261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee21261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee21261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(16,12), "ee21261");
+ check_base_class_offset(lv, (dd1261*), 0, "ee21261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21261.e");
+ test_class_info(&lv, &cd_ee21261);
+ dp->~ee21261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21261(Test_ee21261, "ee21261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21261C1Ev();
+extern void _ZN7ee21261D1Ev();
+Name_Map name_map_ee21261[] = {
+ NSPAIR(_ZN7ee21261C1Ev),
+ NSPAIR(_ZN7ee21261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee21261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21261[];
+extern void _ZN7ee212613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212613fooEv,_ZTv0_n12_N7ee212613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212613fooEv,_ZThn12_N7ee212613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee21261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21261[0]),
+ (VTBL_ENTRY)&_ZN7ee212613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212613fooEv,_ZTv0_n12_N7ee212613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee21261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee21261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee21261[] = {
+ {&(_ZTV7ee21261[3]), 3,10},
+ {&(_tg__ZTV6dd1261__7ee21261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee21261[4]), 4,6},
+ {&(_ZTV7ee21261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21261[];
+extern VTBL_ENTRY _ZTV7ee21261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21261[];
+static VTBL_ENTRY alt_thunk_names580[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212613fooEv,_ZTv0_n12_N7ee212613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212613fooEv,_ZThn12_N7ee212613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21261 = { "ee21261", // class name
+ bases_ee21261, 4,
+ &(vtc_ee21261[0]), // expected_vtbl_contents
+ &(vtt_ee21261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21261),4, //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 ee31261 : virtual dd1261 {
+ int e;
+ virtual void foo(); // _ZN7ee312613fooEv
+ ~ee31261(); // tgen
+ ee31261(); // tgen
+};
+//SIG(1 ee31261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31261 ::foo(){vfunc_called(this, "_ZN7ee312613fooEv");}
+ee31261 ::~ee31261(){ note_dtor("ee31261", this);} // tgen
+ee31261 ::ee31261(){ note_ctor("ee31261", this);} // tgen
+
+static void Test_ee31261()
+{
+ extern Class_Descriptor cd_ee31261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31261, buf);
+ ee31261 *dp, &lv = *(dp=new (buf) ee31261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee31261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee31261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(32,16), "ee31261");
+ check_base_class_offset(lv, (dd1261*), ABISELECT(16,8), "ee31261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31261.e");
+ test_class_info(&lv, &cd_ee31261);
+ dp->~ee31261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31261(Test_ee31261, "ee31261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31261C1Ev();
+extern void _ZN7ee31261D1Ev();
+Name_Map name_map_ee31261[] = {
+ NSPAIR(_ZN7ee31261C1Ev),
+ NSPAIR(_ZN7ee31261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee31261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 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 _ZTI7ee31261[];
+extern void _ZN7ee312613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312613fooEv,_ZTv0_n12_N7ee312613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312613fooEv,_ZThn16_N7ee312613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee31261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31261[0]),
+ (VTBL_ENTRY)&_ZN7ee312613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31261[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312613fooEv,_ZTv0_n12_N7ee312613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee31261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee31261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee31261[] = {
+ {&(_ZTV7ee31261[4]), 4,14},
+ {&(_ZTV7ee31261[8]), 8,14},
+ {&(_ZTV7ee31261[12]), 12,14},
+ {&(_tg__ZTV6dd1261__7ee31261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee31261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31261[];
+extern VTBL_ENTRY _ZTV7ee31261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31261[];
+static VTBL_ENTRY alt_thunk_names581[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312613fooEv,_ZTv0_n12_N7ee312613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312613fooEv,_ZThn16_N7ee312613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31261 = { "ee31261", // class name
+ bases_ee31261, 4,
+ &(vtc_ee31261[0]), // expected_vtbl_contents
+ &(vtt_ee31261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31261),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31261),5, //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 ee41261 : dd1261 {
+ int e;
+ virtual void bar(); // _ZN7ee412613barEv
+ ~ee41261(); // tgen
+ ee41261(); // tgen
+};
+//SIG(1 ee41261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41261 ::bar(){vfunc_called(this, "_ZN7ee412613barEv");}
+ee41261 ::~ee41261(){ note_dtor("ee41261", this);} // tgen
+ee41261 ::ee41261(){ note_ctor("ee41261", this);} // tgen
+
+static void Test_ee41261()
+{
+ extern Class_Descriptor cd_ee41261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41261, buf);
+ ee41261 *dp, &lv = *(dp=new (buf) ee41261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee41261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee41261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(16,12), "ee41261");
+ check_base_class_offset(lv, (dd1261*), 0, "ee41261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41261.e");
+ test_class_info(&lv, &cd_ee41261);
+ dp->~ee41261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41261(Test_ee41261, "ee41261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41261C1Ev();
+extern void _ZN7ee41261D1Ev();
+Name_Map name_map_ee41261[] = {
+ NSPAIR(_ZN7ee41261C1Ev),
+ NSPAIR(_ZN7ee41261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee41261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41261[];
+extern void _ZN7ee412613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412613barEv,_ZTv0_n16_N7ee412613barEv)();
+extern void ABISELECT(_ZThn16_N7ee412613barEv,_ZThn12_N7ee412613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41261[0]),
+ (VTBL_ENTRY)&_ZN7ee412613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412613barEv,_ZTv0_n16_N7ee412613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee41261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee41261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee41261[] = {
+ {&(_ZTV7ee41261[3]), 3,10},
+ {&(_tg__ZTV6dd1261__7ee41261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee41261[4]), 4,6},
+ {&(_ZTV7ee41261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41261[];
+extern VTBL_ENTRY _ZTV7ee41261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41261[];
+static VTBL_ENTRY alt_thunk_names582[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412613barEv,_ZTv0_n16_N7ee412613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412613barEv,_ZThn12_N7ee412613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41261 = { "ee41261", // class name
+ bases_ee41261, 4,
+ &(vtc_ee41261[0]), // expected_vtbl_contents
+ &(vtt_ee41261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41261),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names582,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51261 : virtual dd1261 {
+ int e;
+ virtual void bar(); // _ZN7ee512613barEv
+ ~ee51261(); // tgen
+ ee51261(); // tgen
+};
+//SIG(1 ee51261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51261 ::bar(){vfunc_called(this, "_ZN7ee512613barEv");}
+ee51261 ::~ee51261(){ note_dtor("ee51261", this);} // tgen
+ee51261 ::ee51261(){ note_ctor("ee51261", this);} // tgen
+
+static void Test_ee51261()
+{
+ extern Class_Descriptor cd_ee51261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51261, buf);
+ ee51261 *dp, &lv = *(dp=new (buf) ee51261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee51261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee51261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(32,16), "ee51261");
+ check_base_class_offset(lv, (dd1261*), ABISELECT(16,8), "ee51261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51261.e");
+ test_class_info(&lv, &cd_ee51261);
+ dp->~ee51261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51261(Test_ee51261, "ee51261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51261C1Ev();
+extern void _ZN7ee51261D1Ev();
+Name_Map name_map_ee51261[] = {
+ NSPAIR(_ZN7ee51261C1Ev),
+ NSPAIR(_ZN7ee51261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee51261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 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 _ZTI7ee51261[];
+extern void _ZN7ee512613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512613barEv,_ZTv0_n16_N7ee512613barEv)();
+extern void ABISELECT(_ZThn32_N7ee512613barEv,_ZThn16_N7ee512613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51261[0]),
+ (VTBL_ENTRY)&_ZN7ee512613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51261[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512613barEv,_ZTv0_n16_N7ee512613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee51261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee51261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee51261[] = {
+ {&(_ZTV7ee51261[4]), 4,14},
+ {&(_ZTV7ee51261[8]), 8,14},
+ {&(_ZTV7ee51261[12]), 12,14},
+ {&(_tg__ZTV6dd1261__7ee51261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee51261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51261[];
+extern VTBL_ENTRY _ZTV7ee51261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51261[];
+static VTBL_ENTRY alt_thunk_names583[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512613barEv,_ZTv0_n16_N7ee512613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512613barEv,_ZThn16_N7ee512613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51261 = { "ee51261", // class name
+ bases_ee51261, 4,
+ &(vtc_ee51261[0]), // expected_vtbl_contents
+ &(vtt_ee51261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51261),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51261),5, //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 ee61261 : dd1261 {
+ int e;
+ virtual void foo(); // _ZN7ee612613fooEv
+ virtual void bar(); // _ZN7ee612613barEv
+ ~ee61261(); // tgen
+ ee61261(); // tgen
+};
+//SIG(1 ee61261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61261 ::foo(){vfunc_called(this, "_ZN7ee612613fooEv");}
+void ee61261 ::bar(){vfunc_called(this, "_ZN7ee612613barEv");}
+ee61261 ::~ee61261(){ note_dtor("ee61261", this);} // tgen
+ee61261 ::ee61261(){ note_ctor("ee61261", this);} // tgen
+
+static void Test_ee61261()
+{
+ extern Class_Descriptor cd_ee61261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61261, buf);
+ ee61261 *dp, &lv = *(dp=new (buf) ee61261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee61261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee61261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(16,12), "ee61261");
+ check_base_class_offset(lv, (dd1261*), 0, "ee61261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61261.e");
+ test_class_info(&lv, &cd_ee61261);
+ dp->~ee61261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61261(Test_ee61261, "ee61261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61261C1Ev();
+extern void _ZN7ee61261D1Ev();
+Name_Map name_map_ee61261[] = {
+ NSPAIR(_ZN7ee61261C1Ev),
+ NSPAIR(_ZN7ee61261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee61261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61261[];
+extern void _ZN7ee612613fooEv();
+extern void _ZN7ee612613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612613fooEv,_ZTv0_n12_N7ee612613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612613fooEv,_ZThn12_N7ee612613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612613barEv,_ZTv0_n16_N7ee612613barEv)();
+extern void ABISELECT(_ZThn16_N7ee612613barEv,_ZThn12_N7ee612613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61261[0]),
+ (VTBL_ENTRY)&_ZN7ee612613fooEv,
+ (VTBL_ENTRY)&_ZN7ee612613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612613fooEv,_ZTv0_n12_N7ee612613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612613barEv,_ZTv0_n16_N7ee612613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee61261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee61261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee61261[] = {
+ {&(_ZTV7ee61261[3]), 3,11},
+ {&(_tg__ZTV6dd1261__7ee61261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee61261[4]), 4,6},
+ {&(_ZTV7ee61261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61261[];
+extern VTBL_ENTRY _ZTV7ee61261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61261[];
+static VTBL_ENTRY alt_thunk_names584[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612613barEv,_ZTv0_n16_N7ee612613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612613barEv,_ZThn12_N7ee612613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612613fooEv,_ZTv0_n12_N7ee612613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612613fooEv,_ZThn12_N7ee612613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61261 = { "ee61261", // class name
+ bases_ee61261, 4,
+ &(vtc_ee61261[0]), // expected_vtbl_contents
+ &(vtt_ee61261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61261),4, //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 ee71261 : virtual dd1261 {
+ int e;
+ virtual void foo(); // _ZN7ee712613fooEv
+ virtual void bar(); // _ZN7ee712613barEv
+ ~ee71261(); // tgen
+ ee71261(); // tgen
+};
+//SIG(1 ee71261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71261 ::foo(){vfunc_called(this, "_ZN7ee712613fooEv");}
+void ee71261 ::bar(){vfunc_called(this, "_ZN7ee712613barEv");}
+ee71261 ::~ee71261(){ note_dtor("ee71261", this);} // tgen
+ee71261 ::ee71261(){ note_ctor("ee71261", this);} // tgen
+
+static void Test_ee71261()
+{
+ extern Class_Descriptor cd_ee71261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71261, buf);
+ ee71261 *dp, &lv = *(dp=new (buf) ee71261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee71261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee71261");
+ check_base_class_offset(lv, (cc261*)(dd1261*), ABISELECT(32,16), "ee71261");
+ check_base_class_offset(lv, (dd1261*), ABISELECT(16,8), "ee71261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71261.e");
+ test_class_info(&lv, &cd_ee71261);
+ dp->~ee71261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71261(Test_ee71261, "ee71261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71261C1Ev();
+extern void _ZN7ee71261D1Ev();
+Name_Map name_map_ee71261[] = {
+ NSPAIR(_ZN7ee71261C1Ev),
+ NSPAIR(_ZN7ee71261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd1261;
+extern VTBL_ENTRY _ZTI6dd1261[];
+extern VTBL_ENTRY _ZTV6dd1261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1261[];
+static Base_Class bases_ee71261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd1261, 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 _ZTI7ee71261[];
+extern void _ZN7ee712613fooEv();
+extern void _ZN7ee712613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712613fooEv,_ZTv0_n12_N7ee712613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712613fooEv,_ZThn16_N7ee712613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712613barEv,_ZTv0_n16_N7ee712613barEv)();
+extern void ABISELECT(_ZThn32_N7ee712613barEv,_ZThn16_N7ee712613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71261[0]),
+ (VTBL_ENTRY)&_ZN7ee712613fooEv,
+ (VTBL_ENTRY)&_ZN7ee712613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71261[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712613fooEv,_ZTv0_n12_N7ee712613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712613barEv,_ZTv0_n16_N7ee712613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71261[];
+static VTBL_ENTRY _tg__ZTV6dd1261__7ee71261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+};
+extern void _ZN5cc2613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd1261__7ee71261[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee71261[] = {
+ {&(_ZTV7ee71261[4]), 4,15},
+ {&(_ZTV7ee71261[9]), 9,15},
+ {&(_ZTV7ee71261[13]), 13,15},
+ {&(_tg__ZTV6dd1261__7ee71261[3]), 3,3},
+ {&(_tg__ZTV5cc261__6dd1261__7ee71261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71261[];
+extern VTBL_ENTRY _ZTV7ee71261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71261[];
+static VTBL_ENTRY alt_thunk_names585[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712613barEv,_ZTv0_n16_N7ee712613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712613barEv,_ZThn16_N7ee712613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712613fooEv,_ZTv0_n12_N7ee712613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712613fooEv,_ZThn16_N7ee712613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71261 = { "ee71261", // class name
+ bases_ee71261, 4,
+ &(vtc_ee71261[0]), // expected_vtbl_contents
+ &(vtt_ee71261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71261),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71261),5, //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 dd2261 : cc261 {
+ int d;
+ virtual void foo(); // _ZN6dd22613fooEv
+ ~dd2261(); // tgen
+ dd2261(); // tgen
+};
+//SIG(-1 dd2261) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2261 ::foo(){vfunc_called(this, "_ZN6dd22613fooEv");}
+dd2261 ::~dd2261(){ note_dtor("dd2261", this);} // tgen
+dd2261 ::dd2261(){ note_ctor("dd2261", this);} // tgen
+
+static void Test_dd2261()
+{
+ extern Class_Descriptor cd_dd2261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2261, buf);
+ dd2261 *dp, &lv = *(dp=new (buf) dd2261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), 0, "dd2261");
+ check_base_class_offset(lv, (bb61*)(cc261*), 0, "dd2261");
+ check_base_class_offset(lv, (cc261*), 0, "dd2261");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2261.d");
+ test_class_info(&lv, &cd_dd2261);
+ dp->~dd2261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2261(Test_dd2261, "dd2261", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2261C1Ev();
+extern void _ZN6dd2261D1Ev();
+Name_Map name_map_dd2261[] = {
+ NSPAIR(_ZN6dd2261C1Ev),
+ NSPAIR(_ZN6dd2261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd2261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2261[];
+extern void _ZN6dd22613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd2261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2261[0]),
+ (VTBL_ENTRY)&_ZN6dd22613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+Class_Descriptor cd_dd2261 = { "dd2261", // class name
+ bases_dd2261, 3,
+ &(vtc_dd2261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2261),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 ee02261 : dd2261 {
+ int e;
+ ~ee02261(); // tgen
+ ee02261(); // tgen
+};
+//SIG(1 ee02261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02261 ::~ee02261(){ note_dtor("ee02261", this);} // tgen
+ee02261 ::ee02261(){ note_ctor("ee02261", this);} // tgen
+
+static void Test_ee02261()
+{
+ extern Class_Descriptor cd_ee02261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02261, buf);
+ ee02261 *dp, &lv = *(dp=new (buf) ee02261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), 0, "ee02261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), 0, "ee02261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), 0, "ee02261");
+ check_base_class_offset(lv, (dd2261*), 0, "ee02261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02261.e");
+ test_class_info(&lv, &cd_ee02261);
+ dp->~ee02261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02261(Test_ee02261, "ee02261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02261C1Ev();
+extern void _ZN7ee02261D1Ev();
+Name_Map name_map_ee02261[] = {
+ NSPAIR(_ZN7ee02261C1Ev),
+ NSPAIR(_ZN7ee02261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee02261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, 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 _ZTI7ee02261[];
+extern void _ZN6dd22613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee02261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02261[0]),
+ (VTBL_ENTRY)&_ZN6dd22613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02261[];
+extern VTBL_ENTRY _ZTV7ee02261[];
+Class_Descriptor cd_ee02261 = { "ee02261", // class name
+ bases_ee02261, 4,
+ &(vtc_ee02261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02261),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 ee12261 : virtual dd2261 {
+ int e;
+ ~ee12261(); // tgen
+ ee12261(); // tgen
+};
+//SIG(1 ee12261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12261 ::~ee12261(){ note_dtor("ee12261", this);} // tgen
+ee12261 ::ee12261(){ note_ctor("ee12261", this);} // tgen
+
+static void Test_ee12261()
+{
+ extern Class_Descriptor cd_ee12261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12261, buf);
+ ee12261 *dp, &lv = *(dp=new (buf) ee12261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee12261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee12261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), ABISELECT(16,8), "ee12261");
+ check_base_class_offset(lv, (dd2261*), ABISELECT(16,8), "ee12261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12261.e");
+ test_class_info(&lv, &cd_ee12261);
+ dp->~ee12261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12261(Test_ee12261, "ee12261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12261C1Ev();
+extern void _ZN7ee12261D1Ev();
+Name_Map name_map_ee12261[] = {
+ NSPAIR(_ZN7ee12261C1Ev),
+ NSPAIR(_ZN7ee12261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee12261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, 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 _ZTI7ee12261[];
+extern void _ZN6dd22613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee12261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12261[0]),
+ (VTBL_ENTRY)&_ZN6dd22613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12261[];
+static VTT_ENTRY vtt_ee12261[] = {
+ {&(_ZTV7ee12261[3]), 3,9},
+ {&(_ZTV7ee12261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12261[];
+extern VTBL_ENTRY _ZTV7ee12261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12261[];
+Class_Descriptor cd_ee12261 = { "ee12261", // class name
+ bases_ee12261, 4,
+ &(vtc_ee12261[0]), // expected_vtbl_contents
+ &(vtt_ee12261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12261),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 ee22261 : dd2261 {
+ int e;
+ virtual void foo(); // _ZN7ee222613fooEv
+ ~ee22261(); // tgen
+ ee22261(); // tgen
+};
+//SIG(1 ee22261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22261 ::foo(){vfunc_called(this, "_ZN7ee222613fooEv");}
+ee22261 ::~ee22261(){ note_dtor("ee22261", this);} // tgen
+ee22261 ::ee22261(){ note_ctor("ee22261", this);} // tgen
+
+static void Test_ee22261()
+{
+ extern Class_Descriptor cd_ee22261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22261, buf);
+ ee22261 *dp, &lv = *(dp=new (buf) ee22261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), 0, "ee22261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), 0, "ee22261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), 0, "ee22261");
+ check_base_class_offset(lv, (dd2261*), 0, "ee22261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22261.e");
+ test_class_info(&lv, &cd_ee22261);
+ dp->~ee22261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22261(Test_ee22261, "ee22261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22261C1Ev();
+extern void _ZN7ee22261D1Ev();
+Name_Map name_map_ee22261[] = {
+ NSPAIR(_ZN7ee22261C1Ev),
+ NSPAIR(_ZN7ee22261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee22261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22261[];
+extern void _ZN7ee222613fooEv();
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee22261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22261[0]),
+ (VTBL_ENTRY)&_ZN7ee222613fooEv,
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22261[];
+extern VTBL_ENTRY _ZTV7ee22261[];
+Class_Descriptor cd_ee22261 = { "ee22261", // class name
+ bases_ee22261, 4,
+ &(vtc_ee22261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22261),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 ee32261 : virtual dd2261 {
+ int e;
+ virtual void foo(); // _ZN7ee322613fooEv
+ ~ee32261(); // tgen
+ ee32261(); // tgen
+};
+//SIG(1 ee32261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32261 ::foo(){vfunc_called(this, "_ZN7ee322613fooEv");}
+ee32261 ::~ee32261(){ note_dtor("ee32261", this);} // tgen
+ee32261 ::ee32261(){ note_ctor("ee32261", this);} // tgen
+
+static void Test_ee32261()
+{
+ extern Class_Descriptor cd_ee32261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32261, buf);
+ ee32261 *dp, &lv = *(dp=new (buf) ee32261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee32261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee32261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), ABISELECT(16,8), "ee32261");
+ check_base_class_offset(lv, (dd2261*), ABISELECT(16,8), "ee32261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32261.e");
+ test_class_info(&lv, &cd_ee32261);
+ dp->~ee32261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32261(Test_ee32261, "ee32261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32261C1Ev();
+extern void _ZN7ee32261D1Ev();
+Name_Map name_map_ee32261[] = {
+ NSPAIR(_ZN7ee32261C1Ev),
+ NSPAIR(_ZN7ee32261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee32261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, ABISELECT(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 _ZTI7ee32261[];
+extern void _ZN7ee322613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322613fooEv,_ZTv0_n12_N7ee322613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322613fooEv,_ZThn8_N7ee322613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee32261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32261[0]),
+ (VTBL_ENTRY)&_ZN7ee322613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322613fooEv,_ZTv0_n12_N7ee322613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32261[];
+static VTT_ENTRY vtt_ee32261[] = {
+ {&(_ZTV7ee32261[3]), 3,10},
+ {&(_ZTV7ee32261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32261[];
+extern VTBL_ENTRY _ZTV7ee32261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32261[];
+static VTBL_ENTRY alt_thunk_names586[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322613fooEv,_ZTv0_n12_N7ee322613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322613fooEv,_ZThn8_N7ee322613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32261 = { "ee32261", // class name
+ bases_ee32261, 4,
+ &(vtc_ee32261[0]), // expected_vtbl_contents
+ &(vtt_ee32261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32261),2, //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 ee42261 : dd2261 {
+ int e;
+ virtual void bar(); // _ZN7ee422613barEv
+ ~ee42261(); // tgen
+ ee42261(); // tgen
+};
+//SIG(1 ee42261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42261 ::bar(){vfunc_called(this, "_ZN7ee422613barEv");}
+ee42261 ::~ee42261(){ note_dtor("ee42261", this);} // tgen
+ee42261 ::ee42261(){ note_ctor("ee42261", this);} // tgen
+
+static void Test_ee42261()
+{
+ extern Class_Descriptor cd_ee42261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42261, buf);
+ ee42261 *dp, &lv = *(dp=new (buf) ee42261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), 0, "ee42261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), 0, "ee42261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), 0, "ee42261");
+ check_base_class_offset(lv, (dd2261*), 0, "ee42261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42261.e");
+ test_class_info(&lv, &cd_ee42261);
+ dp->~ee42261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42261(Test_ee42261, "ee42261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42261C1Ev();
+extern void _ZN7ee42261D1Ev();
+Name_Map name_map_ee42261[] = {
+ NSPAIR(_ZN7ee42261C1Ev),
+ NSPAIR(_ZN7ee42261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee42261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42261[];
+extern void _ZN6dd22613fooEv();
+extern void _ZN7ee422613barEv();
+static VTBL_ENTRY vtc_ee42261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42261[0]),
+ (VTBL_ENTRY)&_ZN6dd22613fooEv,
+ (VTBL_ENTRY)&_ZN7ee422613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42261[];
+extern VTBL_ENTRY _ZTV7ee42261[];
+Class_Descriptor cd_ee42261 = { "ee42261", // class name
+ bases_ee42261, 4,
+ &(vtc_ee42261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42261),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 ee52261 : virtual dd2261 {
+ int e;
+ virtual void bar(); // _ZN7ee522613barEv
+ ~ee52261(); // tgen
+ ee52261(); // tgen
+};
+//SIG(1 ee52261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52261 ::bar(){vfunc_called(this, "_ZN7ee522613barEv");}
+ee52261 ::~ee52261(){ note_dtor("ee52261", this);} // tgen
+ee52261 ::ee52261(){ note_ctor("ee52261", this);} // tgen
+
+static void Test_ee52261()
+{
+ extern Class_Descriptor cd_ee52261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52261, buf);
+ ee52261 *dp, &lv = *(dp=new (buf) ee52261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee52261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee52261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), ABISELECT(16,8), "ee52261");
+ check_base_class_offset(lv, (dd2261*), ABISELECT(16,8), "ee52261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52261.e");
+ test_class_info(&lv, &cd_ee52261);
+ dp->~ee52261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52261(Test_ee52261, "ee52261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52261C1Ev();
+extern void _ZN7ee52261D1Ev();
+Name_Map name_map_ee52261[] = {
+ NSPAIR(_ZN7ee52261C1Ev),
+ NSPAIR(_ZN7ee52261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee52261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, ABISELECT(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 _ZTI7ee52261[];
+extern void _ZN7ee522613barEv();
+extern void _ZN6dd22613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522613barEv,_ZTv0_n16_N7ee522613barEv)();
+extern void ABISELECT(_ZThn16_N7ee522613barEv,_ZThn8_N7ee522613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52261[0]),
+ (VTBL_ENTRY)&_ZN7ee522613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52261[0]),
+ (VTBL_ENTRY)&_ZN6dd22613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522613barEv,_ZTv0_n16_N7ee522613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52261[];
+static VTT_ENTRY vtt_ee52261[] = {
+ {&(_ZTV7ee52261[3]), 3,10},
+ {&(_ZTV7ee52261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52261[];
+extern VTBL_ENTRY _ZTV7ee52261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52261[];
+static VTBL_ENTRY alt_thunk_names587[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522613barEv,_ZTv0_n16_N7ee522613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522613barEv,_ZThn8_N7ee522613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52261 = { "ee52261", // class name
+ bases_ee52261, 4,
+ &(vtc_ee52261[0]), // expected_vtbl_contents
+ &(vtt_ee52261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52261),2, //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 ee62261 : dd2261 {
+ int e;
+ virtual void foo(); // _ZN7ee622613fooEv
+ virtual void bar(); // _ZN7ee622613barEv
+ ~ee62261(); // tgen
+ ee62261(); // tgen
+};
+//SIG(1 ee62261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62261 ::foo(){vfunc_called(this, "_ZN7ee622613fooEv");}
+void ee62261 ::bar(){vfunc_called(this, "_ZN7ee622613barEv");}
+ee62261 ::~ee62261(){ note_dtor("ee62261", this);} // tgen
+ee62261 ::ee62261(){ note_ctor("ee62261", this);} // tgen
+
+static void Test_ee62261()
+{
+ extern Class_Descriptor cd_ee62261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62261, buf);
+ ee62261 *dp, &lv = *(dp=new (buf) ee62261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), 0, "ee62261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), 0, "ee62261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), 0, "ee62261");
+ check_base_class_offset(lv, (dd2261*), 0, "ee62261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62261.e");
+ test_class_info(&lv, &cd_ee62261);
+ dp->~ee62261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62261(Test_ee62261, "ee62261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62261C1Ev();
+extern void _ZN7ee62261D1Ev();
+Name_Map name_map_ee62261[] = {
+ NSPAIR(_ZN7ee62261C1Ev),
+ NSPAIR(_ZN7ee62261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee62261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62261[];
+extern void _ZN7ee622613fooEv();
+extern void _ZN7ee622613barEv();
+static VTBL_ENTRY vtc_ee62261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62261[0]),
+ (VTBL_ENTRY)&_ZN7ee622613fooEv,
+ (VTBL_ENTRY)&_ZN7ee622613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62261[];
+extern VTBL_ENTRY _ZTV7ee62261[];
+Class_Descriptor cd_ee62261 = { "ee62261", // class name
+ bases_ee62261, 4,
+ &(vtc_ee62261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62261),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 ee72261 : virtual dd2261 {
+ int e;
+ virtual void foo(); // _ZN7ee722613fooEv
+ virtual void bar(); // _ZN7ee722613barEv
+ ~ee72261(); // tgen
+ ee72261(); // tgen
+};
+//SIG(1 ee72261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72261 ::foo(){vfunc_called(this, "_ZN7ee722613fooEv");}
+void ee72261 ::bar(){vfunc_called(this, "_ZN7ee722613barEv");}
+ee72261 ::~ee72261(){ note_dtor("ee72261", this);} // tgen
+ee72261 ::ee72261(){ note_ctor("ee72261", this);} // tgen
+
+static void Test_ee72261()
+{
+ extern Class_Descriptor cd_ee72261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72261, buf);
+ ee72261 *dp, &lv = *(dp=new (buf) ee72261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee72261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd2261*), ABISELECT(16,8), "ee72261");
+ check_base_class_offset(lv, (cc261*)(dd2261*), ABISELECT(16,8), "ee72261");
+ check_base_class_offset(lv, (dd2261*), ABISELECT(16,8), "ee72261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72261.e");
+ test_class_info(&lv, &cd_ee72261);
+ dp->~ee72261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72261(Test_ee72261, "ee72261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72261C1Ev();
+extern void _ZN7ee72261D1Ev();
+Name_Map name_map_ee72261[] = {
+ NSPAIR(_ZN7ee72261C1Ev),
+ NSPAIR(_ZN7ee72261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd2261;
+extern VTBL_ENTRY _ZTI6dd2261[];
+extern VTBL_ENTRY _ZTV6dd2261[];
+static Base_Class bases_ee72261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2261, ABISELECT(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 _ZTI7ee72261[];
+extern void _ZN7ee722613fooEv();
+extern void _ZN7ee722613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722613fooEv,_ZTv0_n12_N7ee722613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722613fooEv,_ZThn8_N7ee722613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722613barEv,_ZTv0_n16_N7ee722613barEv)();
+extern void ABISELECT(_ZThn16_N7ee722613barEv,_ZThn8_N7ee722613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72261[0]),
+ (VTBL_ENTRY)&_ZN7ee722613fooEv,
+ (VTBL_ENTRY)&_ZN7ee722613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722613fooEv,_ZTv0_n12_N7ee722613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722613barEv,_ZTv0_n16_N7ee722613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72261[];
+static VTT_ENTRY vtt_ee72261[] = {
+ {&(_ZTV7ee72261[3]), 3,11},
+ {&(_ZTV7ee72261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72261[];
+extern VTBL_ENTRY _ZTV7ee72261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72261[];
+static VTBL_ENTRY alt_thunk_names588[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722613barEv,_ZTv0_n16_N7ee722613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722613barEv,_ZThn8_N7ee722613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722613fooEv,_ZTv0_n12_N7ee722613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722613fooEv,_ZThn8_N7ee722613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72261 = { "ee72261", // class name
+ bases_ee72261, 4,
+ &(vtc_ee72261[0]), // expected_vtbl_contents
+ &(vtt_ee72261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72261),2, //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 dd3261 : virtual cc261 {
+ int d;
+ virtual void foo(); // _ZN6dd32613fooEv
+ ~dd3261(); // tgen
+ dd3261(); // tgen
+};
+//SIG(-1 dd3261) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3261 ::foo(){vfunc_called(this, "_ZN6dd32613fooEv");}
+dd3261 ::~dd3261(){ note_dtor("dd3261", this);} // tgen
+dd3261 ::dd3261(){ note_ctor("dd3261", this);} // tgen
+
+static void Test_dd3261()
+{
+ extern Class_Descriptor cd_dd3261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3261, buf);
+ dd3261 *dp, &lv = *(dp=new (buf) dd3261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,8), "dd3261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,8), "dd3261");
+ check_base_class_offset(lv, (cc261*), ABISELECT(16,8), "dd3261");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3261.d");
+ test_class_info(&lv, &cd_dd3261);
+ dp->~dd3261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3261(Test_dd3261, "dd3261", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3261C1Ev();
+extern void _ZN6dd3261D1Ev();
+Name_Map name_map_dd3261[] = {
+ NSPAIR(_ZN6dd3261C1Ev),
+ NSPAIR(_ZN6dd3261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd3261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(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 _ZTI6dd3261[];
+extern void _ZN6dd32613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd3261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3261[];
+static VTT_ENTRY vtt_dd3261[] = {
+ {&(_ZTV6dd3261[3]), 3,10},
+ {&(_ZTV6dd3261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static VTBL_ENTRY alt_thunk_names589[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3261 = { "dd3261", // class name
+ bases_dd3261, 3,
+ &(vtc_dd3261[0]), // expected_vtbl_contents
+ &(vtt_dd3261[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3261),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names589,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03261 : dd3261 {
+ int e;
+ ~ee03261(); // tgen
+ ee03261(); // tgen
+};
+//SIG(1 ee03261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03261 ::~ee03261(){ note_dtor("ee03261", this);} // tgen
+ee03261 ::ee03261(){ note_ctor("ee03261", this);} // tgen
+
+static void Test_ee03261()
+{
+ extern Class_Descriptor cd_ee03261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03261, buf);
+ ee03261 *dp, &lv = *(dp=new (buf) ee03261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee03261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee03261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(16,12), "ee03261");
+ check_base_class_offset(lv, (dd3261*), 0, "ee03261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03261.e");
+ test_class_info(&lv, &cd_ee03261);
+ dp->~ee03261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03261(Test_ee03261, "ee03261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03261C1Ev();
+extern void _ZN7ee03261D1Ev();
+Name_Map name_map_ee03261[] = {
+ NSPAIR(_ZN7ee03261C1Ev),
+ NSPAIR(_ZN7ee03261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee03261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03261[];
+extern void _ZN6dd32613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee03261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee03261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee03261[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee03261[] = {
+ {&(_ZTV7ee03261[3]), 3,10},
+ {&(_tg__ZTV6dd3261__7ee03261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee03261[4]), 4,6},
+ {&(_ZTV7ee03261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03261[];
+extern VTBL_ENTRY _ZTV7ee03261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03261[];
+static VTBL_ENTRY alt_thunk_names590[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03261 = { "ee03261", // class name
+ bases_ee03261, 4,
+ &(vtc_ee03261[0]), // expected_vtbl_contents
+ &(vtt_ee03261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03261),4, //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 ee13261 : virtual dd3261 {
+ int e;
+ ~ee13261(); // tgen
+ ee13261(); // tgen
+};
+//SIG(1 ee13261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13261 ::~ee13261(){ note_dtor("ee13261", this);} // tgen
+ee13261 ::ee13261(){ note_ctor("ee13261", this);} // tgen
+
+static void Test_ee13261()
+{
+ extern Class_Descriptor cd_ee13261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13261, buf);
+ ee13261 *dp, &lv = *(dp=new (buf) ee13261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee13261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee13261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(32,16), "ee13261");
+ check_base_class_offset(lv, (dd3261*), ABISELECT(16,8), "ee13261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13261.e");
+ test_class_info(&lv, &cd_ee13261);
+ dp->~ee13261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13261(Test_ee13261, "ee13261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13261C1Ev();
+extern void _ZN7ee13261D1Ev();
+Name_Map name_map_ee13261[] = {
+ NSPAIR(_ZN7ee13261C1Ev),
+ NSPAIR(_ZN7ee13261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee13261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, ABISELECT(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 _ZTI7ee13261[];
+extern void _ZN6dd32613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee13261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13261[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee13261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee13261[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee13261[] = {
+ {&(_ZTV7ee13261[4]), 4,15},
+ {&(_ZTV7ee13261[8]), 8,15},
+ {&(_ZTV7ee13261[13]), 13,15},
+ {&(_tg__ZTV6dd3261__7ee13261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee13261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13261[];
+extern VTBL_ENTRY _ZTV7ee13261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13261[];
+static VTBL_ENTRY alt_thunk_names591[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13261 = { "ee13261", // class name
+ bases_ee13261, 4,
+ &(vtc_ee13261[0]), // expected_vtbl_contents
+ &(vtt_ee13261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13261),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13261),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names591,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23261 : dd3261 {
+ int e;
+ virtual void foo(); // _ZN7ee232613fooEv
+ ~ee23261(); // tgen
+ ee23261(); // tgen
+};
+//SIG(1 ee23261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23261 ::foo(){vfunc_called(this, "_ZN7ee232613fooEv");}
+ee23261 ::~ee23261(){ note_dtor("ee23261", this);} // tgen
+ee23261 ::ee23261(){ note_ctor("ee23261", this);} // tgen
+
+static void Test_ee23261()
+{
+ extern Class_Descriptor cd_ee23261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23261, buf);
+ ee23261 *dp, &lv = *(dp=new (buf) ee23261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee23261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee23261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(16,12), "ee23261");
+ check_base_class_offset(lv, (dd3261*), 0, "ee23261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23261.e");
+ test_class_info(&lv, &cd_ee23261);
+ dp->~ee23261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23261(Test_ee23261, "ee23261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23261C1Ev();
+extern void _ZN7ee23261D1Ev();
+Name_Map name_map_ee23261[] = {
+ NSPAIR(_ZN7ee23261C1Ev),
+ NSPAIR(_ZN7ee23261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee23261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23261[];
+extern void _ZN7ee232613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232613fooEv,_ZTv0_n12_N7ee232613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232613fooEv,_ZThn12_N7ee232613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee23261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23261[0]),
+ (VTBL_ENTRY)&_ZN7ee232613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232613fooEv,_ZTv0_n12_N7ee232613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee23261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee23261[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee23261[] = {
+ {&(_ZTV7ee23261[3]), 3,10},
+ {&(_tg__ZTV6dd3261__7ee23261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee23261[4]), 4,6},
+ {&(_ZTV7ee23261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23261[];
+extern VTBL_ENTRY _ZTV7ee23261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23261[];
+static VTBL_ENTRY alt_thunk_names592[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232613fooEv,_ZTv0_n12_N7ee232613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232613fooEv,_ZThn12_N7ee232613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23261 = { "ee23261", // class name
+ bases_ee23261, 4,
+ &(vtc_ee23261[0]), // expected_vtbl_contents
+ &(vtt_ee23261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23261),4, //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 ee33261 : virtual dd3261 {
+ int e;
+ virtual void foo(); // _ZN7ee332613fooEv
+ ~ee33261(); // tgen
+ ee33261(); // tgen
+};
+//SIG(1 ee33261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33261 ::foo(){vfunc_called(this, "_ZN7ee332613fooEv");}
+ee33261 ::~ee33261(){ note_dtor("ee33261", this);} // tgen
+ee33261 ::ee33261(){ note_ctor("ee33261", this);} // tgen
+
+static void Test_ee33261()
+{
+ extern Class_Descriptor cd_ee33261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33261, buf);
+ ee33261 *dp, &lv = *(dp=new (buf) ee33261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee33261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee33261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(32,16), "ee33261");
+ check_base_class_offset(lv, (dd3261*), ABISELECT(16,8), "ee33261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33261.e");
+ test_class_info(&lv, &cd_ee33261);
+ dp->~ee33261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33261(Test_ee33261, "ee33261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33261C1Ev();
+extern void _ZN7ee33261D1Ev();
+Name_Map name_map_ee33261[] = {
+ NSPAIR(_ZN7ee33261C1Ev),
+ NSPAIR(_ZN7ee33261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee33261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, ABISELECT(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 _ZTI7ee33261[];
+extern void _ZN7ee332613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332613fooEv,_ZTv0_n16_N7ee332613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332613fooEv,_ZThn8_N7ee332613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332613fooEv,_ZTv0_n12_N7ee332613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332613fooEv,_ZThn16_N7ee332613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee33261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33261[0]),
+ (VTBL_ENTRY)&_ZN7ee332613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332613fooEv,_ZTv0_n16_N7ee332613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332613fooEv,_ZTv0_n12_N7ee332613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee33261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee33261[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee33261[] = {
+ {&(_ZTV7ee33261[4]), 4,16},
+ {&(_ZTV7ee33261[9]), 9,16},
+ {&(_ZTV7ee33261[14]), 14,16},
+ {&(_tg__ZTV6dd3261__7ee33261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee33261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33261[];
+extern VTBL_ENTRY _ZTV7ee33261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33261[];
+static VTBL_ENTRY alt_thunk_names593[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332613fooEv,_ZTv0_n12_N7ee332613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332613fooEv,_ZThn16_N7ee332613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332613fooEv,_ZTv0_n16_N7ee332613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332613fooEv,_ZThn8_N7ee332613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33261 = { "ee33261", // class name
+ bases_ee33261, 4,
+ &(vtc_ee33261[0]), // expected_vtbl_contents
+ &(vtt_ee33261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33261),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33261),5, //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 ee43261 : dd3261 {
+ int e;
+ virtual void bar(); // _ZN7ee432613barEv
+ ~ee43261(); // tgen
+ ee43261(); // tgen
+};
+//SIG(1 ee43261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43261 ::bar(){vfunc_called(this, "_ZN7ee432613barEv");}
+ee43261 ::~ee43261(){ note_dtor("ee43261", this);} // tgen
+ee43261 ::ee43261(){ note_ctor("ee43261", this);} // tgen
+
+static void Test_ee43261()
+{
+ extern Class_Descriptor cd_ee43261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43261, buf);
+ ee43261 *dp, &lv = *(dp=new (buf) ee43261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee43261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee43261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(16,12), "ee43261");
+ check_base_class_offset(lv, (dd3261*), 0, "ee43261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43261.e");
+ test_class_info(&lv, &cd_ee43261);
+ dp->~ee43261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43261(Test_ee43261, "ee43261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43261C1Ev();
+extern void _ZN7ee43261D1Ev();
+Name_Map name_map_ee43261[] = {
+ NSPAIR(_ZN7ee43261C1Ev),
+ NSPAIR(_ZN7ee43261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee43261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43261[];
+extern void _ZN6dd32613fooEv();
+extern void _ZN7ee432613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee432613barEv,_ZTv0_n16_N7ee432613barEv)();
+extern void ABISELECT(_ZThn16_N7ee432613barEv,_ZThn12_N7ee432613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+ (VTBL_ENTRY)&_ZN7ee432613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432613barEv,_ZTv0_n16_N7ee432613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee43261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee43261[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee43261[] = {
+ {&(_ZTV7ee43261[3]), 3,11},
+ {&(_tg__ZTV6dd3261__7ee43261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee43261[4]), 4,6},
+ {&(_ZTV7ee43261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43261[];
+extern VTBL_ENTRY _ZTV7ee43261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43261[];
+static VTBL_ENTRY alt_thunk_names594[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432613barEv,_ZTv0_n16_N7ee432613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432613barEv,_ZThn12_N7ee432613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43261 = { "ee43261", // class name
+ bases_ee43261, 4,
+ &(vtc_ee43261[0]), // expected_vtbl_contents
+ &(vtt_ee43261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43261),4, //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 ee53261 : virtual dd3261 {
+ int e;
+ virtual void bar(); // _ZN7ee532613barEv
+ ~ee53261(); // tgen
+ ee53261(); // tgen
+};
+//SIG(1 ee53261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53261 ::bar(){vfunc_called(this, "_ZN7ee532613barEv");}
+ee53261 ::~ee53261(){ note_dtor("ee53261", this);} // tgen
+ee53261 ::ee53261(){ note_ctor("ee53261", this);} // tgen
+
+static void Test_ee53261()
+{
+ extern Class_Descriptor cd_ee53261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53261, buf);
+ ee53261 *dp, &lv = *(dp=new (buf) ee53261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee53261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee53261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(32,16), "ee53261");
+ check_base_class_offset(lv, (dd3261*), ABISELECT(16,8), "ee53261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53261.e");
+ test_class_info(&lv, &cd_ee53261);
+ dp->~ee53261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53261(Test_ee53261, "ee53261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53261C1Ev();
+extern void _ZN7ee53261D1Ev();
+Name_Map name_map_ee53261[] = {
+ NSPAIR(_ZN7ee53261C1Ev),
+ NSPAIR(_ZN7ee53261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee53261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, ABISELECT(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 _ZTI7ee53261[];
+extern void _ZN7ee532613barEv();
+extern void _ZN6dd32613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee532613barEv,_ZTv0_n16_N7ee532613barEv)();
+extern void ABISELECT(_ZThn32_N7ee532613barEv,_ZThn16_N7ee532613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53261[0]),
+ (VTBL_ENTRY)&_ZN7ee532613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532613barEv,_ZTv0_n16_N7ee532613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee53261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee53261[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee53261[] = {
+ {&(_ZTV7ee53261[4]), 4,16},
+ {&(_ZTV7ee53261[9]), 9,16},
+ {&(_ZTV7ee53261[14]), 14,16},
+ {&(_tg__ZTV6dd3261__7ee53261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee53261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53261[];
+extern VTBL_ENTRY _ZTV7ee53261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53261[];
+static VTBL_ENTRY alt_thunk_names595[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532613barEv,_ZTv0_n16_N7ee532613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532613barEv,_ZThn16_N7ee532613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53261 = { "ee53261", // class name
+ bases_ee53261, 4,
+ &(vtc_ee53261[0]), // expected_vtbl_contents
+ &(vtt_ee53261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53261),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53261),5, //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 ee63261 : dd3261 {
+ int e;
+ virtual void foo(); // _ZN7ee632613fooEv
+ virtual void bar(); // _ZN7ee632613barEv
+ ~ee63261(); // tgen
+ ee63261(); // tgen
+};
+//SIG(1 ee63261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63261 ::foo(){vfunc_called(this, "_ZN7ee632613fooEv");}
+void ee63261 ::bar(){vfunc_called(this, "_ZN7ee632613barEv");}
+ee63261 ::~ee63261(){ note_dtor("ee63261", this);} // tgen
+ee63261 ::ee63261(){ note_ctor("ee63261", this);} // tgen
+
+static void Test_ee63261()
+{
+ extern Class_Descriptor cd_ee63261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63261, buf);
+ ee63261 *dp, &lv = *(dp=new (buf) ee63261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee63261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee63261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(16,12), "ee63261");
+ check_base_class_offset(lv, (dd3261*), 0, "ee63261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63261.e");
+ test_class_info(&lv, &cd_ee63261);
+ dp->~ee63261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63261(Test_ee63261, "ee63261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63261C1Ev();
+extern void _ZN7ee63261D1Ev();
+Name_Map name_map_ee63261[] = {
+ NSPAIR(_ZN7ee63261C1Ev),
+ NSPAIR(_ZN7ee63261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee63261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63261[];
+extern void _ZN7ee632613fooEv();
+extern void _ZN7ee632613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632613fooEv,_ZTv0_n12_N7ee632613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632613fooEv,_ZThn12_N7ee632613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632613barEv,_ZTv0_n16_N7ee632613barEv)();
+extern void ABISELECT(_ZThn16_N7ee632613barEv,_ZThn12_N7ee632613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63261[0]),
+ (VTBL_ENTRY)&_ZN7ee632613fooEv,
+ (VTBL_ENTRY)&_ZN7ee632613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632613fooEv,_ZTv0_n12_N7ee632613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632613barEv,_ZTv0_n16_N7ee632613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee63261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee63261[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee63261[] = {
+ {&(_ZTV7ee63261[3]), 3,11},
+ {&(_tg__ZTV6dd3261__7ee63261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee63261[4]), 4,6},
+ {&(_ZTV7ee63261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63261[];
+extern VTBL_ENTRY _ZTV7ee63261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63261[];
+static VTBL_ENTRY alt_thunk_names596[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn12_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632613barEv,_ZTv0_n16_N7ee632613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632613barEv,_ZThn12_N7ee632613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632613fooEv,_ZTv0_n12_N7ee632613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632613fooEv,_ZThn12_N7ee632613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63261 = { "ee63261", // class name
+ bases_ee63261, 4,
+ &(vtc_ee63261[0]), // expected_vtbl_contents
+ &(vtt_ee63261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63261),4, //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 ee73261 : virtual dd3261 {
+ int e;
+ virtual void foo(); // _ZN7ee732613fooEv
+ virtual void bar(); // _ZN7ee732613barEv
+ ~ee73261(); // tgen
+ ee73261(); // tgen
+};
+//SIG(1 ee73261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73261 ::foo(){vfunc_called(this, "_ZN7ee732613fooEv");}
+void ee73261 ::bar(){vfunc_called(this, "_ZN7ee732613barEv");}
+ee73261 ::~ee73261(){ note_dtor("ee73261", this);} // tgen
+ee73261 ::ee73261(){ note_ctor("ee73261", this);} // tgen
+
+static void Test_ee73261()
+{
+ extern Class_Descriptor cd_ee73261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73261, buf);
+ ee73261 *dp, &lv = *(dp=new (buf) ee73261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee73261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee73261");
+ check_base_class_offset(lv, (cc261*)(dd3261*), ABISELECT(32,16), "ee73261");
+ check_base_class_offset(lv, (dd3261*), ABISELECT(16,8), "ee73261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73261.e");
+ test_class_info(&lv, &cd_ee73261);
+ dp->~ee73261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73261(Test_ee73261, "ee73261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73261C1Ev();
+extern void _ZN7ee73261D1Ev();
+Name_Map name_map_ee73261[] = {
+ NSPAIR(_ZN7ee73261C1Ev),
+ NSPAIR(_ZN7ee73261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd3261;
+extern VTBL_ENTRY _ZTI6dd3261[];
+extern VTBL_ENTRY _ZTV6dd3261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3261[];
+static Base_Class bases_ee73261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd3261, 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 _ZTI7ee73261[];
+extern void _ZN7ee732613fooEv();
+extern void _ZN7ee732613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732613fooEv,_ZTv0_n16_N7ee732613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732613fooEv,_ZThn8_N7ee732613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732613fooEv,_ZTv0_n12_N7ee732613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732613fooEv,_ZThn16_N7ee732613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732613barEv,_ZTv0_n16_N7ee732613barEv)();
+extern void ABISELECT(_ZThn32_N7ee732613barEv,_ZThn16_N7ee732613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73261[0]),
+ (VTBL_ENTRY)&_ZN7ee732613fooEv,
+ (VTBL_ENTRY)&_ZN7ee732613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732613fooEv,_ZTv0_n16_N7ee732613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732613fooEv,_ZTv0_n12_N7ee732613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732613barEv,_ZTv0_n16_N7ee732613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73261[];
+extern void _ZN6dd32613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3261__7ee73261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&_ZN6dd32613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV5cc261__6dd3261__7ee73261[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee73261[] = {
+ {&(_ZTV7ee73261[4]), 4,17},
+ {&(_ZTV7ee73261[10]), 10,17},
+ {&(_ZTV7ee73261[15]), 15,17},
+ {&(_tg__ZTV6dd3261__7ee73261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd3261__7ee73261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73261[];
+extern VTBL_ENTRY _ZTV7ee73261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73261[];
+static VTBL_ENTRY alt_thunk_names597[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32613fooEv,_ZTv0_n12_N6dd32613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32613fooEv,_ZThn8_N6dd32613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732613barEv,_ZTv0_n16_N7ee732613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732613barEv,_ZThn16_N7ee732613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732613fooEv,_ZTv0_n12_N7ee732613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732613fooEv,_ZThn16_N7ee732613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732613fooEv,_ZTv0_n16_N7ee732613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732613fooEv,_ZThn8_N7ee732613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73261 = { "ee73261", // class name
+ bases_ee73261, 4,
+ &(vtc_ee73261[0]), // expected_vtbl_contents
+ &(vtt_ee73261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73261),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73261),5, //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 dd4261 : cc261 {
+ int d;
+ virtual void bar(); // _ZN6dd42613barEv
+ ~dd4261(); // tgen
+ dd4261(); // tgen
+};
+//SIG(-1 dd4261) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4261 ::bar(){vfunc_called(this, "_ZN6dd42613barEv");}
+dd4261 ::~dd4261(){ note_dtor("dd4261", this);} // tgen
+dd4261 ::dd4261(){ note_ctor("dd4261", this);} // tgen
+
+static void Test_dd4261()
+{
+ extern Class_Descriptor cd_dd4261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4261, buf);
+ dd4261 *dp, &lv = *(dp=new (buf) dd4261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), 0, "dd4261");
+ check_base_class_offset(lv, (bb61*)(cc261*), 0, "dd4261");
+ check_base_class_offset(lv, (cc261*), 0, "dd4261");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4261.d");
+ test_class_info(&lv, &cd_dd4261);
+ dp->~dd4261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4261(Test_dd4261, "dd4261", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4261C1Ev();
+extern void _ZN6dd4261D1Ev();
+Name_Map name_map_dd4261[] = {
+ NSPAIR(_ZN6dd4261C1Ev),
+ NSPAIR(_ZN6dd4261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd4261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN6dd42613barEv();
+static VTBL_ENTRY vtc_dd4261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN6dd42613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+Class_Descriptor cd_dd4261 = { "dd4261", // class name
+ bases_dd4261, 3,
+ &(vtc_dd4261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4261),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 ee04261 : dd4261 {
+ int e;
+ ~ee04261(); // tgen
+ ee04261(); // tgen
+};
+//SIG(1 ee04261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04261 ::~ee04261(){ note_dtor("ee04261", this);} // tgen
+ee04261 ::ee04261(){ note_ctor("ee04261", this);} // tgen
+
+static void Test_ee04261()
+{
+ extern Class_Descriptor cd_ee04261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04261, buf);
+ ee04261 *dp, &lv = *(dp=new (buf) ee04261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), 0, "ee04261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), 0, "ee04261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), 0, "ee04261");
+ check_base_class_offset(lv, (dd4261*), 0, "ee04261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04261.e");
+ test_class_info(&lv, &cd_ee04261);
+ dp->~ee04261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04261(Test_ee04261, "ee04261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04261C1Ev();
+extern void _ZN7ee04261D1Ev();
+Name_Map name_map_ee04261[] = {
+ NSPAIR(_ZN7ee04261C1Ev),
+ NSPAIR(_ZN7ee04261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee04261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, 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 _ZTI7ee04261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN6dd42613barEv();
+static VTBL_ENTRY vtc_ee04261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN6dd42613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04261[];
+extern VTBL_ENTRY _ZTV7ee04261[];
+Class_Descriptor cd_ee04261 = { "ee04261", // class name
+ bases_ee04261, 4,
+ &(vtc_ee04261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04261),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 ee14261 : virtual dd4261 {
+ int e;
+ ~ee14261(); // tgen
+ ee14261(); // tgen
+};
+//SIG(1 ee14261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14261 ::~ee14261(){ note_dtor("ee14261", this);} // tgen
+ee14261 ::ee14261(){ note_ctor("ee14261", this);} // tgen
+
+static void Test_ee14261()
+{
+ extern Class_Descriptor cd_ee14261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14261, buf);
+ ee14261 *dp, &lv = *(dp=new (buf) ee14261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee14261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee14261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), ABISELECT(16,8), "ee14261");
+ check_base_class_offset(lv, (dd4261*), ABISELECT(16,8), "ee14261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14261.e");
+ test_class_info(&lv, &cd_ee14261);
+ dp->~ee14261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14261(Test_ee14261, "ee14261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14261C1Ev();
+extern void _ZN7ee14261D1Ev();
+Name_Map name_map_ee14261[] = {
+ NSPAIR(_ZN7ee14261C1Ev),
+ NSPAIR(_ZN7ee14261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee14261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, 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 _ZTI7ee14261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN6dd42613barEv();
+static VTBL_ENTRY vtc_ee14261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN6dd42613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14261[];
+static VTT_ENTRY vtt_ee14261[] = {
+ {&(_ZTV7ee14261[3]), 3,9},
+ {&(_ZTV7ee14261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14261[];
+extern VTBL_ENTRY _ZTV7ee14261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14261[];
+Class_Descriptor cd_ee14261 = { "ee14261", // class name
+ bases_ee14261, 4,
+ &(vtc_ee14261[0]), // expected_vtbl_contents
+ &(vtt_ee14261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14261),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 ee24261 : dd4261 {
+ int e;
+ virtual void foo(); // _ZN7ee242613fooEv
+ ~ee24261(); // tgen
+ ee24261(); // tgen
+};
+//SIG(1 ee24261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24261 ::foo(){vfunc_called(this, "_ZN7ee242613fooEv");}
+ee24261 ::~ee24261(){ note_dtor("ee24261", this);} // tgen
+ee24261 ::ee24261(){ note_ctor("ee24261", this);} // tgen
+
+static void Test_ee24261()
+{
+ extern Class_Descriptor cd_ee24261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24261, buf);
+ ee24261 *dp, &lv = *(dp=new (buf) ee24261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), 0, "ee24261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), 0, "ee24261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), 0, "ee24261");
+ check_base_class_offset(lv, (dd4261*), 0, "ee24261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24261.e");
+ test_class_info(&lv, &cd_ee24261);
+ dp->~ee24261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24261(Test_ee24261, "ee24261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24261C1Ev();
+extern void _ZN7ee24261D1Ev();
+Name_Map name_map_ee24261[] = {
+ NSPAIR(_ZN7ee24261C1Ev),
+ NSPAIR(_ZN7ee24261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee24261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24261[];
+extern void _ZN7ee242613fooEv();
+extern void _ZN6dd42613barEv();
+static VTBL_ENTRY vtc_ee24261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24261[0]),
+ (VTBL_ENTRY)&_ZN7ee242613fooEv,
+ (VTBL_ENTRY)&_ZN6dd42613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24261[];
+extern VTBL_ENTRY _ZTV7ee24261[];
+Class_Descriptor cd_ee24261 = { "ee24261", // class name
+ bases_ee24261, 4,
+ &(vtc_ee24261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24261),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 ee34261 : virtual dd4261 {
+ int e;
+ virtual void foo(); // _ZN7ee342613fooEv
+ ~ee34261(); // tgen
+ ee34261(); // tgen
+};
+//SIG(1 ee34261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34261 ::foo(){vfunc_called(this, "_ZN7ee342613fooEv");}
+ee34261 ::~ee34261(){ note_dtor("ee34261", this);} // tgen
+ee34261 ::ee34261(){ note_ctor("ee34261", this);} // tgen
+
+static void Test_ee34261()
+{
+ extern Class_Descriptor cd_ee34261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34261, buf);
+ ee34261 *dp, &lv = *(dp=new (buf) ee34261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee34261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee34261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), ABISELECT(16,8), "ee34261");
+ check_base_class_offset(lv, (dd4261*), ABISELECT(16,8), "ee34261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34261.e");
+ test_class_info(&lv, &cd_ee34261);
+ dp->~ee34261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34261(Test_ee34261, "ee34261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34261C1Ev();
+extern void _ZN7ee34261D1Ev();
+Name_Map name_map_ee34261[] = {
+ NSPAIR(_ZN7ee34261C1Ev),
+ NSPAIR(_ZN7ee34261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee34261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, ABISELECT(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 _ZTI7ee34261[];
+extern void _ZN7ee342613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342613fooEv,_ZTv0_n12_N7ee342613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342613fooEv,_ZThn8_N7ee342613fooEv)() __attribute__((weak));
+extern void _ZN6dd42613barEv();
+static VTBL_ENTRY vtc_ee34261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34261[0]),
+ (VTBL_ENTRY)&_ZN7ee342613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342613fooEv,_ZTv0_n12_N7ee342613fooEv),
+ (VTBL_ENTRY)&_ZN6dd42613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34261[];
+static VTT_ENTRY vtt_ee34261[] = {
+ {&(_ZTV7ee34261[3]), 3,10},
+ {&(_ZTV7ee34261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34261[];
+extern VTBL_ENTRY _ZTV7ee34261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34261[];
+static VTBL_ENTRY alt_thunk_names598[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342613fooEv,_ZTv0_n12_N7ee342613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342613fooEv,_ZThn8_N7ee342613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34261 = { "ee34261", // class name
+ bases_ee34261, 4,
+ &(vtc_ee34261[0]), // expected_vtbl_contents
+ &(vtt_ee34261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34261),2, //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 ee44261 : dd4261 {
+ int e;
+ virtual void bar(); // _ZN7ee442613barEv
+ ~ee44261(); // tgen
+ ee44261(); // tgen
+};
+//SIG(1 ee44261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44261 ::bar(){vfunc_called(this, "_ZN7ee442613barEv");}
+ee44261 ::~ee44261(){ note_dtor("ee44261", this);} // tgen
+ee44261 ::ee44261(){ note_ctor("ee44261", this);} // tgen
+
+static void Test_ee44261()
+{
+ extern Class_Descriptor cd_ee44261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44261, buf);
+ ee44261 *dp, &lv = *(dp=new (buf) ee44261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), 0, "ee44261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), 0, "ee44261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), 0, "ee44261");
+ check_base_class_offset(lv, (dd4261*), 0, "ee44261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44261.e");
+ test_class_info(&lv, &cd_ee44261);
+ dp->~ee44261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44261(Test_ee44261, "ee44261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44261C1Ev();
+extern void _ZN7ee44261D1Ev();
+Name_Map name_map_ee44261[] = {
+ NSPAIR(_ZN7ee44261C1Ev),
+ NSPAIR(_ZN7ee44261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee44261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44261[];
+extern void _ZN5cc2613fooEv();
+extern void _ZN7ee442613barEv();
+static VTBL_ENTRY vtc_ee44261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&_ZN7ee442613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44261[];
+extern VTBL_ENTRY _ZTV7ee44261[];
+Class_Descriptor cd_ee44261 = { "ee44261", // class name
+ bases_ee44261, 4,
+ &(vtc_ee44261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44261),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 ee54261 : virtual dd4261 {
+ int e;
+ virtual void bar(); // _ZN7ee542613barEv
+ ~ee54261(); // tgen
+ ee54261(); // tgen
+};
+//SIG(1 ee54261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54261 ::bar(){vfunc_called(this, "_ZN7ee542613barEv");}
+ee54261 ::~ee54261(){ note_dtor("ee54261", this);} // tgen
+ee54261 ::ee54261(){ note_ctor("ee54261", this);} // tgen
+
+static void Test_ee54261()
+{
+ extern Class_Descriptor cd_ee54261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54261, buf);
+ ee54261 *dp, &lv = *(dp=new (buf) ee54261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee54261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee54261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), ABISELECT(16,8), "ee54261");
+ check_base_class_offset(lv, (dd4261*), ABISELECT(16,8), "ee54261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54261.e");
+ test_class_info(&lv, &cd_ee54261);
+ dp->~ee54261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54261(Test_ee54261, "ee54261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54261C1Ev();
+extern void _ZN7ee54261D1Ev();
+Name_Map name_map_ee54261[] = {
+ NSPAIR(_ZN7ee54261C1Ev),
+ NSPAIR(_ZN7ee54261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee54261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, ABISELECT(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 _ZTI7ee54261[];
+extern void _ZN7ee542613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542613barEv,_ZTv0_n16_N7ee542613barEv)();
+extern void ABISELECT(_ZThn16_N7ee542613barEv,_ZThn8_N7ee542613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54261[0]),
+ (VTBL_ENTRY)&_ZN7ee542613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542613barEv,_ZTv0_n16_N7ee542613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54261[];
+static VTT_ENTRY vtt_ee54261[] = {
+ {&(_ZTV7ee54261[3]), 3,10},
+ {&(_ZTV7ee54261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54261[];
+extern VTBL_ENTRY _ZTV7ee54261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54261[];
+static VTBL_ENTRY alt_thunk_names599[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542613barEv,_ZTv0_n16_N7ee542613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542613barEv,_ZThn8_N7ee542613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54261 = { "ee54261", // class name
+ bases_ee54261, 4,
+ &(vtc_ee54261[0]), // expected_vtbl_contents
+ &(vtt_ee54261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54261),2, //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 ee64261 : dd4261 {
+ int e;
+ virtual void foo(); // _ZN7ee642613fooEv
+ virtual void bar(); // _ZN7ee642613barEv
+ ~ee64261(); // tgen
+ ee64261(); // tgen
+};
+//SIG(1 ee64261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64261 ::foo(){vfunc_called(this, "_ZN7ee642613fooEv");}
+void ee64261 ::bar(){vfunc_called(this, "_ZN7ee642613barEv");}
+ee64261 ::~ee64261(){ note_dtor("ee64261", this);} // tgen
+ee64261 ::ee64261(){ note_ctor("ee64261", this);} // tgen
+
+static void Test_ee64261()
+{
+ extern Class_Descriptor cd_ee64261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64261, buf);
+ ee64261 *dp, &lv = *(dp=new (buf) ee64261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), 0, "ee64261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), 0, "ee64261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), 0, "ee64261");
+ check_base_class_offset(lv, (dd4261*), 0, "ee64261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64261.e");
+ test_class_info(&lv, &cd_ee64261);
+ dp->~ee64261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64261(Test_ee64261, "ee64261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64261C1Ev();
+extern void _ZN7ee64261D1Ev();
+Name_Map name_map_ee64261[] = {
+ NSPAIR(_ZN7ee64261C1Ev),
+ NSPAIR(_ZN7ee64261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee64261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64261[];
+extern void _ZN7ee642613fooEv();
+extern void _ZN7ee642613barEv();
+static VTBL_ENTRY vtc_ee64261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64261[0]),
+ (VTBL_ENTRY)&_ZN7ee642613fooEv,
+ (VTBL_ENTRY)&_ZN7ee642613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64261[];
+extern VTBL_ENTRY _ZTV7ee64261[];
+Class_Descriptor cd_ee64261 = { "ee64261", // class name
+ bases_ee64261, 4,
+ &(vtc_ee64261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64261),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 ee74261 : virtual dd4261 {
+ int e;
+ virtual void foo(); // _ZN7ee742613fooEv
+ virtual void bar(); // _ZN7ee742613barEv
+ ~ee74261(); // tgen
+ ee74261(); // tgen
+};
+//SIG(1 ee74261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74261 ::foo(){vfunc_called(this, "_ZN7ee742613fooEv");}
+void ee74261 ::bar(){vfunc_called(this, "_ZN7ee742613barEv");}
+ee74261 ::~ee74261(){ note_dtor("ee74261", this);} // tgen
+ee74261 ::ee74261(){ note_ctor("ee74261", this);} // tgen
+
+static void Test_ee74261()
+{
+ extern Class_Descriptor cd_ee74261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74261, buf);
+ ee74261 *dp, &lv = *(dp=new (buf) ee74261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee74261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd4261*), ABISELECT(16,8), "ee74261");
+ check_base_class_offset(lv, (cc261*)(dd4261*), ABISELECT(16,8), "ee74261");
+ check_base_class_offset(lv, (dd4261*), ABISELECT(16,8), "ee74261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74261.e");
+ test_class_info(&lv, &cd_ee74261);
+ dp->~ee74261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74261(Test_ee74261, "ee74261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74261C1Ev();
+extern void _ZN7ee74261D1Ev();
+Name_Map name_map_ee74261[] = {
+ NSPAIR(_ZN7ee74261C1Ev),
+ NSPAIR(_ZN7ee74261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd4261;
+extern VTBL_ENTRY _ZTI6dd4261[];
+extern VTBL_ENTRY _ZTV6dd4261[];
+static Base_Class bases_ee74261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4261, ABISELECT(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 _ZTI7ee74261[];
+extern void _ZN7ee742613fooEv();
+extern void _ZN7ee742613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742613fooEv,_ZTv0_n12_N7ee742613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742613fooEv,_ZThn8_N7ee742613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742613barEv,_ZTv0_n16_N7ee742613barEv)();
+extern void ABISELECT(_ZThn16_N7ee742613barEv,_ZThn8_N7ee742613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74261[0]),
+ (VTBL_ENTRY)&_ZN7ee742613fooEv,
+ (VTBL_ENTRY)&_ZN7ee742613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742613fooEv,_ZTv0_n12_N7ee742613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742613barEv,_ZTv0_n16_N7ee742613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74261[];
+static VTT_ENTRY vtt_ee74261[] = {
+ {&(_ZTV7ee74261[3]), 3,11},
+ {&(_ZTV7ee74261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74261[];
+extern VTBL_ENTRY _ZTV7ee74261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74261[];
+static VTBL_ENTRY alt_thunk_names600[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742613barEv,_ZTv0_n16_N7ee742613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742613barEv,_ZThn8_N7ee742613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742613fooEv,_ZTv0_n12_N7ee742613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742613fooEv,_ZThn8_N7ee742613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74261 = { "ee74261", // class name
+ bases_ee74261, 4,
+ &(vtc_ee74261[0]), // expected_vtbl_contents
+ &(vtt_ee74261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74261),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names600,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5261 : virtual cc261 {
+ int d;
+ virtual void bar(); // _ZN6dd52613barEv
+ ~dd5261(); // tgen
+ dd5261(); // tgen
+};
+//SIG(-1 dd5261) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5261 ::bar(){vfunc_called(this, "_ZN6dd52613barEv");}
+dd5261 ::~dd5261(){ note_dtor("dd5261", this);} // tgen
+dd5261 ::dd5261(){ note_ctor("dd5261", this);} // tgen
+
+static void Test_dd5261()
+{
+ extern Class_Descriptor cd_dd5261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5261, buf);
+ dd5261 *dp, &lv = *(dp=new (buf) dd5261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,8), "dd5261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,8), "dd5261");
+ check_base_class_offset(lv, (cc261*), ABISELECT(16,8), "dd5261");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5261.d");
+ test_class_info(&lv, &cd_dd5261);
+ dp->~dd5261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5261(Test_dd5261, "dd5261", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5261C1Ev();
+extern void _ZN6dd5261D1Ev();
+Name_Map name_map_dd5261[] = {
+ NSPAIR(_ZN6dd5261C1Ev),
+ NSPAIR(_ZN6dd5261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd5261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(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 _ZTI6dd5261[];
+extern void _ZN6dd52613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5261[];
+static VTT_ENTRY vtt_dd5261[] = {
+ {&(_ZTV6dd5261[3]), 3,10},
+ {&(_ZTV6dd5261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static VTBL_ENTRY alt_thunk_names601[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5261 = { "dd5261", // class name
+ bases_dd5261, 3,
+ &(vtc_dd5261[0]), // expected_vtbl_contents
+ &(vtt_dd5261[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5261),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names601,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05261 : dd5261 {
+ int e;
+ ~ee05261(); // tgen
+ ee05261(); // tgen
+};
+//SIG(1 ee05261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05261 ::~ee05261(){ note_dtor("ee05261", this);} // tgen
+ee05261 ::ee05261(){ note_ctor("ee05261", this);} // tgen
+
+static void Test_ee05261()
+{
+ extern Class_Descriptor cd_ee05261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05261, buf);
+ ee05261 *dp, &lv = *(dp=new (buf) ee05261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee05261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee05261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(16,12), "ee05261");
+ check_base_class_offset(lv, (dd5261*), 0, "ee05261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05261.e");
+ test_class_info(&lv, &cd_ee05261);
+ dp->~ee05261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05261(Test_ee05261, "ee05261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05261C1Ev();
+extern void _ZN7ee05261D1Ev();
+Name_Map name_map_ee05261[] = {
+ NSPAIR(_ZN7ee05261C1Ev),
+ NSPAIR(_ZN7ee05261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee05261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05261[];
+extern void _ZN6dd52613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee05261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee05261[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee05261[] = {
+ {&(_ZTV7ee05261[3]), 3,10},
+ {&(_tg__ZTV6dd5261__7ee05261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee05261[4]), 4,6},
+ {&(_ZTV7ee05261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05261[];
+extern VTBL_ENTRY _ZTV7ee05261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05261[];
+static VTBL_ENTRY alt_thunk_names602[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05261 = { "ee05261", // class name
+ bases_ee05261, 4,
+ &(vtc_ee05261[0]), // expected_vtbl_contents
+ &(vtt_ee05261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05261),4, //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 ee15261 : virtual dd5261 {
+ int e;
+ ~ee15261(); // tgen
+ ee15261(); // tgen
+};
+//SIG(1 ee15261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15261 ::~ee15261(){ note_dtor("ee15261", this);} // tgen
+ee15261 ::ee15261(){ note_ctor("ee15261", this);} // tgen
+
+static void Test_ee15261()
+{
+ extern Class_Descriptor cd_ee15261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15261, buf);
+ ee15261 *dp, &lv = *(dp=new (buf) ee15261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee15261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee15261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(32,16), "ee15261");
+ check_base_class_offset(lv, (dd5261*), ABISELECT(16,8), "ee15261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15261.e");
+ test_class_info(&lv, &cd_ee15261);
+ dp->~ee15261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15261(Test_ee15261, "ee15261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15261C1Ev();
+extern void _ZN7ee15261D1Ev();
+Name_Map name_map_ee15261[] = {
+ NSPAIR(_ZN7ee15261C1Ev),
+ NSPAIR(_ZN7ee15261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee15261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, ABISELECT(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 _ZTI7ee15261[];
+extern void _ZN6dd52613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15261[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee15261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee15261[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee15261[] = {
+ {&(_ZTV7ee15261[4]), 4,15},
+ {&(_ZTV7ee15261[8]), 8,15},
+ {&(_ZTV7ee15261[13]), 13,15},
+ {&(_tg__ZTV6dd5261__7ee15261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee15261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15261[];
+extern VTBL_ENTRY _ZTV7ee15261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15261[];
+static VTBL_ENTRY alt_thunk_names603[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15261 = { "ee15261", // class name
+ bases_ee15261, 4,
+ &(vtc_ee15261[0]), // expected_vtbl_contents
+ &(vtt_ee15261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15261),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15261),5, //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 ee25261 : dd5261 {
+ int e;
+ virtual void foo(); // _ZN7ee252613fooEv
+ ~ee25261(); // tgen
+ ee25261(); // tgen
+};
+//SIG(1 ee25261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25261 ::foo(){vfunc_called(this, "_ZN7ee252613fooEv");}
+ee25261 ::~ee25261(){ note_dtor("ee25261", this);} // tgen
+ee25261 ::ee25261(){ note_ctor("ee25261", this);} // tgen
+
+static void Test_ee25261()
+{
+ extern Class_Descriptor cd_ee25261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25261, buf);
+ ee25261 *dp, &lv = *(dp=new (buf) ee25261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee25261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee25261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(16,12), "ee25261");
+ check_base_class_offset(lv, (dd5261*), 0, "ee25261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25261.e");
+ test_class_info(&lv, &cd_ee25261);
+ dp->~ee25261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25261(Test_ee25261, "ee25261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25261C1Ev();
+extern void _ZN7ee25261D1Ev();
+Name_Map name_map_ee25261[] = {
+ NSPAIR(_ZN7ee25261C1Ev),
+ NSPAIR(_ZN7ee25261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee25261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25261[];
+extern void _ZN6dd52613barEv();
+extern void _ZN7ee252613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252613fooEv,_ZTv0_n12_N7ee252613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252613fooEv,_ZThn12_N7ee252613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+ (VTBL_ENTRY)&_ZN7ee252613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252613fooEv,_ZTv0_n12_N7ee252613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee25261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee25261[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee25261[] = {
+ {&(_ZTV7ee25261[3]), 3,11},
+ {&(_tg__ZTV6dd5261__7ee25261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee25261[4]), 4,6},
+ {&(_ZTV7ee25261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25261[];
+extern VTBL_ENTRY _ZTV7ee25261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25261[];
+static VTBL_ENTRY alt_thunk_names604[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252613fooEv,_ZTv0_n12_N7ee252613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252613fooEv,_ZThn12_N7ee252613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25261 = { "ee25261", // class name
+ bases_ee25261, 4,
+ &(vtc_ee25261[0]), // expected_vtbl_contents
+ &(vtt_ee25261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25261),4, //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 ee35261 : virtual dd5261 {
+ int e;
+ virtual void foo(); // _ZN7ee352613fooEv
+ ~ee35261(); // tgen
+ ee35261(); // tgen
+};
+//SIG(1 ee35261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35261 ::foo(){vfunc_called(this, "_ZN7ee352613fooEv");}
+ee35261 ::~ee35261(){ note_dtor("ee35261", this);} // tgen
+ee35261 ::ee35261(){ note_ctor("ee35261", this);} // tgen
+
+static void Test_ee35261()
+{
+ extern Class_Descriptor cd_ee35261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35261, buf);
+ ee35261 *dp, &lv = *(dp=new (buf) ee35261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee35261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee35261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(32,16), "ee35261");
+ check_base_class_offset(lv, (dd5261*), ABISELECT(16,8), "ee35261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35261.e");
+ test_class_info(&lv, &cd_ee35261);
+ dp->~ee35261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35261(Test_ee35261, "ee35261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35261C1Ev();
+extern void _ZN7ee35261D1Ev();
+Name_Map name_map_ee35261[] = {
+ NSPAIR(_ZN7ee35261C1Ev),
+ NSPAIR(_ZN7ee35261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee35261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, ABISELECT(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 _ZTI7ee35261[];
+extern void _ZN7ee352613fooEv();
+extern void _ZN6dd52613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352613fooEv,_ZTv0_n12_N7ee352613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352613fooEv,_ZThn16_N7ee352613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35261[0]),
+ (VTBL_ENTRY)&_ZN7ee352613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352613fooEv,_ZTv0_n12_N7ee352613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee35261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee35261[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee35261[] = {
+ {&(_ZTV7ee35261[4]), 4,16},
+ {&(_ZTV7ee35261[9]), 9,16},
+ {&(_ZTV7ee35261[14]), 14,16},
+ {&(_tg__ZTV6dd5261__7ee35261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee35261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35261[];
+extern VTBL_ENTRY _ZTV7ee35261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35261[];
+static VTBL_ENTRY alt_thunk_names605[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352613fooEv,_ZTv0_n12_N7ee352613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352613fooEv,_ZThn16_N7ee352613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35261 = { "ee35261", // class name
+ bases_ee35261, 4,
+ &(vtc_ee35261[0]), // expected_vtbl_contents
+ &(vtt_ee35261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35261),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35261),5, //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 ee45261 : dd5261 {
+ int e;
+ virtual void bar(); // _ZN7ee452613barEv
+ ~ee45261(); // tgen
+ ee45261(); // tgen
+};
+//SIG(1 ee45261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45261 ::bar(){vfunc_called(this, "_ZN7ee452613barEv");}
+ee45261 ::~ee45261(){ note_dtor("ee45261", this);} // tgen
+ee45261 ::ee45261(){ note_ctor("ee45261", this);} // tgen
+
+static void Test_ee45261()
+{
+ extern Class_Descriptor cd_ee45261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45261, buf);
+ ee45261 *dp, &lv = *(dp=new (buf) ee45261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee45261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee45261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(16,12), "ee45261");
+ check_base_class_offset(lv, (dd5261*), 0, "ee45261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45261.e");
+ test_class_info(&lv, &cd_ee45261);
+ dp->~ee45261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45261(Test_ee45261, "ee45261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45261C1Ev();
+extern void _ZN7ee45261D1Ev();
+Name_Map name_map_ee45261[] = {
+ NSPAIR(_ZN7ee45261C1Ev),
+ NSPAIR(_ZN7ee45261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee45261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45261[];
+extern void _ZN7ee452613barEv();
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452613barEv,_ZTv0_n16_N7ee452613barEv)();
+extern void ABISELECT(_ZThn16_N7ee452613barEv,_ZThn12_N7ee452613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45261[0]),
+ (VTBL_ENTRY)&_ZN7ee452613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452613barEv,_ZTv0_n16_N7ee452613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee45261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee45261[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee45261[] = {
+ {&(_ZTV7ee45261[3]), 3,10},
+ {&(_tg__ZTV6dd5261__7ee45261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee45261[4]), 4,6},
+ {&(_ZTV7ee45261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45261[];
+extern VTBL_ENTRY _ZTV7ee45261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45261[];
+static VTBL_ENTRY alt_thunk_names606[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452613barEv,_ZTv0_n16_N7ee452613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452613barEv,_ZThn12_N7ee452613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45261 = { "ee45261", // class name
+ bases_ee45261, 4,
+ &(vtc_ee45261[0]), // expected_vtbl_contents
+ &(vtt_ee45261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45261),4, //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 ee55261 : virtual dd5261 {
+ int e;
+ virtual void bar(); // _ZN7ee552613barEv
+ ~ee55261(); // tgen
+ ee55261(); // tgen
+};
+//SIG(1 ee55261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55261 ::bar(){vfunc_called(this, "_ZN7ee552613barEv");}
+ee55261 ::~ee55261(){ note_dtor("ee55261", this);} // tgen
+ee55261 ::ee55261(){ note_ctor("ee55261", this);} // tgen
+
+static void Test_ee55261()
+{
+ extern Class_Descriptor cd_ee55261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55261, buf);
+ ee55261 *dp, &lv = *(dp=new (buf) ee55261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee55261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee55261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(32,16), "ee55261");
+ check_base_class_offset(lv, (dd5261*), ABISELECT(16,8), "ee55261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55261.e");
+ test_class_info(&lv, &cd_ee55261);
+ dp->~ee55261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55261(Test_ee55261, "ee55261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55261C1Ev();
+extern void _ZN7ee55261D1Ev();
+Name_Map name_map_ee55261[] = {
+ NSPAIR(_ZN7ee55261C1Ev),
+ NSPAIR(_ZN7ee55261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee55261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, ABISELECT(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 _ZTI7ee55261[];
+extern void _ZN7ee552613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552613barEv,_ZTv0_n16_N7ee552613barEv)();
+extern void ABISELECT(_ZThn16_N7ee552613barEv,_ZThn8_N7ee552613barEv)() __attribute__((weak));
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552613barEv,_ZTv0_n16_N7ee552613barEv)();
+extern void ABISELECT(_ZThn32_N7ee552613barEv,_ZThn16_N7ee552613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55261[0]),
+ (VTBL_ENTRY)&_ZN7ee552613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552613barEv,_ZTv0_n16_N7ee552613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552613barEv,_ZTv0_n16_N7ee552613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee55261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee55261[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee55261[] = {
+ {&(_ZTV7ee55261[4]), 4,16},
+ {&(_ZTV7ee55261[9]), 9,16},
+ {&(_ZTV7ee55261[14]), 14,16},
+ {&(_tg__ZTV6dd5261__7ee55261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee55261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55261[];
+extern VTBL_ENTRY _ZTV7ee55261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55261[];
+static VTBL_ENTRY alt_thunk_names607[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552613barEv,_ZTv0_n16_N7ee552613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552613barEv,_ZThn16_N7ee552613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552613barEv,_ZThn8_N7ee552613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55261 = { "ee55261", // class name
+ bases_ee55261, 4,
+ &(vtc_ee55261[0]), // expected_vtbl_contents
+ &(vtt_ee55261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55261),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55261),5, //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 ee65261 : dd5261 {
+ int e;
+ virtual void foo(); // _ZN7ee652613fooEv
+ virtual void bar(); // _ZN7ee652613barEv
+ ~ee65261(); // tgen
+ ee65261(); // tgen
+};
+//SIG(1 ee65261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65261 ::foo(){vfunc_called(this, "_ZN7ee652613fooEv");}
+void ee65261 ::bar(){vfunc_called(this, "_ZN7ee652613barEv");}
+ee65261 ::~ee65261(){ note_dtor("ee65261", this);} // tgen
+ee65261 ::ee65261(){ note_ctor("ee65261", this);} // tgen
+
+static void Test_ee65261()
+{
+ extern Class_Descriptor cd_ee65261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65261, buf);
+ ee65261 *dp, &lv = *(dp=new (buf) ee65261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee65261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee65261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(16,12), "ee65261");
+ check_base_class_offset(lv, (dd5261*), 0, "ee65261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65261.e");
+ test_class_info(&lv, &cd_ee65261);
+ dp->~ee65261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65261(Test_ee65261, "ee65261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65261C1Ev();
+extern void _ZN7ee65261D1Ev();
+Name_Map name_map_ee65261[] = {
+ NSPAIR(_ZN7ee65261C1Ev),
+ NSPAIR(_ZN7ee65261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee65261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65261[];
+extern void _ZN7ee652613barEv();
+extern void _ZN7ee652613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652613fooEv,_ZTv0_n12_N7ee652613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652613fooEv,_ZThn12_N7ee652613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652613barEv,_ZTv0_n16_N7ee652613barEv)();
+extern void ABISELECT(_ZThn16_N7ee652613barEv,_ZThn12_N7ee652613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65261[0]),
+ (VTBL_ENTRY)&_ZN7ee652613barEv,
+ (VTBL_ENTRY)&_ZN7ee652613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652613fooEv,_ZTv0_n12_N7ee652613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652613barEv,_ZTv0_n16_N7ee652613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee65261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee65261[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee65261[] = {
+ {&(_ZTV7ee65261[3]), 3,11},
+ {&(_tg__ZTV6dd5261__7ee65261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee65261[4]), 4,6},
+ {&(_ZTV7ee65261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65261[];
+extern VTBL_ENTRY _ZTV7ee65261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65261[];
+static VTBL_ENTRY alt_thunk_names608[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn12_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652613barEv,_ZTv0_n16_N7ee652613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652613barEv,_ZThn12_N7ee652613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652613fooEv,_ZTv0_n12_N7ee652613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652613fooEv,_ZThn12_N7ee652613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65261 = { "ee65261", // class name
+ bases_ee65261, 4,
+ &(vtc_ee65261[0]), // expected_vtbl_contents
+ &(vtt_ee65261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65261),4, //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 ee75261 : virtual dd5261 {
+ int e;
+ virtual void foo(); // _ZN7ee752613fooEv
+ virtual void bar(); // _ZN7ee752613barEv
+ ~ee75261(); // tgen
+ ee75261(); // tgen
+};
+//SIG(1 ee75261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75261 ::foo(){vfunc_called(this, "_ZN7ee752613fooEv");}
+void ee75261 ::bar(){vfunc_called(this, "_ZN7ee752613barEv");}
+ee75261 ::~ee75261(){ note_dtor("ee75261", this);} // tgen
+ee75261 ::ee75261(){ note_ctor("ee75261", this);} // tgen
+
+static void Test_ee75261()
+{
+ extern Class_Descriptor cd_ee75261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75261, buf);
+ ee75261 *dp, &lv = *(dp=new (buf) ee75261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee75261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee75261");
+ check_base_class_offset(lv, (cc261*)(dd5261*), ABISELECT(32,16), "ee75261");
+ check_base_class_offset(lv, (dd5261*), ABISELECT(16,8), "ee75261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75261.e");
+ test_class_info(&lv, &cd_ee75261);
+ dp->~ee75261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75261(Test_ee75261, "ee75261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75261C1Ev();
+extern void _ZN7ee75261D1Ev();
+Name_Map name_map_ee75261[] = {
+ NSPAIR(_ZN7ee75261C1Ev),
+ NSPAIR(_ZN7ee75261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd5261;
+extern VTBL_ENTRY _ZTI6dd5261[];
+extern VTBL_ENTRY _ZTV6dd5261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5261[];
+static Base_Class bases_ee75261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd5261, 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 _ZTI7ee75261[];
+extern void _ZN7ee752613fooEv();
+extern void _ZN7ee752613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752613barEv,_ZTv0_n16_N7ee752613barEv)();
+extern void ABISELECT(_ZThn16_N7ee752613barEv,_ZThn8_N7ee752613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752613fooEv,_ZTv0_n12_N7ee752613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752613fooEv,_ZThn16_N7ee752613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752613barEv,_ZTv0_n16_N7ee752613barEv)();
+extern void ABISELECT(_ZThn32_N7ee752613barEv,_ZThn16_N7ee752613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75261[0]),
+ (VTBL_ENTRY)&_ZN7ee752613fooEv,
+ (VTBL_ENTRY)&_ZN7ee752613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752613barEv,_ZTv0_n16_N7ee752613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752613fooEv,_ZTv0_n12_N7ee752613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752613barEv,_ZTv0_n16_N7ee752613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75261[];
+extern void _ZN6dd52613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5261__7ee75261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN6dd52613barEv,
+};
+extern void _ZN5cc2613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv)();
+extern void ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd5261__7ee75261[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5261[0]),
+ (VTBL_ENTRY)&_ZN5cc2613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv),
+};
+static VTT_ENTRY vtt_ee75261[] = {
+ {&(_ZTV7ee75261[4]), 4,17},
+ {&(_ZTV7ee75261[10]), 10,17},
+ {&(_ZTV7ee75261[15]), 15,17},
+ {&(_tg__ZTV6dd5261__7ee75261[3]), 3,4},
+ {&(_tg__ZTV5cc261__6dd5261__7ee75261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75261[];
+extern VTBL_ENTRY _ZTV7ee75261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75261[];
+static VTBL_ENTRY alt_thunk_names609[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52613barEv,_ZTv0_n16_N6dd52613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52613barEv,_ZThn8_N6dd52613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752613fooEv,_ZTv0_n12_N7ee752613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752613fooEv,_ZThn16_N7ee752613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752613barEv,_ZTv0_n16_N7ee752613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752613barEv,_ZThn16_N7ee752613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752613barEv,_ZThn8_N7ee752613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75261 = { "ee75261", // class name
+ bases_ee75261, 4,
+ &(vtc_ee75261[0]), // expected_vtbl_contents
+ &(vtt_ee75261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75261),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75261),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names609,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6261 : cc261 {
+ int d;
+ virtual void bar(); // _ZN6dd62613barEv
+ virtual void foo(); // _ZN6dd62613fooEv
+ ~dd6261(); // tgen
+ dd6261(); // tgen
+};
+//SIG(-1 dd6261) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6261 ::bar(){vfunc_called(this, "_ZN6dd62613barEv");}
+void dd6261 ::foo(){vfunc_called(this, "_ZN6dd62613fooEv");}
+dd6261 ::~dd6261(){ note_dtor("dd6261", this);} // tgen
+dd6261 ::dd6261(){ note_ctor("dd6261", this);} // tgen
+
+static void Test_dd6261()
+{
+ extern Class_Descriptor cd_dd6261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6261, buf);
+ dd6261 *dp, &lv = *(dp=new (buf) dd6261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), 0, "dd6261");
+ check_base_class_offset(lv, (bb61*)(cc261*), 0, "dd6261");
+ check_base_class_offset(lv, (cc261*), 0, "dd6261");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6261.d");
+ test_class_info(&lv, &cd_dd6261);
+ dp->~dd6261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6261(Test_dd6261, "dd6261", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6261C1Ev();
+extern void _ZN6dd6261D1Ev();
+Name_Map name_map_dd6261[] = {
+ NSPAIR(_ZN6dd6261C1Ev),
+ NSPAIR(_ZN6dd6261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd6261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6261[];
+extern void _ZN6dd62613fooEv();
+extern void _ZN6dd62613barEv();
+static VTBL_ENTRY vtc_dd6261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6261[0]),
+ (VTBL_ENTRY)&_ZN6dd62613fooEv,
+ (VTBL_ENTRY)&_ZN6dd62613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+Class_Descriptor cd_dd6261 = { "dd6261", // class name
+ bases_dd6261, 3,
+ &(vtc_dd6261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6261),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 ee06261 : dd6261 {
+ int e;
+ ~ee06261(); // tgen
+ ee06261(); // tgen
+};
+//SIG(1 ee06261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06261 ::~ee06261(){ note_dtor("ee06261", this);} // tgen
+ee06261 ::ee06261(){ note_ctor("ee06261", this);} // tgen
+
+static void Test_ee06261()
+{
+ extern Class_Descriptor cd_ee06261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06261, buf);
+ ee06261 *dp, &lv = *(dp=new (buf) ee06261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), 0, "ee06261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), 0, "ee06261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), 0, "ee06261");
+ check_base_class_offset(lv, (dd6261*), 0, "ee06261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06261.e");
+ test_class_info(&lv, &cd_ee06261);
+ dp->~ee06261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06261(Test_ee06261, "ee06261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06261C1Ev();
+extern void _ZN7ee06261D1Ev();
+Name_Map name_map_ee06261[] = {
+ NSPAIR(_ZN7ee06261C1Ev),
+ NSPAIR(_ZN7ee06261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee06261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, 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 _ZTI7ee06261[];
+extern void _ZN6dd62613fooEv();
+extern void _ZN6dd62613barEv();
+static VTBL_ENTRY vtc_ee06261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06261[0]),
+ (VTBL_ENTRY)&_ZN6dd62613fooEv,
+ (VTBL_ENTRY)&_ZN6dd62613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06261[];
+extern VTBL_ENTRY _ZTV7ee06261[];
+Class_Descriptor cd_ee06261 = { "ee06261", // class name
+ bases_ee06261, 4,
+ &(vtc_ee06261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06261),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 ee16261 : virtual dd6261 {
+ int e;
+ ~ee16261(); // tgen
+ ee16261(); // tgen
+};
+//SIG(1 ee16261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16261 ::~ee16261(){ note_dtor("ee16261", this);} // tgen
+ee16261 ::ee16261(){ note_ctor("ee16261", this);} // tgen
+
+static void Test_ee16261()
+{
+ extern Class_Descriptor cd_ee16261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16261, buf);
+ ee16261 *dp, &lv = *(dp=new (buf) ee16261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee16261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee16261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), ABISELECT(16,8), "ee16261");
+ check_base_class_offset(lv, (dd6261*), ABISELECT(16,8), "ee16261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16261.e");
+ test_class_info(&lv, &cd_ee16261);
+ dp->~ee16261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16261(Test_ee16261, "ee16261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16261C1Ev();
+extern void _ZN7ee16261D1Ev();
+Name_Map name_map_ee16261[] = {
+ NSPAIR(_ZN7ee16261C1Ev),
+ NSPAIR(_ZN7ee16261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee16261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, 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 _ZTI7ee16261[];
+extern void _ZN6dd62613fooEv();
+extern void _ZN6dd62613barEv();
+static VTBL_ENTRY vtc_ee16261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16261[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16261[0]),
+ (VTBL_ENTRY)&_ZN6dd62613fooEv,
+ (VTBL_ENTRY)&_ZN6dd62613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16261[];
+static VTT_ENTRY vtt_ee16261[] = {
+ {&(_ZTV7ee16261[3]), 3,9},
+ {&(_ZTV7ee16261[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16261[];
+extern VTBL_ENTRY _ZTV7ee16261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16261[];
+Class_Descriptor cd_ee16261 = { "ee16261", // class name
+ bases_ee16261, 4,
+ &(vtc_ee16261[0]), // expected_vtbl_contents
+ &(vtt_ee16261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16261),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16261),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 ee26261 : dd6261 {
+ int e;
+ virtual void foo(); // _ZN7ee262613fooEv
+ ~ee26261(); // tgen
+ ee26261(); // tgen
+};
+//SIG(1 ee26261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26261 ::foo(){vfunc_called(this, "_ZN7ee262613fooEv");}
+ee26261 ::~ee26261(){ note_dtor("ee26261", this);} // tgen
+ee26261 ::ee26261(){ note_ctor("ee26261", this);} // tgen
+
+static void Test_ee26261()
+{
+ extern Class_Descriptor cd_ee26261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26261, buf);
+ ee26261 *dp, &lv = *(dp=new (buf) ee26261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), 0, "ee26261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), 0, "ee26261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), 0, "ee26261");
+ check_base_class_offset(lv, (dd6261*), 0, "ee26261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26261.e");
+ test_class_info(&lv, &cd_ee26261);
+ dp->~ee26261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26261(Test_ee26261, "ee26261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26261C1Ev();
+extern void _ZN7ee26261D1Ev();
+Name_Map name_map_ee26261[] = {
+ NSPAIR(_ZN7ee26261C1Ev),
+ NSPAIR(_ZN7ee26261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee26261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26261[];
+extern void _ZN7ee262613fooEv();
+extern void _ZN6dd62613barEv();
+static VTBL_ENTRY vtc_ee26261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26261[0]),
+ (VTBL_ENTRY)&_ZN7ee262613fooEv,
+ (VTBL_ENTRY)&_ZN6dd62613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26261[];
+extern VTBL_ENTRY _ZTV7ee26261[];
+Class_Descriptor cd_ee26261 = { "ee26261", // class name
+ bases_ee26261, 4,
+ &(vtc_ee26261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26261),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 ee36261 : virtual dd6261 {
+ int e;
+ virtual void foo(); // _ZN7ee362613fooEv
+ ~ee36261(); // tgen
+ ee36261(); // tgen
+};
+//SIG(1 ee36261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36261 ::foo(){vfunc_called(this, "_ZN7ee362613fooEv");}
+ee36261 ::~ee36261(){ note_dtor("ee36261", this);} // tgen
+ee36261 ::ee36261(){ note_ctor("ee36261", this);} // tgen
+
+static void Test_ee36261()
+{
+ extern Class_Descriptor cd_ee36261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36261, buf);
+ ee36261 *dp, &lv = *(dp=new (buf) ee36261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee36261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee36261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), ABISELECT(16,8), "ee36261");
+ check_base_class_offset(lv, (dd6261*), ABISELECT(16,8), "ee36261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36261.e");
+ test_class_info(&lv, &cd_ee36261);
+ dp->~ee36261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36261(Test_ee36261, "ee36261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36261C1Ev();
+extern void _ZN7ee36261D1Ev();
+Name_Map name_map_ee36261[] = {
+ NSPAIR(_ZN7ee36261C1Ev),
+ NSPAIR(_ZN7ee36261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee36261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, ABISELECT(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 _ZTI7ee36261[];
+extern void _ZN7ee362613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362613fooEv,_ZTv0_n12_N7ee362613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362613fooEv,_ZThn8_N7ee362613fooEv)() __attribute__((weak));
+extern void _ZN6dd62613barEv();
+static VTBL_ENTRY vtc_ee36261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36261[0]),
+ (VTBL_ENTRY)&_ZN7ee362613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362613fooEv,_ZTv0_n12_N7ee362613fooEv),
+ (VTBL_ENTRY)&_ZN6dd62613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36261[];
+static VTT_ENTRY vtt_ee36261[] = {
+ {&(_ZTV7ee36261[3]), 3,10},
+ {&(_ZTV7ee36261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36261[];
+extern VTBL_ENTRY _ZTV7ee36261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36261[];
+static VTBL_ENTRY alt_thunk_names610[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362613fooEv,_ZTv0_n12_N7ee362613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362613fooEv,_ZThn8_N7ee362613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36261 = { "ee36261", // class name
+ bases_ee36261, 4,
+ &(vtc_ee36261[0]), // expected_vtbl_contents
+ &(vtt_ee36261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36261),2, //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 ee46261 : dd6261 {
+ int e;
+ virtual void bar(); // _ZN7ee462613barEv
+ ~ee46261(); // tgen
+ ee46261(); // tgen
+};
+//SIG(1 ee46261) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46261 ::bar(){vfunc_called(this, "_ZN7ee462613barEv");}
+ee46261 ::~ee46261(){ note_dtor("ee46261", this);} // tgen
+ee46261 ::ee46261(){ note_ctor("ee46261", this);} // tgen
+
+static void Test_ee46261()
+{
+ extern Class_Descriptor cd_ee46261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46261, buf);
+ ee46261 *dp, &lv = *(dp=new (buf) ee46261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), 0, "ee46261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), 0, "ee46261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), 0, "ee46261");
+ check_base_class_offset(lv, (dd6261*), 0, "ee46261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46261.e");
+ test_class_info(&lv, &cd_ee46261);
+ dp->~ee46261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46261(Test_ee46261, "ee46261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46261C1Ev();
+extern void _ZN7ee46261D1Ev();
+Name_Map name_map_ee46261[] = {
+ NSPAIR(_ZN7ee46261C1Ev),
+ NSPAIR(_ZN7ee46261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee46261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46261[];
+extern void _ZN6dd62613fooEv();
+extern void _ZN7ee462613barEv();
+static VTBL_ENTRY vtc_ee46261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46261[0]),
+ (VTBL_ENTRY)&_ZN6dd62613fooEv,
+ (VTBL_ENTRY)&_ZN7ee462613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46261[];
+extern VTBL_ENTRY _ZTV7ee46261[];
+Class_Descriptor cd_ee46261 = { "ee46261", // class name
+ bases_ee46261, 4,
+ &(vtc_ee46261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46261),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 ee56261 : virtual dd6261 {
+ int e;
+ virtual void bar(); // _ZN7ee562613barEv
+ ~ee56261(); // tgen
+ ee56261(); // tgen
+};
+//SIG(1 ee56261) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56261 ::bar(){vfunc_called(this, "_ZN7ee562613barEv");}
+ee56261 ::~ee56261(){ note_dtor("ee56261", this);} // tgen
+ee56261 ::ee56261(){ note_ctor("ee56261", this);} // tgen
+
+static void Test_ee56261()
+{
+ extern Class_Descriptor cd_ee56261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56261, buf);
+ ee56261 *dp, &lv = *(dp=new (buf) ee56261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee56261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee56261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), ABISELECT(16,8), "ee56261");
+ check_base_class_offset(lv, (dd6261*), ABISELECT(16,8), "ee56261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56261.e");
+ test_class_info(&lv, &cd_ee56261);
+ dp->~ee56261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56261(Test_ee56261, "ee56261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56261C1Ev();
+extern void _ZN7ee56261D1Ev();
+Name_Map name_map_ee56261[] = {
+ NSPAIR(_ZN7ee56261C1Ev),
+ NSPAIR(_ZN7ee56261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee56261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, ABISELECT(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 _ZTI7ee56261[];
+extern void _ZN7ee562613barEv();
+extern void _ZN6dd62613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562613barEv,_ZTv0_n16_N7ee562613barEv)();
+extern void ABISELECT(_ZThn16_N7ee562613barEv,_ZThn8_N7ee562613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56261[0]),
+ (VTBL_ENTRY)&_ZN7ee562613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56261[0]),
+ (VTBL_ENTRY)&_ZN6dd62613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562613barEv,_ZTv0_n16_N7ee562613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56261[];
+static VTT_ENTRY vtt_ee56261[] = {
+ {&(_ZTV7ee56261[3]), 3,10},
+ {&(_ZTV7ee56261[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56261[];
+extern VTBL_ENTRY _ZTV7ee56261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56261[];
+static VTBL_ENTRY alt_thunk_names611[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562613barEv,_ZTv0_n16_N7ee562613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562613barEv,_ZThn8_N7ee562613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56261 = { "ee56261", // class name
+ bases_ee56261, 4,
+ &(vtc_ee56261[0]), // expected_vtbl_contents
+ &(vtt_ee56261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56261),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56261),2, //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 ee66261 : dd6261 {
+ int e;
+ virtual void foo(); // _ZN7ee662613fooEv
+ virtual void bar(); // _ZN7ee662613barEv
+ ~ee66261(); // tgen
+ ee66261(); // tgen
+};
+//SIG(1 ee66261) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66261 ::foo(){vfunc_called(this, "_ZN7ee662613fooEv");}
+void ee66261 ::bar(){vfunc_called(this, "_ZN7ee662613barEv");}
+ee66261 ::~ee66261(){ note_dtor("ee66261", this);} // tgen
+ee66261 ::ee66261(){ note_ctor("ee66261", this);} // tgen
+
+static void Test_ee66261()
+{
+ extern Class_Descriptor cd_ee66261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66261, buf);
+ ee66261 *dp, &lv = *(dp=new (buf) ee66261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), 0, "ee66261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), 0, "ee66261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), 0, "ee66261");
+ check_base_class_offset(lv, (dd6261*), 0, "ee66261");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66261.e");
+ test_class_info(&lv, &cd_ee66261);
+ dp->~ee66261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66261(Test_ee66261, "ee66261", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66261C1Ev();
+extern void _ZN7ee66261D1Ev();
+Name_Map name_map_ee66261[] = {
+ NSPAIR(_ZN7ee66261C1Ev),
+ NSPAIR(_ZN7ee66261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee66261[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66261[];
+extern void _ZN7ee662613fooEv();
+extern void _ZN7ee662613barEv();
+static VTBL_ENTRY vtc_ee66261[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66261[0]),
+ (VTBL_ENTRY)&_ZN7ee662613fooEv,
+ (VTBL_ENTRY)&_ZN7ee662613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66261[];
+extern VTBL_ENTRY _ZTV7ee66261[];
+Class_Descriptor cd_ee66261 = { "ee66261", // class name
+ bases_ee66261, 4,
+ &(vtc_ee66261[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66261),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 ee76261 : virtual dd6261 {
+ int e;
+ virtual void foo(); // _ZN7ee762613fooEv
+ virtual void bar(); // _ZN7ee762613barEv
+ ~ee76261(); // tgen
+ ee76261(); // tgen
+};
+//SIG(1 ee76261) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76261 ::foo(){vfunc_called(this, "_ZN7ee762613fooEv");}
+void ee76261 ::bar(){vfunc_called(this, "_ZN7ee762613barEv");}
+ee76261 ::~ee76261(){ note_dtor("ee76261", this);} // tgen
+ee76261 ::ee76261(){ note_ctor("ee76261", this);} // tgen
+
+static void Test_ee76261()
+{
+ extern Class_Descriptor cd_ee76261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76261, buf);
+ ee76261 *dp, &lv = *(dp=new (buf) ee76261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee76261");
+ check_base_class_offset(lv, (bb61*)(cc261*)(dd6261*), ABISELECT(16,8), "ee76261");
+ check_base_class_offset(lv, (cc261*)(dd6261*), ABISELECT(16,8), "ee76261");
+ check_base_class_offset(lv, (dd6261*), ABISELECT(16,8), "ee76261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76261.e");
+ test_class_info(&lv, &cd_ee76261);
+ dp->~ee76261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76261(Test_ee76261, "ee76261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76261C1Ev();
+extern void _ZN7ee76261D1Ev();
+Name_Map name_map_ee76261[] = {
+ NSPAIR(_ZN7ee76261C1Ev),
+ NSPAIR(_ZN7ee76261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd6261;
+extern VTBL_ENTRY _ZTI6dd6261[];
+extern VTBL_ENTRY _ZTV6dd6261[];
+static Base_Class bases_ee76261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6261, ABISELECT(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 _ZTI7ee76261[];
+extern void _ZN7ee762613fooEv();
+extern void _ZN7ee762613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762613fooEv,_ZTv0_n12_N7ee762613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762613fooEv,_ZThn8_N7ee762613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762613barEv,_ZTv0_n16_N7ee762613barEv)();
+extern void ABISELECT(_ZThn16_N7ee762613barEv,_ZThn8_N7ee762613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76261[0]),
+ (VTBL_ENTRY)&_ZN7ee762613fooEv,
+ (VTBL_ENTRY)&_ZN7ee762613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762613fooEv,_ZTv0_n12_N7ee762613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762613barEv,_ZTv0_n16_N7ee762613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76261[];
+static VTT_ENTRY vtt_ee76261[] = {
+ {&(_ZTV7ee76261[3]), 3,11},
+ {&(_ZTV7ee76261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76261[];
+extern VTBL_ENTRY _ZTV7ee76261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76261[];
+static VTBL_ENTRY alt_thunk_names612[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762613barEv,_ZTv0_n16_N7ee762613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762613barEv,_ZThn8_N7ee762613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762613fooEv,_ZTv0_n12_N7ee762613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762613fooEv,_ZThn8_N7ee762613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76261 = { "ee76261", // class name
+ bases_ee76261, 4,
+ &(vtc_ee76261[0]), // expected_vtbl_contents
+ &(vtt_ee76261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76261),2, //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 dd7261 : virtual cc261 {
+ int d;
+ virtual void bar(); // _ZN6dd72613barEv
+ virtual void foo(); // _ZN6dd72613fooEv
+ ~dd7261(); // tgen
+ dd7261(); // tgen
+};
+//SIG(-1 dd7261) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7261 ::bar(){vfunc_called(this, "_ZN6dd72613barEv");}
+void dd7261 ::foo(){vfunc_called(this, "_ZN6dd72613fooEv");}
+dd7261 ::~dd7261(){ note_dtor("dd7261", this);} // tgen
+dd7261 ::dd7261(){ note_ctor("dd7261", this);} // tgen
+
+static void Test_dd7261()
+{
+ extern Class_Descriptor cd_dd7261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7261, buf);
+ dd7261 *dp, &lv = *(dp=new (buf) dd7261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,8), "dd7261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,8), "dd7261");
+ check_base_class_offset(lv, (cc261*), ABISELECT(16,8), "dd7261");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7261.d");
+ test_class_info(&lv, &cd_dd7261);
+ dp->~dd7261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7261(Test_dd7261, "dd7261", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7261C1Ev();
+extern void _ZN6dd7261D1Ev();
+Name_Map name_map_dd7261[] = {
+ NSPAIR(_ZN6dd7261C1Ev),
+ NSPAIR(_ZN6dd7261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+static Base_Class bases_dd7261[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, ABISELECT(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 _ZTI6dd7261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7261[];
+static VTT_ENTRY vtt_dd7261[] = {
+ {&(_ZTV6dd7261[3]), 3,11},
+ {&(_ZTV6dd7261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static VTBL_ENTRY alt_thunk_names613[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7261 = { "dd7261", // class name
+ bases_dd7261, 3,
+ &(vtc_dd7261[0]), // expected_vtbl_contents
+ &(vtt_dd7261[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7261),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names613,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07261 : dd7261 {
+ int e;
+ ~ee07261(); // tgen
+ ee07261(); // tgen
+};
+//SIG(1 ee07261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07261 ::~ee07261(){ note_dtor("ee07261", this);} // tgen
+ee07261 ::ee07261(){ note_ctor("ee07261", this);} // tgen
+
+static void Test_ee07261()
+{
+ extern Class_Descriptor cd_ee07261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07261, buf);
+ ee07261 *dp, &lv = *(dp=new (buf) ee07261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee07261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee07261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(16,12), "ee07261");
+ check_base_class_offset(lv, (dd7261*), 0, "ee07261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07261.e");
+ test_class_info(&lv, &cd_ee07261);
+ dp->~ee07261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07261(Test_ee07261, "ee07261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07261C1Ev();
+extern void _ZN7ee07261D1Ev();
+Name_Map name_map_ee07261[] = {
+ NSPAIR(_ZN7ee07261C1Ev),
+ NSPAIR(_ZN7ee07261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee07261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee07261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee07261[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee07261[] = {
+ {&(_ZTV7ee07261[3]), 3,11},
+ {&(_tg__ZTV6dd7261__7ee07261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee07261[4]), 4,6},
+ {&(_ZTV7ee07261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07261[];
+extern VTBL_ENTRY _ZTV7ee07261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07261[];
+static VTBL_ENTRY alt_thunk_names614[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07261 = { "ee07261", // class name
+ bases_ee07261, 4,
+ &(vtc_ee07261[0]), // expected_vtbl_contents
+ &(vtt_ee07261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07261),4, //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 ee17261 : virtual dd7261 {
+ int e;
+ ~ee17261(); // tgen
+ ee17261(); // tgen
+};
+//SIG(1 ee17261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17261 ::~ee17261(){ note_dtor("ee17261", this);} // tgen
+ee17261 ::ee17261(){ note_ctor("ee17261", this);} // tgen
+
+static void Test_ee17261()
+{
+ extern Class_Descriptor cd_ee17261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17261, buf);
+ ee17261 *dp, &lv = *(dp=new (buf) ee17261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee17261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee17261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(32,16), "ee17261");
+ check_base_class_offset(lv, (dd7261*), ABISELECT(16,8), "ee17261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17261.e");
+ test_class_info(&lv, &cd_ee17261);
+ dp->~ee17261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17261(Test_ee17261, "ee17261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17261C1Ev();
+extern void _ZN7ee17261D1Ev();
+Name_Map name_map_ee17261[] = {
+ NSPAIR(_ZN7ee17261C1Ev),
+ NSPAIR(_ZN7ee17261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee17261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, 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 _ZTI7ee17261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17261[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee17261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee17261[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee17261[] = {
+ {&(_ZTV7ee17261[4]), 4,17},
+ {&(_ZTV7ee17261[9]), 9,17},
+ {&(_ZTV7ee17261[15]), 15,17},
+ {&(_tg__ZTV6dd7261__7ee17261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee17261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17261[];
+extern VTBL_ENTRY _ZTV7ee17261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17261[];
+static VTBL_ENTRY alt_thunk_names615[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17261 = { "ee17261", // class name
+ bases_ee17261, 4,
+ &(vtc_ee17261[0]), // expected_vtbl_contents
+ &(vtt_ee17261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17261),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17261),5, //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 ee27261 : dd7261 {
+ int e;
+ virtual void foo(); // _ZN7ee272613fooEv
+ ~ee27261(); // tgen
+ ee27261(); // tgen
+};
+//SIG(1 ee27261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27261 ::foo(){vfunc_called(this, "_ZN7ee272613fooEv");}
+ee27261 ::~ee27261(){ note_dtor("ee27261", this);} // tgen
+ee27261 ::ee27261(){ note_ctor("ee27261", this);} // tgen
+
+static void Test_ee27261()
+{
+ extern Class_Descriptor cd_ee27261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27261, buf);
+ ee27261 *dp, &lv = *(dp=new (buf) ee27261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee27261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee27261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(16,12), "ee27261");
+ check_base_class_offset(lv, (dd7261*), 0, "ee27261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27261.e");
+ test_class_info(&lv, &cd_ee27261);
+ dp->~ee27261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27261(Test_ee27261, "ee27261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27261C1Ev();
+extern void _ZN7ee27261D1Ev();
+Name_Map name_map_ee27261[] = {
+ NSPAIR(_ZN7ee27261C1Ev),
+ NSPAIR(_ZN7ee27261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee27261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN7ee272613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272613fooEv,_ZTv0_n12_N7ee272613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272613fooEv,_ZThn12_N7ee272613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN7ee272613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272613fooEv,_ZTv0_n12_N7ee272613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee27261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee27261[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee27261[] = {
+ {&(_ZTV7ee27261[3]), 3,11},
+ {&(_tg__ZTV6dd7261__7ee27261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee27261[4]), 4,6},
+ {&(_ZTV7ee27261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27261[];
+extern VTBL_ENTRY _ZTV7ee27261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27261[];
+static VTBL_ENTRY alt_thunk_names616[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272613fooEv,_ZTv0_n12_N7ee272613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272613fooEv,_ZThn12_N7ee272613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27261 = { "ee27261", // class name
+ bases_ee27261, 4,
+ &(vtc_ee27261[0]), // expected_vtbl_contents
+ &(vtt_ee27261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27261),4, //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 ee37261 : virtual dd7261 {
+ int e;
+ virtual void foo(); // _ZN7ee372613fooEv
+ ~ee37261(); // tgen
+ ee37261(); // tgen
+};
+//SIG(1 ee37261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37261 ::foo(){vfunc_called(this, "_ZN7ee372613fooEv");}
+ee37261 ::~ee37261(){ note_dtor("ee37261", this);} // tgen
+ee37261 ::ee37261(){ note_ctor("ee37261", this);} // tgen
+
+static void Test_ee37261()
+{
+ extern Class_Descriptor cd_ee37261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37261, buf);
+ ee37261 *dp, &lv = *(dp=new (buf) ee37261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee37261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee37261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(32,16), "ee37261");
+ check_base_class_offset(lv, (dd7261*), ABISELECT(16,8), "ee37261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37261.e");
+ test_class_info(&lv, &cd_ee37261);
+ dp->~ee37261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37261(Test_ee37261, "ee37261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37261C1Ev();
+extern void _ZN7ee37261D1Ev();
+Name_Map name_map_ee37261[] = {
+ NSPAIR(_ZN7ee37261C1Ev),
+ NSPAIR(_ZN7ee37261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee37261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, ABISELECT(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 _ZTI7ee37261[];
+extern void _ZN7ee372613fooEv();
+extern void _ZN6dd72613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372613fooEv,_ZTv0_n20_N7ee372613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372613fooEv,_ZThn8_N7ee372613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372613fooEv,_ZTv0_n12_N7ee372613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372613fooEv,_ZThn16_N7ee372613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37261[0]),
+ (VTBL_ENTRY)&_ZN7ee372613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372613fooEv,_ZTv0_n20_N7ee372613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372613fooEv,_ZTv0_n12_N7ee372613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee37261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee37261[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee37261[] = {
+ {&(_ZTV7ee37261[4]), 4,18},
+ {&(_ZTV7ee37261[10]), 10,18},
+ {&(_ZTV7ee37261[16]), 16,18},
+ {&(_tg__ZTV6dd7261__7ee37261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee37261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37261[];
+extern VTBL_ENTRY _ZTV7ee37261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37261[];
+static VTBL_ENTRY alt_thunk_names617[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372613fooEv,_ZTv0_n12_N7ee372613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372613fooEv,_ZThn16_N7ee372613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372613fooEv,_ZTv0_n20_N7ee372613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372613fooEv,_ZThn8_N7ee372613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37261 = { "ee37261", // class name
+ bases_ee37261, 4,
+ &(vtc_ee37261[0]), // expected_vtbl_contents
+ &(vtt_ee37261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37261),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37261),5, //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 ee47261 : dd7261 {
+ int e;
+ virtual void bar(); // _ZN7ee472613barEv
+ ~ee47261(); // tgen
+ ee47261(); // tgen
+};
+//SIG(1 ee47261) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47261 ::bar(){vfunc_called(this, "_ZN7ee472613barEv");}
+ee47261 ::~ee47261(){ note_dtor("ee47261", this);} // tgen
+ee47261 ::ee47261(){ note_ctor("ee47261", this);} // tgen
+
+static void Test_ee47261()
+{
+ extern Class_Descriptor cd_ee47261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47261, buf);
+ ee47261 *dp, &lv = *(dp=new (buf) ee47261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee47261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee47261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(16,12), "ee47261");
+ check_base_class_offset(lv, (dd7261*), 0, "ee47261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47261.e");
+ test_class_info(&lv, &cd_ee47261);
+ dp->~ee47261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47261(Test_ee47261, "ee47261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47261C1Ev();
+extern void _ZN7ee47261D1Ev();
+Name_Map name_map_ee47261[] = {
+ NSPAIR(_ZN7ee47261C1Ev),
+ NSPAIR(_ZN7ee47261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee47261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47261[];
+extern void _ZN7ee472613barEv();
+extern void _ZN6dd72613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee472613barEv,_ZTv0_n16_N7ee472613barEv)();
+extern void ABISELECT(_ZThn16_N7ee472613barEv,_ZThn12_N7ee472613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47261[0]),
+ (VTBL_ENTRY)&_ZN7ee472613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472613barEv,_ZTv0_n16_N7ee472613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee47261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee47261[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee47261[] = {
+ {&(_ZTV7ee47261[3]), 3,11},
+ {&(_tg__ZTV6dd7261__7ee47261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee47261[4]), 4,6},
+ {&(_ZTV7ee47261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47261[];
+extern VTBL_ENTRY _ZTV7ee47261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47261[];
+static VTBL_ENTRY alt_thunk_names618[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472613barEv,_ZTv0_n16_N7ee472613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472613barEv,_ZThn12_N7ee472613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47261 = { "ee47261", // class name
+ bases_ee47261, 4,
+ &(vtc_ee47261[0]), // expected_vtbl_contents
+ &(vtt_ee47261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47261),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names618,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57261 : virtual dd7261 {
+ int e;
+ virtual void bar(); // _ZN7ee572613barEv
+ ~ee57261(); // tgen
+ ee57261(); // tgen
+};
+//SIG(1 ee57261) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57261 ::bar(){vfunc_called(this, "_ZN7ee572613barEv");}
+ee57261 ::~ee57261(){ note_dtor("ee57261", this);} // tgen
+ee57261 ::ee57261(){ note_ctor("ee57261", this);} // tgen
+
+static void Test_ee57261()
+{
+ extern Class_Descriptor cd_ee57261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57261, buf);
+ ee57261 *dp, &lv = *(dp=new (buf) ee57261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee57261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee57261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(32,16), "ee57261");
+ check_base_class_offset(lv, (dd7261*), ABISELECT(16,8), "ee57261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57261.e");
+ test_class_info(&lv, &cd_ee57261);
+ dp->~ee57261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57261(Test_ee57261, "ee57261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57261C1Ev();
+extern void _ZN7ee57261D1Ev();
+Name_Map name_map_ee57261[] = {
+ NSPAIR(_ZN7ee57261C1Ev),
+ NSPAIR(_ZN7ee57261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee57261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, ABISELECT(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 _ZTI7ee57261[];
+extern void _ZN7ee572613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572613barEv,_ZTv0_n16_N7ee572613barEv)();
+extern void ABISELECT(_ZThn16_N7ee572613barEv,_ZThn8_N7ee572613barEv)() __attribute__((weak));
+extern void _ZN6dd72613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee572613barEv,_ZTv0_n16_N7ee572613barEv)();
+extern void ABISELECT(_ZThn32_N7ee572613barEv,_ZThn16_N7ee572613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57261[0]),
+ (VTBL_ENTRY)&_ZN7ee572613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572613barEv,_ZTv0_n16_N7ee572613barEv),
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572613barEv,_ZTv0_n16_N7ee572613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee57261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee57261[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee57261[] = {
+ {&(_ZTV7ee57261[4]), 4,18},
+ {&(_ZTV7ee57261[10]), 10,18},
+ {&(_ZTV7ee57261[16]), 16,18},
+ {&(_tg__ZTV6dd7261__7ee57261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee57261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57261[];
+extern VTBL_ENTRY _ZTV7ee57261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57261[];
+static VTBL_ENTRY alt_thunk_names619[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572613barEv,_ZTv0_n16_N7ee572613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572613barEv,_ZThn16_N7ee572613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572613barEv,_ZThn8_N7ee572613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57261 = { "ee57261", // class name
+ bases_ee57261, 4,
+ &(vtc_ee57261[0]), // expected_vtbl_contents
+ &(vtt_ee57261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57261),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57261),5, //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 ee67261 : dd7261 {
+ int e;
+ virtual void foo(); // _ZN7ee672613fooEv
+ virtual void bar(); // _ZN7ee672613barEv
+ ~ee67261(); // tgen
+ ee67261(); // tgen
+};
+//SIG(1 ee67261) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67261 ::foo(){vfunc_called(this, "_ZN7ee672613fooEv");}
+void ee67261 ::bar(){vfunc_called(this, "_ZN7ee672613barEv");}
+ee67261 ::~ee67261(){ note_dtor("ee67261", this);} // tgen
+ee67261 ::ee67261(){ note_ctor("ee67261", this);} // tgen
+
+static void Test_ee67261()
+{
+ extern Class_Descriptor cd_ee67261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67261, buf);
+ ee67261 *dp, &lv = *(dp=new (buf) ee67261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(16,12), "ee67261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(16,12), "ee67261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(16,12), "ee67261");
+ check_base_class_offset(lv, (dd7261*), 0, "ee67261");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67261.e");
+ test_class_info(&lv, &cd_ee67261);
+ dp->~ee67261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67261(Test_ee67261, "ee67261", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67261C1Ev();
+extern void _ZN7ee67261D1Ev();
+Name_Map name_map_ee67261[] = {
+ NSPAIR(_ZN7ee67261C1Ev),
+ NSPAIR(_ZN7ee67261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee67261[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67261[];
+extern void _ZN7ee672613barEv();
+extern void _ZN7ee672613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672613fooEv,_ZTv0_n12_N7ee672613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672613fooEv,_ZThn12_N7ee672613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672613barEv,_ZTv0_n16_N7ee672613barEv)();
+extern void ABISELECT(_ZThn16_N7ee672613barEv,_ZThn12_N7ee672613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67261[0]),
+ (VTBL_ENTRY)&_ZN7ee672613barEv,
+ (VTBL_ENTRY)&_ZN7ee672613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672613fooEv,_ZTv0_n12_N7ee672613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672613barEv,_ZTv0_n16_N7ee672613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee67261[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee67261[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee67261[] = {
+ {&(_ZTV7ee67261[3]), 3,11},
+ {&(_tg__ZTV6dd7261__7ee67261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee67261[4]), 4,6},
+ {&(_ZTV7ee67261[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67261[];
+extern VTBL_ENTRY _ZTV7ee67261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67261[];
+static VTBL_ENTRY alt_thunk_names620[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn12_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn12_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672613barEv,_ZTv0_n16_N7ee672613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672613barEv,_ZThn12_N7ee672613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672613fooEv,_ZTv0_n12_N7ee672613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672613fooEv,_ZThn12_N7ee672613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67261 = { "ee67261", // class name
+ bases_ee67261, 4,
+ &(vtc_ee67261[0]), // expected_vtbl_contents
+ &(vtt_ee67261[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67261),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67261),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67261),4, //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 ee77261 : virtual dd7261 {
+ int e;
+ virtual void foo(); // _ZN7ee772613fooEv
+ virtual void bar(); // _ZN7ee772613barEv
+ ~ee77261(); // tgen
+ ee77261(); // tgen
+};
+//SIG(1 ee77261) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77261 ::foo(){vfunc_called(this, "_ZN7ee772613fooEv");}
+void ee77261 ::bar(){vfunc_called(this, "_ZN7ee772613barEv");}
+ee77261 ::~ee77261(){ note_dtor("ee77261", this);} // tgen
+ee77261 ::ee77261(){ note_ctor("ee77261", this);} // tgen
+
+static void Test_ee77261()
+{
+ extern Class_Descriptor cd_ee77261;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77261, buf);
+ ee77261 *dp, &lv = *(dp=new (buf) ee77261());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77261)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77261)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc261*), ABISELECT(32,16), "ee77261");
+ check_base_class_offset(lv, (bb61*)(cc261*), ABISELECT(32,16), "ee77261");
+ check_base_class_offset(lv, (cc261*)(dd7261*), ABISELECT(32,16), "ee77261");
+ check_base_class_offset(lv, (dd7261*), ABISELECT(16,8), "ee77261");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77261.e");
+ test_class_info(&lv, &cd_ee77261);
+ dp->~ee77261();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77261(Test_ee77261, "ee77261", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77261C1Ev();
+extern void _ZN7ee77261D1Ev();
+Name_Map name_map_ee77261[] = {
+ NSPAIR(_ZN7ee77261C1Ev),
+ NSPAIR(_ZN7ee77261D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc261;
+extern VTBL_ENTRY _ZTI5cc261[];
+extern VTBL_ENTRY _ZTV5cc261[];
+extern Class_Descriptor cd_dd7261;
+extern VTBL_ENTRY _ZTI6dd7261[];
+extern VTBL_ENTRY _ZTV6dd7261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7261[];
+static Base_Class bases_ee77261[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc261, 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_dd7261, ABISELECT(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 _ZTI7ee77261[];
+extern void _ZN7ee772613fooEv();
+extern void _ZN7ee772613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772613barEv,_ZTv0_n16_N7ee772613barEv)();
+extern void ABISELECT(_ZThn16_N7ee772613barEv,_ZThn8_N7ee772613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772613fooEv,_ZTv0_n20_N7ee772613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772613fooEv,_ZThn8_N7ee772613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772613fooEv,_ZTv0_n12_N7ee772613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772613fooEv,_ZThn16_N7ee772613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772613barEv,_ZTv0_n16_N7ee772613barEv)();
+extern void ABISELECT(_ZThn32_N7ee772613barEv,_ZThn16_N7ee772613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77261[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77261[0]),
+ (VTBL_ENTRY)&_ZN7ee772613fooEv,
+ (VTBL_ENTRY)&_ZN7ee772613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772613barEv,_ZTv0_n16_N7ee772613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772613fooEv,_ZTv0_n20_N7ee772613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772613fooEv,_ZTv0_n12_N7ee772613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772613barEv,_ZTv0_n16_N7ee772613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77261[];
+extern void _ZN6dd72613barEv();
+extern void _ZN6dd72613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7261__7ee77261[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&_ZN6dd72613barEv,
+ (VTBL_ENTRY)&_ZN6dd72613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv)();
+extern void ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc261__6dd7261__7ee77261[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7261[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv),
+};
+static VTT_ENTRY vtt_ee77261[] = {
+ {&(_ZTV7ee77261[4]), 4,19},
+ {&(_ZTV7ee77261[11]), 11,19},
+ {&(_ZTV7ee77261[17]), 17,19},
+ {&(_tg__ZTV6dd7261__7ee77261[3]), 3,5},
+ {&(_tg__ZTV5cc261__6dd7261__7ee77261[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77261[];
+extern VTBL_ENTRY _ZTV7ee77261[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77261[];
+static VTBL_ENTRY alt_thunk_names621[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72613barEv,_ZTv0_n16_N6dd72613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613barEv,_ZThn8_N6dd72613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72613fooEv,_ZTv0_n12_N6dd72613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72613fooEv,_ZThn8_N6dd72613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772613fooEv,_ZTv0_n12_N7ee772613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772613fooEv,_ZThn16_N7ee772613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772613fooEv,_ZTv0_n20_N7ee772613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772613fooEv,_ZThn8_N7ee772613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772613barEv,_ZTv0_n16_N7ee772613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772613barEv,_ZThn16_N7ee772613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772613barEv,_ZThn8_N7ee772613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77261 = { "ee77261", // class name
+ bases_ee77261, 4,
+ &(vtc_ee77261[0]), // expected_vtbl_contents
+ &(vtt_ee77261[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77261),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77261),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77261),5, //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 cc361 : virtual bb61 {
+ int c;
+ virtual void foo(); // _ZN5cc3613fooEv
+ ~cc361(); // tgen
+ cc361(); // tgen
+};
+//SIG(-1 cc361) C1{ VBC2{ BC3{ v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc361 ::foo(){vfunc_called(this, "_ZN5cc3613fooEv");}
+cc361 ::~cc361(){ note_dtor("cc361", this);} // tgen
+cc361 ::cc361(){ note_ctor("cc361", this);} // tgen
+
+static void Test_cc361()
+{
+ extern Class_Descriptor cd_cc361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc361, buf);
+ cc361 *dp, &lv = *(dp=new (buf) cc361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,8), "cc361");
+ check_base_class_offset(lv, (bb61*), ABISELECT(16,8), "cc361");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc361.c");
+ test_class_info(&lv, &cd_cc361);
+ dp->~cc361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc361(Test_cc361, "cc361", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc361C1Ev();
+extern void _ZN5cc361D1Ev();
+Name_Map name_map_cc361[] = {
+ NSPAIR(_ZN5cc361C1Ev),
+ NSPAIR(_ZN5cc361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc361[] = {
+ // 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_bb61, ABISELECT(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 _ZTI5cc361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_cc361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV5cc361[];
+static VTT_ENTRY vtt_cc361[] = {
+ {&(_ZTV5cc361[3]), 3,10},
+ {&(_ZTV5cc361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static VTBL_ENTRY alt_thunk_names622[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc361 = { "cc361", // class name
+ bases_cc361, 2,
+ &(vtc_cc361[0]), // expected_vtbl_contents
+ &(vtt_cc361[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc361),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names622,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0361 : cc361 {
+ int d;
+ ~dd0361(); // tgen
+ dd0361(); // tgen
+};
+//SIG(-1 dd0361) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0361 ::~dd0361(){ note_dtor("dd0361", this);} // tgen
+dd0361 ::dd0361(){ note_ctor("dd0361", this);} // tgen
+
+static void Test_dd0361()
+{
+ extern Class_Descriptor cd_dd0361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0361, buf);
+ dd0361 *dp, &lv = *(dp=new (buf) dd0361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd0361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(16,12), "dd0361");
+ check_base_class_offset(lv, (cc361*), 0, "dd0361");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0361.d");
+ test_class_info(&lv, &cd_dd0361);
+ dp->~dd0361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0361(Test_dd0361, "dd0361", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0361C1Ev();
+extern void _ZN6dd0361D1Ev();
+Name_Map name_map_dd0361[] = {
+ NSPAIR(_ZN6dd0361C1Ev),
+ NSPAIR(_ZN6dd0361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd0361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd0361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd0361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd0361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd0361[] = {
+ {&(_ZTV6dd0361[3]), 3,10},
+ {&(_tg__ZTV5cc361__6dd0361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd0361[4]), 4,6},
+ {&(_ZTV6dd0361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static VTBL_ENTRY alt_thunk_names623[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0361 = { "dd0361", // class name
+ bases_dd0361, 3,
+ &(vtc_dd0361[0]), // expected_vtbl_contents
+ &(vtt_dd0361[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0361),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names623,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00361 : dd0361 {
+ int e;
+ ~ee00361(); // tgen
+ ee00361(); // tgen
+};
+//SIG(1 ee00361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00361 ::~ee00361(){ note_dtor("ee00361", this);} // tgen
+ee00361 ::ee00361(){ note_ctor("ee00361", this);} // tgen
+
+static void Test_ee00361()
+{
+ extern Class_Descriptor cd_ee00361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00361, buf);
+ ee00361 *dp, &lv = *(dp=new (buf) ee00361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee00361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(24,16), "ee00361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), 0, "ee00361");
+ check_base_class_offset(lv, (dd0361*), 0, "ee00361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00361.e");
+ test_class_info(&lv, &cd_ee00361);
+ dp->~ee00361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00361(Test_ee00361, "ee00361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00361C1Ev();
+extern void _ZN7ee00361D1Ev();
+Name_Map name_map_ee00361[] = {
+ NSPAIR(_ZN7ee00361C1Ev),
+ NSPAIR(_ZN7ee00361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee00361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee00361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee00361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee00361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee00361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee00361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee00361[] = {
+ {&(_ZTV7ee00361[3]), 3,10},
+ {&(_tg__ZTV6dd0361__7ee00361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee00361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee00361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee00361[4]), 4,6},
+ {&(_ZTV7ee00361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00361[];
+extern VTBL_ENTRY _ZTV7ee00361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00361[];
+static VTBL_ENTRY alt_thunk_names624[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00361 = { "ee00361", // class name
+ bases_ee00361, 4,
+ &(vtc_ee00361[0]), // expected_vtbl_contents
+ &(vtt_ee00361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00361),6, //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 ee10361 : virtual dd0361 {
+ int e;
+ ~ee10361(); // tgen
+ ee10361(); // tgen
+};
+//SIG(1 ee10361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10361 ::~ee10361(){ note_dtor("ee10361", this);} // tgen
+ee10361 ::ee10361(){ note_ctor("ee10361", this);} // tgen
+
+static void Test_ee10361()
+{
+ extern Class_Descriptor cd_ee10361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10361, buf);
+ ee10361 *dp, &lv = *(dp=new (buf) ee10361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee10361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(32,20), "ee10361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), ABISELECT(16,8), "ee10361");
+ check_base_class_offset(lv, (dd0361*), ABISELECT(16,8), "ee10361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10361.e");
+ test_class_info(&lv, &cd_ee10361);
+ dp->~ee10361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10361(Test_ee10361, "ee10361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10361C1Ev();
+extern void _ZN7ee10361D1Ev();
+Name_Map name_map_ee10361[] = {
+ NSPAIR(_ZN7ee10361C1Ev),
+ NSPAIR(_ZN7ee10361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee10361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, ABISELECT(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 _ZTI7ee10361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee10361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10361[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee10361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee10361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee10361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee10361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee10361[] = {
+ {&(_ZTV7ee10361[4]), 4,15},
+ {&(_ZTV7ee10361[8]), 8,15},
+ {&(_ZTV7ee10361[13]), 13,15},
+ {&(_tg__ZTV6dd0361__7ee10361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee10361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee10361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee10361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10361[];
+extern VTBL_ENTRY _ZTV7ee10361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10361[];
+static VTBL_ENTRY alt_thunk_names625[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10361 = { "ee10361", // class name
+ bases_ee10361, 4,
+ &(vtc_ee10361[0]), // expected_vtbl_contents
+ &(vtt_ee10361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10361),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10361),7, //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 ee20361 : dd0361 {
+ int e;
+ virtual void foo(); // _ZN7ee203613fooEv
+ ~ee20361(); // tgen
+ ee20361(); // tgen
+};
+//SIG(1 ee20361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20361 ::foo(){vfunc_called(this, "_ZN7ee203613fooEv");}
+ee20361 ::~ee20361(){ note_dtor("ee20361", this);} // tgen
+ee20361 ::ee20361(){ note_ctor("ee20361", this);} // tgen
+
+static void Test_ee20361()
+{
+ extern Class_Descriptor cd_ee20361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20361, buf);
+ ee20361 *dp, &lv = *(dp=new (buf) ee20361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee20361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(24,16), "ee20361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), 0, "ee20361");
+ check_base_class_offset(lv, (dd0361*), 0, "ee20361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20361.e");
+ test_class_info(&lv, &cd_ee20361);
+ dp->~ee20361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20361(Test_ee20361, "ee20361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20361C1Ev();
+extern void _ZN7ee20361D1Ev();
+Name_Map name_map_ee20361[] = {
+ NSPAIR(_ZN7ee20361C1Ev),
+ NSPAIR(_ZN7ee20361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee20361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20361[];
+extern void _ZN7ee203613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203613fooEv,_ZTv0_n12_N7ee203613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203613fooEv,_ZThn16_N7ee203613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee20361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20361[0]),
+ (VTBL_ENTRY)&_ZN7ee203613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203613fooEv,_ZTv0_n12_N7ee203613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee20361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee20361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee20361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee20361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee20361[] = {
+ {&(_ZTV7ee20361[3]), 3,10},
+ {&(_tg__ZTV6dd0361__7ee20361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee20361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee20361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee20361[4]), 4,6},
+ {&(_ZTV7ee20361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20361[];
+extern VTBL_ENTRY _ZTV7ee20361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20361[];
+static VTBL_ENTRY alt_thunk_names626[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203613fooEv,_ZTv0_n12_N7ee203613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203613fooEv,_ZThn16_N7ee203613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20361 = { "ee20361", // class name
+ bases_ee20361, 4,
+ &(vtc_ee20361[0]), // expected_vtbl_contents
+ &(vtt_ee20361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20361),6, //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 ee30361 : virtual dd0361 {
+ int e;
+ virtual void foo(); // _ZN7ee303613fooEv
+ ~ee30361(); // tgen
+ ee30361(); // tgen
+};
+//SIG(1 ee30361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30361 ::foo(){vfunc_called(this, "_ZN7ee303613fooEv");}
+ee30361 ::~ee30361(){ note_dtor("ee30361", this);} // tgen
+ee30361 ::ee30361(){ note_ctor("ee30361", this);} // tgen
+
+static void Test_ee30361()
+{
+ extern Class_Descriptor cd_ee30361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30361, buf);
+ ee30361 *dp, &lv = *(dp=new (buf) ee30361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee30361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(32,20), "ee30361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), ABISELECT(16,8), "ee30361");
+ check_base_class_offset(lv, (dd0361*), ABISELECT(16,8), "ee30361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30361.e");
+ test_class_info(&lv, &cd_ee30361);
+ dp->~ee30361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30361(Test_ee30361, "ee30361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30361C1Ev();
+extern void _ZN7ee30361D1Ev();
+Name_Map name_map_ee30361[] = {
+ NSPAIR(_ZN7ee30361C1Ev),
+ NSPAIR(_ZN7ee30361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee30361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, ABISELECT(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 _ZTI7ee30361[];
+extern void _ZN7ee303613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303613fooEv,_ZTv0_n16_N7ee303613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303613fooEv,_ZThn8_N7ee303613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303613fooEv,_ZTv0_n12_N7ee303613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303613fooEv,_ZThn20_N7ee303613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee30361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30361[0]),
+ (VTBL_ENTRY)&_ZN7ee303613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303613fooEv,_ZTv0_n16_N7ee303613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303613fooEv,_ZTv0_n12_N7ee303613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee30361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee30361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee30361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee30361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee30361[] = {
+ {&(_ZTV7ee30361[4]), 4,16},
+ {&(_ZTV7ee30361[9]), 9,16},
+ {&(_ZTV7ee30361[14]), 14,16},
+ {&(_tg__ZTV6dd0361__7ee30361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee30361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee30361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee30361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30361[];
+extern VTBL_ENTRY _ZTV7ee30361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30361[];
+static VTBL_ENTRY alt_thunk_names627[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303613fooEv,_ZTv0_n12_N7ee303613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303613fooEv,_ZThn20_N7ee303613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303613fooEv,_ZTv0_n16_N7ee303613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303613fooEv,_ZThn8_N7ee303613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30361 = { "ee30361", // class name
+ bases_ee30361, 4,
+ &(vtc_ee30361[0]), // expected_vtbl_contents
+ &(vtt_ee30361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30361),7, //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 ee40361 : dd0361 {
+ int e;
+ virtual void bar(); // _ZN7ee403613barEv
+ ~ee40361(); // tgen
+ ee40361(); // tgen
+};
+//SIG(1 ee40361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40361 ::bar(){vfunc_called(this, "_ZN7ee403613barEv");}
+ee40361 ::~ee40361(){ note_dtor("ee40361", this);} // tgen
+ee40361 ::ee40361(){ note_ctor("ee40361", this);} // tgen
+
+static void Test_ee40361()
+{
+ extern Class_Descriptor cd_ee40361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40361, buf);
+ ee40361 *dp, &lv = *(dp=new (buf) ee40361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee40361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(24,16), "ee40361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), 0, "ee40361");
+ check_base_class_offset(lv, (dd0361*), 0, "ee40361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40361.e");
+ test_class_info(&lv, &cd_ee40361);
+ dp->~ee40361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40361(Test_ee40361, "ee40361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40361C1Ev();
+extern void _ZN7ee40361D1Ev();
+Name_Map name_map_ee40361[] = {
+ NSPAIR(_ZN7ee40361C1Ev),
+ NSPAIR(_ZN7ee40361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee40361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN7ee403613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee403613barEv,_ZTv0_n16_N7ee403613barEv)();
+extern void ABISELECT(_ZThn24_N7ee403613barEv,_ZThn16_N7ee403613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN7ee403613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403613barEv,_ZTv0_n16_N7ee403613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee40361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee40361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee40361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee40361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee40361[] = {
+ {&(_ZTV7ee40361[3]), 3,11},
+ {&(_tg__ZTV6dd0361__7ee40361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee40361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee40361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee40361[4]), 4,6},
+ {&(_ZTV7ee40361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40361[];
+extern VTBL_ENTRY _ZTV7ee40361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40361[];
+static VTBL_ENTRY alt_thunk_names628[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403613barEv,_ZTv0_n16_N7ee403613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403613barEv,_ZThn16_N7ee403613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40361 = { "ee40361", // class name
+ bases_ee40361, 4,
+ &(vtc_ee40361[0]), // expected_vtbl_contents
+ &(vtt_ee40361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40361),6, //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 ee50361 : virtual dd0361 {
+ int e;
+ virtual void bar(); // _ZN7ee503613barEv
+ ~ee50361(); // tgen
+ ee50361(); // tgen
+};
+//SIG(1 ee50361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50361 ::bar(){vfunc_called(this, "_ZN7ee503613barEv");}
+ee50361 ::~ee50361(){ note_dtor("ee50361", this);} // tgen
+ee50361 ::ee50361(){ note_ctor("ee50361", this);} // tgen
+
+static void Test_ee50361()
+{
+ extern Class_Descriptor cd_ee50361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50361, buf);
+ ee50361 *dp, &lv = *(dp=new (buf) ee50361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee50361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(32,20), "ee50361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), ABISELECT(16,8), "ee50361");
+ check_base_class_offset(lv, (dd0361*), ABISELECT(16,8), "ee50361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50361.e");
+ test_class_info(&lv, &cd_ee50361);
+ dp->~ee50361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50361(Test_ee50361, "ee50361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50361C1Ev();
+extern void _ZN7ee50361D1Ev();
+Name_Map name_map_ee50361[] = {
+ NSPAIR(_ZN7ee50361C1Ev),
+ NSPAIR(_ZN7ee50361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee50361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, ABISELECT(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 _ZTI7ee50361[];
+extern void _ZN7ee503613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee503613barEv,_ZTv0_n16_N7ee503613barEv)();
+extern void ABISELECT(_ZThn32_N7ee503613barEv,_ZThn20_N7ee503613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50361[0]),
+ (VTBL_ENTRY)&_ZN7ee503613barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503613barEv,_ZTv0_n16_N7ee503613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee50361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee50361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee50361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee50361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee50361[] = {
+ {&(_ZTV7ee50361[4]), 4,16},
+ {&(_ZTV7ee50361[9]), 9,16},
+ {&(_ZTV7ee50361[14]), 14,16},
+ {&(_tg__ZTV6dd0361__7ee50361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee50361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee50361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee50361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50361[];
+extern VTBL_ENTRY _ZTV7ee50361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50361[];
+static VTBL_ENTRY alt_thunk_names629[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503613barEv,_ZTv0_n16_N7ee503613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503613barEv,_ZThn20_N7ee503613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50361 = { "ee50361", // class name
+ bases_ee50361, 4,
+ &(vtc_ee50361[0]), // expected_vtbl_contents
+ &(vtt_ee50361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50361),7, //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 ee60361 : dd0361 {
+ int e;
+ virtual void foo(); // _ZN7ee603613fooEv
+ virtual void bar(); // _ZN7ee603613barEv
+ ~ee60361(); // tgen
+ ee60361(); // tgen
+};
+//SIG(1 ee60361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60361 ::foo(){vfunc_called(this, "_ZN7ee603613fooEv");}
+void ee60361 ::bar(){vfunc_called(this, "_ZN7ee603613barEv");}
+ee60361 ::~ee60361(){ note_dtor("ee60361", this);} // tgen
+ee60361 ::ee60361(){ note_ctor("ee60361", this);} // tgen
+
+static void Test_ee60361()
+{
+ extern Class_Descriptor cd_ee60361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60361, buf);
+ ee60361 *dp, &lv = *(dp=new (buf) ee60361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee60361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(24,16), "ee60361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), 0, "ee60361");
+ check_base_class_offset(lv, (dd0361*), 0, "ee60361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60361.e");
+ test_class_info(&lv, &cd_ee60361);
+ dp->~ee60361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60361(Test_ee60361, "ee60361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60361C1Ev();
+extern void _ZN7ee60361D1Ev();
+Name_Map name_map_ee60361[] = {
+ NSPAIR(_ZN7ee60361C1Ev),
+ NSPAIR(_ZN7ee60361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee60361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60361[];
+extern void _ZN7ee603613fooEv();
+extern void _ZN7ee603613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603613fooEv,_ZTv0_n12_N7ee603613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603613fooEv,_ZThn16_N7ee603613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603613barEv,_ZTv0_n16_N7ee603613barEv)();
+extern void ABISELECT(_ZThn24_N7ee603613barEv,_ZThn16_N7ee603613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60361[0]),
+ (VTBL_ENTRY)&_ZN7ee603613fooEv,
+ (VTBL_ENTRY)&_ZN7ee603613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603613fooEv,_ZTv0_n12_N7ee603613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603613barEv,_ZTv0_n16_N7ee603613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee60361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee60361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee60361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee60361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee60361[] = {
+ {&(_ZTV7ee60361[3]), 3,11},
+ {&(_tg__ZTV6dd0361__7ee60361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee60361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee60361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee60361[4]), 4,6},
+ {&(_ZTV7ee60361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60361[];
+extern VTBL_ENTRY _ZTV7ee60361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60361[];
+static VTBL_ENTRY alt_thunk_names630[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603613barEv,_ZTv0_n16_N7ee603613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603613barEv,_ZThn16_N7ee603613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603613fooEv,_ZTv0_n12_N7ee603613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603613fooEv,_ZThn16_N7ee603613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60361 = { "ee60361", // class name
+ bases_ee60361, 4,
+ &(vtc_ee60361[0]), // expected_vtbl_contents
+ &(vtt_ee60361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60361),6, //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 ee70361 : virtual dd0361 {
+ int e;
+ virtual void foo(); // _ZN7ee703613fooEv
+ virtual void bar(); // _ZN7ee703613barEv
+ ~ee70361(); // tgen
+ ee70361(); // tgen
+};
+//SIG(1 ee70361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70361 ::foo(){vfunc_called(this, "_ZN7ee703613fooEv");}
+void ee70361 ::bar(){vfunc_called(this, "_ZN7ee703613barEv");}
+ee70361 ::~ee70361(){ note_dtor("ee70361", this);} // tgen
+ee70361 ::ee70361(){ note_ctor("ee70361", this);} // tgen
+
+static void Test_ee70361()
+{
+ extern Class_Descriptor cd_ee70361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70361, buf);
+ ee70361 *dp, &lv = *(dp=new (buf) ee70361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee70361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd0361*), ABISELECT(32,20), "ee70361");
+ check_base_class_offset(lv, (cc361*)(dd0361*), ABISELECT(16,8), "ee70361");
+ check_base_class_offset(lv, (dd0361*), ABISELECT(16,8), "ee70361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70361.e");
+ test_class_info(&lv, &cd_ee70361);
+ dp->~ee70361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70361(Test_ee70361, "ee70361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70361C1Ev();
+extern void _ZN7ee70361D1Ev();
+Name_Map name_map_ee70361[] = {
+ NSPAIR(_ZN7ee70361C1Ev),
+ NSPAIR(_ZN7ee70361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd0361;
+extern VTBL_ENTRY _ZTI6dd0361[];
+extern VTBL_ENTRY _ZTV6dd0361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0361[];
+static Base_Class bases_ee70361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0361, 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 _ZTI7ee70361[];
+extern void _ZN7ee703613fooEv();
+extern void _ZN7ee703613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703613fooEv,_ZTv0_n16_N7ee703613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703613fooEv,_ZThn8_N7ee703613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703613fooEv,_ZTv0_n12_N7ee703613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703613fooEv,_ZThn20_N7ee703613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703613barEv,_ZTv0_n16_N7ee703613barEv)();
+extern void ABISELECT(_ZThn32_N7ee703613barEv,_ZThn20_N7ee703613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70361[0]),
+ (VTBL_ENTRY)&_ZN7ee703613fooEv,
+ (VTBL_ENTRY)&_ZN7ee703613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703613fooEv,_ZTv0_n16_N7ee703613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703613fooEv,_ZTv0_n12_N7ee703613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703613barEv,_ZTv0_n16_N7ee703613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0361__7ee70361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd0361__7ee70361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd0361__7ee70361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0361__7ee70361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee70361[] = {
+ {&(_ZTV7ee70361[4]), 4,17},
+ {&(_ZTV7ee70361[10]), 10,17},
+ {&(_ZTV7ee70361[15]), 15,17},
+ {&(_tg__ZTV6dd0361__7ee70361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd0361__7ee70361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd0361__7ee70361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0361__7ee70361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70361[];
+extern VTBL_ENTRY _ZTV7ee70361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70361[];
+static VTBL_ENTRY alt_thunk_names631[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703613barEv,_ZTv0_n16_N7ee703613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703613barEv,_ZThn20_N7ee703613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703613fooEv,_ZTv0_n12_N7ee703613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703613fooEv,_ZThn20_N7ee703613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703613fooEv,_ZTv0_n16_N7ee703613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703613fooEv,_ZThn8_N7ee703613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70361 = { "ee70361", // class name
+ bases_ee70361, 4,
+ &(vtc_ee70361[0]), // expected_vtbl_contents
+ &(vtt_ee70361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70361),7, //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 dd1361 : virtual cc361 {
+ int d;
+ ~dd1361(); // tgen
+ dd1361(); // tgen
+};
+//SIG(-1 dd1361) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1361 ::~dd1361(){ note_dtor("dd1361", this);} // tgen
+dd1361 ::dd1361(){ note_ctor("dd1361", this);} // tgen
+
+static void Test_dd1361()
+{
+ extern Class_Descriptor cd_dd1361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1361, buf);
+ dd1361 *dp, &lv = *(dp=new (buf) dd1361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd1361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,16), "dd1361");
+ check_base_class_offset(lv, (cc361*), ABISELECT(16,8), "dd1361");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1361.d");
+ test_class_info(&lv, &cd_dd1361);
+ dp->~dd1361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1361(Test_dd1361, "dd1361", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1361C1Ev();
+extern void _ZN6dd1361D1Ev();
+Name_Map name_map_dd1361[] = {
+ NSPAIR(_ZN6dd1361C1Ev),
+ NSPAIR(_ZN6dd1361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd1361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(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 _ZTI6dd1361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd1361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd1361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd1361[] = {
+ {&(_ZTV6dd1361[4]), 4,15},
+ {&(_ZTV6dd1361[8]), 8,15},
+ {&(_ZTV6dd1361[13]), 13,15},
+ {&(_tg__ZTV5cc361__6dd1361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd1361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static VTBL_ENTRY alt_thunk_names632[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1361 = { "dd1361", // class name
+ bases_dd1361, 3,
+ &(vtc_dd1361[0]), // expected_vtbl_contents
+ &(vtt_dd1361[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1361),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1361),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names632,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01361 : dd1361 {
+ int e;
+ ~ee01361(); // tgen
+ ee01361(); // tgen
+};
+//SIG(1 ee01361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01361 ::~ee01361(){ note_dtor("ee01361", this);} // tgen
+ee01361 ::ee01361(){ note_ctor("ee01361", this);} // tgen
+
+static void Test_ee01361()
+{
+ extern Class_Descriptor cd_ee01361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01361, buf);
+ ee01361 *dp, &lv = *(dp=new (buf) ee01361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee01361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee01361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(16,12), "ee01361");
+ check_base_class_offset(lv, (dd1361*), 0, "ee01361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01361.e");
+ test_class_info(&lv, &cd_ee01361);
+ dp->~ee01361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01361(Test_ee01361, "ee01361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01361C1Ev();
+extern void _ZN7ee01361D1Ev();
+Name_Map name_map_ee01361[] = {
+ NSPAIR(_ZN7ee01361C1Ev),
+ NSPAIR(_ZN7ee01361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee01361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee01361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01361[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee01361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee01361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee01361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee01361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee01361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee01361[] = {
+ {&(_ZTV7ee01361[4]), 4,15},
+ {&(_tg__ZTV6dd1361__7ee01361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee01361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee01361[4]), 4,6},
+ {&(_ZTV7ee01361[8]), 8,15},
+ {&(_ZTV7ee01361[13]), 13,15},
+ {&(_tg__ZTV5cc361__7ee01361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee01361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01361[];
+extern VTBL_ENTRY _ZTV7ee01361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01361[];
+static VTBL_ENTRY alt_thunk_names633[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01361 = { "ee01361", // class name
+ bases_ee01361, 4,
+ &(vtc_ee01361[0]), // expected_vtbl_contents
+ &(vtt_ee01361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01361),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01361),8, //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 ee11361 : virtual dd1361 {
+ int e;
+ ~ee11361(); // tgen
+ ee11361(); // tgen
+};
+//SIG(1 ee11361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11361 ::~ee11361(){ note_dtor("ee11361", this);} // tgen
+ee11361 ::ee11361(){ note_ctor("ee11361", this);} // tgen
+
+static void Test_ee11361()
+{
+ extern Class_Descriptor cd_ee11361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11361, buf);
+ ee11361 *dp, &lv = *(dp=new (buf) ee11361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee11361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee11361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(32,16), "ee11361");
+ check_base_class_offset(lv, (dd1361*), ABISELECT(16,8), "ee11361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11361.e");
+ test_class_info(&lv, &cd_ee11361);
+ dp->~ee11361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11361(Test_ee11361, "ee11361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11361C1Ev();
+extern void _ZN7ee11361D1Ev();
+Name_Map name_map_ee11361[] = {
+ NSPAIR(_ZN7ee11361C1Ev),
+ NSPAIR(_ZN7ee11361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee11361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, ABISELECT(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 _ZTI7ee11361[];
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee11361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11361[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11361[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee11361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee11361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee11361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee11361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee11361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee11361[] = {
+ {&(_ZTV7ee11361[5]), 5,20},
+ {&(_ZTV7ee11361[9]), 9,20},
+ {&(_ZTV7ee11361[13]), 13,20},
+ {&(_ZTV7ee11361[18]), 18,20},
+ {&(_tg__ZTV6dd1361__7ee11361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee11361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee11361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee11361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee11361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11361[];
+extern VTBL_ENTRY _ZTV7ee11361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11361[];
+static VTBL_ENTRY alt_thunk_names634[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11361 = { "ee11361", // class name
+ bases_ee11361, 4,
+ &(vtc_ee11361[0]), // expected_vtbl_contents
+ &(vtt_ee11361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11361),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11361),9, //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 ee21361 : dd1361 {
+ int e;
+ virtual void foo(); // _ZN7ee213613fooEv
+ ~ee21361(); // tgen
+ ee21361(); // tgen
+};
+//SIG(1 ee21361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21361 ::foo(){vfunc_called(this, "_ZN7ee213613fooEv");}
+ee21361 ::~ee21361(){ note_dtor("ee21361", this);} // tgen
+ee21361 ::ee21361(){ note_ctor("ee21361", this);} // tgen
+
+static void Test_ee21361()
+{
+ extern Class_Descriptor cd_ee21361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21361, buf);
+ ee21361 *dp, &lv = *(dp=new (buf) ee21361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee21361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee21361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(16,12), "ee21361");
+ check_base_class_offset(lv, (dd1361*), 0, "ee21361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21361.e");
+ test_class_info(&lv, &cd_ee21361);
+ dp->~ee21361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21361(Test_ee21361, "ee21361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21361C1Ev();
+extern void _ZN7ee21361D1Ev();
+Name_Map name_map_ee21361[] = {
+ NSPAIR(_ZN7ee21361C1Ev),
+ NSPAIR(_ZN7ee21361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee21361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21361[];
+extern void _ZN7ee213613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213613fooEv,_ZTv0_n16_N7ee213613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213613fooEv,_ZThn12_N7ee213613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213613fooEv,_ZTv0_n12_N7ee213613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213613fooEv,_ZThn20_N7ee213613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee21361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21361[0]),
+ (VTBL_ENTRY)&_ZN7ee213613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213613fooEv,_ZTv0_n16_N7ee213613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213613fooEv,_ZTv0_n12_N7ee213613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee21361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee21361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee21361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee21361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee21361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee21361[] = {
+ {&(_ZTV7ee21361[4]), 4,16},
+ {&(_tg__ZTV6dd1361__7ee21361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee21361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee21361[4]), 4,6},
+ {&(_ZTV7ee21361[9]), 9,16},
+ {&(_ZTV7ee21361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee21361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee21361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21361[];
+extern VTBL_ENTRY _ZTV7ee21361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21361[];
+static VTBL_ENTRY alt_thunk_names635[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213613fooEv,_ZTv0_n12_N7ee213613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213613fooEv,_ZThn20_N7ee213613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213613fooEv,_ZTv0_n16_N7ee213613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213613fooEv,_ZThn12_N7ee213613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21361 = { "ee21361", // class name
+ bases_ee21361, 4,
+ &(vtc_ee21361[0]), // expected_vtbl_contents
+ &(vtt_ee21361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21361),8, //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 ee31361 : virtual dd1361 {
+ int e;
+ virtual void foo(); // _ZN7ee313613fooEv
+ ~ee31361(); // tgen
+ ee31361(); // tgen
+};
+//SIG(1 ee31361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31361 ::foo(){vfunc_called(this, "_ZN7ee313613fooEv");}
+ee31361 ::~ee31361(){ note_dtor("ee31361", this);} // tgen
+ee31361 ::ee31361(){ note_ctor("ee31361", this);} // tgen
+
+static void Test_ee31361()
+{
+ extern Class_Descriptor cd_ee31361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31361, buf);
+ ee31361 *dp, &lv = *(dp=new (buf) ee31361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee31361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee31361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(32,16), "ee31361");
+ check_base_class_offset(lv, (dd1361*), ABISELECT(16,8), "ee31361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31361.e");
+ test_class_info(&lv, &cd_ee31361);
+ dp->~ee31361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31361(Test_ee31361, "ee31361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31361C1Ev();
+extern void _ZN7ee31361D1Ev();
+Name_Map name_map_ee31361[] = {
+ NSPAIR(_ZN7ee31361C1Ev),
+ NSPAIR(_ZN7ee31361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee31361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 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 _ZTI7ee31361[];
+extern void _ZN7ee313613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313613fooEv,_ZTv0_n16_N7ee313613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313613fooEv,_ZThn16_N7ee313613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313613fooEv,_ZTv0_n12_N7ee313613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313613fooEv,_ZThn24_N7ee313613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee31361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31361[0]),
+ (VTBL_ENTRY)&_ZN7ee313613fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31361[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313613fooEv,_ZTv0_n16_N7ee313613fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313613fooEv,_ZTv0_n12_N7ee313613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee31361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee31361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee31361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee31361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee31361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee31361[] = {
+ {&(_ZTV7ee31361[5]), 5,21},
+ {&(_ZTV7ee31361[10]), 10,21},
+ {&(_ZTV7ee31361[14]), 14,21},
+ {&(_ZTV7ee31361[19]), 19,21},
+ {&(_tg__ZTV6dd1361__7ee31361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee31361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee31361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee31361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee31361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31361[];
+extern VTBL_ENTRY _ZTV7ee31361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31361[];
+static VTBL_ENTRY alt_thunk_names636[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313613fooEv,_ZTv0_n12_N7ee313613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313613fooEv,_ZThn24_N7ee313613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313613fooEv,_ZTv0_n16_N7ee313613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313613fooEv,_ZThn16_N7ee313613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31361 = { "ee31361", // class name
+ bases_ee31361, 4,
+ &(vtc_ee31361[0]), // expected_vtbl_contents
+ &(vtt_ee31361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31361),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31361),9, //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 ee41361 : dd1361 {
+ int e;
+ virtual void bar(); // _ZN7ee413613barEv
+ ~ee41361(); // tgen
+ ee41361(); // tgen
+};
+//SIG(1 ee41361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41361 ::bar(){vfunc_called(this, "_ZN7ee413613barEv");}
+ee41361 ::~ee41361(){ note_dtor("ee41361", this);} // tgen
+ee41361 ::ee41361(){ note_ctor("ee41361", this);} // tgen
+
+static void Test_ee41361()
+{
+ extern Class_Descriptor cd_ee41361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41361, buf);
+ ee41361 *dp, &lv = *(dp=new (buf) ee41361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee41361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee41361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(16,12), "ee41361");
+ check_base_class_offset(lv, (dd1361*), 0, "ee41361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41361.e");
+ test_class_info(&lv, &cd_ee41361);
+ dp->~ee41361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41361(Test_ee41361, "ee41361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41361C1Ev();
+extern void _ZN7ee41361D1Ev();
+Name_Map name_map_ee41361[] = {
+ NSPAIR(_ZN7ee41361C1Ev),
+ NSPAIR(_ZN7ee41361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee41361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41361[];
+extern void _ZN7ee413613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee413613barEv,_ZTv0_n16_N7ee413613barEv)();
+extern void ABISELECT(_ZThn32_N7ee413613barEv,_ZThn20_N7ee413613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41361[0]),
+ (VTBL_ENTRY)&_ZN7ee413613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413613barEv,_ZTv0_n16_N7ee413613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee41361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee41361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee41361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee41361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee41361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee41361[] = {
+ {&(_ZTV7ee41361[4]), 4,16},
+ {&(_tg__ZTV6dd1361__7ee41361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee41361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee41361[4]), 4,6},
+ {&(_ZTV7ee41361[9]), 9,16},
+ {&(_ZTV7ee41361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee41361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee41361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41361[];
+extern VTBL_ENTRY _ZTV7ee41361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41361[];
+static VTBL_ENTRY alt_thunk_names637[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413613barEv,_ZTv0_n16_N7ee413613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413613barEv,_ZThn20_N7ee413613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41361 = { "ee41361", // class name
+ bases_ee41361, 4,
+ &(vtc_ee41361[0]), // expected_vtbl_contents
+ &(vtt_ee41361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41361),8, //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 ee51361 : virtual dd1361 {
+ int e;
+ virtual void bar(); // _ZN7ee513613barEv
+ ~ee51361(); // tgen
+ ee51361(); // tgen
+};
+//SIG(1 ee51361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51361 ::bar(){vfunc_called(this, "_ZN7ee513613barEv");}
+ee51361 ::~ee51361(){ note_dtor("ee51361", this);} // tgen
+ee51361 ::ee51361(){ note_ctor("ee51361", this);} // tgen
+
+static void Test_ee51361()
+{
+ extern Class_Descriptor cd_ee51361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51361, buf);
+ ee51361 *dp, &lv = *(dp=new (buf) ee51361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee51361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee51361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(32,16), "ee51361");
+ check_base_class_offset(lv, (dd1361*), ABISELECT(16,8), "ee51361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51361.e");
+ test_class_info(&lv, &cd_ee51361);
+ dp->~ee51361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51361(Test_ee51361, "ee51361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51361C1Ev();
+extern void _ZN7ee51361D1Ev();
+Name_Map name_map_ee51361[] = {
+ NSPAIR(_ZN7ee51361C1Ev),
+ NSPAIR(_ZN7ee51361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee51361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 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 _ZTI7ee51361[];
+extern void _ZN7ee513613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee513613barEv,_ZTv0_n16_N7ee513613barEv)();
+extern void ABISELECT(_ZThn48_N7ee513613barEv,_ZThn24_N7ee513613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51361[0]),
+ (VTBL_ENTRY)&_ZN7ee513613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51361[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513613barEv,_ZTv0_n16_N7ee513613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee51361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee51361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee51361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee51361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee51361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee51361[] = {
+ {&(_ZTV7ee51361[5]), 5,21},
+ {&(_ZTV7ee51361[10]), 10,21},
+ {&(_ZTV7ee51361[14]), 14,21},
+ {&(_ZTV7ee51361[19]), 19,21},
+ {&(_tg__ZTV6dd1361__7ee51361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee51361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee51361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee51361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee51361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51361[];
+extern VTBL_ENTRY _ZTV7ee51361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51361[];
+static VTBL_ENTRY alt_thunk_names638[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513613barEv,_ZTv0_n16_N7ee513613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513613barEv,_ZThn24_N7ee513613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51361 = { "ee51361", // class name
+ bases_ee51361, 4,
+ &(vtc_ee51361[0]), // expected_vtbl_contents
+ &(vtt_ee51361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51361),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51361),9, //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 ee61361 : dd1361 {
+ int e;
+ virtual void foo(); // _ZN7ee613613fooEv
+ virtual void bar(); // _ZN7ee613613barEv
+ ~ee61361(); // tgen
+ ee61361(); // tgen
+};
+//SIG(1 ee61361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61361 ::foo(){vfunc_called(this, "_ZN7ee613613fooEv");}
+void ee61361 ::bar(){vfunc_called(this, "_ZN7ee613613barEv");}
+ee61361 ::~ee61361(){ note_dtor("ee61361", this);} // tgen
+ee61361 ::ee61361(){ note_ctor("ee61361", this);} // tgen
+
+static void Test_ee61361()
+{
+ extern Class_Descriptor cd_ee61361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61361, buf);
+ ee61361 *dp, &lv = *(dp=new (buf) ee61361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee61361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee61361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(16,12), "ee61361");
+ check_base_class_offset(lv, (dd1361*), 0, "ee61361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61361.e");
+ test_class_info(&lv, &cd_ee61361);
+ dp->~ee61361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61361(Test_ee61361, "ee61361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61361C1Ev();
+extern void _ZN7ee61361D1Ev();
+Name_Map name_map_ee61361[] = {
+ NSPAIR(_ZN7ee61361C1Ev),
+ NSPAIR(_ZN7ee61361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee61361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61361[];
+extern void _ZN7ee613613fooEv();
+extern void _ZN7ee613613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613613fooEv,_ZTv0_n16_N7ee613613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613613fooEv,_ZThn12_N7ee613613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613613fooEv,_ZTv0_n12_N7ee613613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613613fooEv,_ZThn20_N7ee613613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613613barEv,_ZTv0_n16_N7ee613613barEv)();
+extern void ABISELECT(_ZThn32_N7ee613613barEv,_ZThn20_N7ee613613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61361[0]),
+ (VTBL_ENTRY)&_ZN7ee613613fooEv,
+ (VTBL_ENTRY)&_ZN7ee613613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613613fooEv,_ZTv0_n16_N7ee613613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613613fooEv,_ZTv0_n12_N7ee613613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613613barEv,_ZTv0_n16_N7ee613613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee61361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee61361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee61361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee61361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee61361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee61361[] = {
+ {&(_ZTV7ee61361[4]), 4,17},
+ {&(_tg__ZTV6dd1361__7ee61361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee61361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee61361[4]), 4,6},
+ {&(_ZTV7ee61361[10]), 10,17},
+ {&(_ZTV7ee61361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee61361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee61361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61361[];
+extern VTBL_ENTRY _ZTV7ee61361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61361[];
+static VTBL_ENTRY alt_thunk_names639[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613613barEv,_ZTv0_n16_N7ee613613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613613barEv,_ZThn20_N7ee613613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613613fooEv,_ZTv0_n12_N7ee613613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613613fooEv,_ZThn20_N7ee613613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613613fooEv,_ZTv0_n16_N7ee613613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613613fooEv,_ZThn12_N7ee613613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61361 = { "ee61361", // class name
+ bases_ee61361, 4,
+ &(vtc_ee61361[0]), // expected_vtbl_contents
+ &(vtt_ee61361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61361),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names639,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71361 : virtual dd1361 {
+ int e;
+ virtual void foo(); // _ZN7ee713613fooEv
+ virtual void bar(); // _ZN7ee713613barEv
+ ~ee71361(); // tgen
+ ee71361(); // tgen
+};
+//SIG(1 ee71361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71361 ::foo(){vfunc_called(this, "_ZN7ee713613fooEv");}
+void ee71361 ::bar(){vfunc_called(this, "_ZN7ee713613barEv");}
+ee71361 ::~ee71361(){ note_dtor("ee71361", this);} // tgen
+ee71361 ::ee71361(){ note_ctor("ee71361", this);} // tgen
+
+static void Test_ee71361()
+{
+ extern Class_Descriptor cd_ee71361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71361, buf);
+ ee71361 *dp, &lv = *(dp=new (buf) ee71361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee71361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee71361");
+ check_base_class_offset(lv, (cc361*)(dd1361*), ABISELECT(32,16), "ee71361");
+ check_base_class_offset(lv, (dd1361*), ABISELECT(16,8), "ee71361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71361.e");
+ test_class_info(&lv, &cd_ee71361);
+ dp->~ee71361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71361(Test_ee71361, "ee71361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71361C1Ev();
+extern void _ZN7ee71361D1Ev();
+Name_Map name_map_ee71361[] = {
+ NSPAIR(_ZN7ee71361C1Ev),
+ NSPAIR(_ZN7ee71361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd1361;
+extern VTBL_ENTRY _ZTI6dd1361[];
+extern VTBL_ENTRY _ZTV6dd1361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1361[];
+static Base_Class bases_ee71361[] = {
+ // 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_bb61, 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_cc361, 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_dd1361, 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 _ZTI7ee71361[];
+extern void _ZN7ee713613fooEv();
+extern void _ZN7ee713613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713613fooEv,_ZTv0_n16_N7ee713613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713613fooEv,_ZThn16_N7ee713613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713613fooEv,_ZTv0_n12_N7ee713613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713613fooEv,_ZThn24_N7ee713613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713613barEv,_ZTv0_n16_N7ee713613barEv)();
+extern void ABISELECT(_ZThn48_N7ee713613barEv,_ZThn24_N7ee713613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71361[0]),
+ (VTBL_ENTRY)&_ZN7ee713613fooEv,
+ (VTBL_ENTRY)&_ZN7ee713613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71361[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713613fooEv,_ZTv0_n16_N7ee713613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713613fooEv,_ZTv0_n12_N7ee713613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713613barEv,_ZTv0_n16_N7ee713613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71361[];
+static VTBL_ENTRY _tg__ZTV6dd1361__7ee71361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd1361__7ee71361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1361__7ee71361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee71361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee71361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee71361[] = {
+ {&(_ZTV7ee71361[5]), 5,22},
+ {&(_ZTV7ee71361[11]), 11,22},
+ {&(_ZTV7ee71361[15]), 15,22},
+ {&(_ZTV7ee71361[20]), 20,22},
+ {&(_tg__ZTV6dd1361__7ee71361[4]), 4,4},
+ {&(_tg__ZTV5cc361__6dd1361__7ee71361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1361__7ee71361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee71361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee71361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71361[];
+extern VTBL_ENTRY _ZTV7ee71361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71361[];
+static VTBL_ENTRY alt_thunk_names640[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713613barEv,_ZTv0_n16_N7ee713613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713613barEv,_ZThn24_N7ee713613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713613fooEv,_ZTv0_n12_N7ee713613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713613fooEv,_ZThn24_N7ee713613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713613fooEv,_ZTv0_n16_N7ee713613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713613fooEv,_ZThn16_N7ee713613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71361 = { "ee71361", // class name
+ bases_ee71361, 4,
+ &(vtc_ee71361[0]), // expected_vtbl_contents
+ &(vtt_ee71361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71361),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71361),9, //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 dd2361 : cc361 {
+ int d;
+ virtual void foo(); // _ZN6dd23613fooEv
+ ~dd2361(); // tgen
+ dd2361(); // tgen
+};
+//SIG(-1 dd2361) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2361 ::foo(){vfunc_called(this, "_ZN6dd23613fooEv");}
+dd2361 ::~dd2361(){ note_dtor("dd2361", this);} // tgen
+dd2361 ::dd2361(){ note_ctor("dd2361", this);} // tgen
+
+static void Test_dd2361()
+{
+ extern Class_Descriptor cd_dd2361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2361, buf);
+ dd2361 *dp, &lv = *(dp=new (buf) dd2361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd2361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(16,12), "dd2361");
+ check_base_class_offset(lv, (cc361*), 0, "dd2361");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2361.d");
+ test_class_info(&lv, &cd_dd2361);
+ dp->~dd2361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2361(Test_dd2361, "dd2361", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2361C1Ev();
+extern void _ZN6dd2361D1Ev();
+Name_Map name_map_dd2361[] = {
+ NSPAIR(_ZN6dd2361C1Ev),
+ NSPAIR(_ZN6dd2361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd2361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern void _ZN6dd23613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd2361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd2361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd2361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd2361[] = {
+ {&(_ZTV6dd2361[3]), 3,10},
+ {&(_tg__ZTV5cc361__6dd2361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd2361[4]), 4,6},
+ {&(_ZTV6dd2361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static VTBL_ENTRY alt_thunk_names641[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2361 = { "dd2361", // class name
+ bases_dd2361, 3,
+ &(vtc_dd2361[0]), // expected_vtbl_contents
+ &(vtt_dd2361[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2361),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names641,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02361 : dd2361 {
+ int e;
+ ~ee02361(); // tgen
+ ee02361(); // tgen
+};
+//SIG(1 ee02361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02361 ::~ee02361(){ note_dtor("ee02361", this);} // tgen
+ee02361 ::ee02361(){ note_ctor("ee02361", this);} // tgen
+
+static void Test_ee02361()
+{
+ extern Class_Descriptor cd_ee02361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02361, buf);
+ ee02361 *dp, &lv = *(dp=new (buf) ee02361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee02361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(24,16), "ee02361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), 0, "ee02361");
+ check_base_class_offset(lv, (dd2361*), 0, "ee02361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02361.e");
+ test_class_info(&lv, &cd_ee02361);
+ dp->~ee02361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02361(Test_ee02361, "ee02361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02361C1Ev();
+extern void _ZN7ee02361D1Ev();
+Name_Map name_map_ee02361[] = {
+ NSPAIR(_ZN7ee02361C1Ev),
+ NSPAIR(_ZN7ee02361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee02361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02361[];
+extern void _ZN6dd23613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee02361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee02361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee02361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee02361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee02361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee02361[] = {
+ {&(_ZTV7ee02361[3]), 3,10},
+ {&(_tg__ZTV6dd2361__7ee02361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee02361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee02361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee02361[4]), 4,6},
+ {&(_ZTV7ee02361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02361[];
+extern VTBL_ENTRY _ZTV7ee02361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02361[];
+static VTBL_ENTRY alt_thunk_names642[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02361 = { "ee02361", // class name
+ bases_ee02361, 4,
+ &(vtc_ee02361[0]), // expected_vtbl_contents
+ &(vtt_ee02361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02361),6, //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 ee12361 : virtual dd2361 {
+ int e;
+ ~ee12361(); // tgen
+ ee12361(); // tgen
+};
+//SIG(1 ee12361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12361 ::~ee12361(){ note_dtor("ee12361", this);} // tgen
+ee12361 ::ee12361(){ note_ctor("ee12361", this);} // tgen
+
+static void Test_ee12361()
+{
+ extern Class_Descriptor cd_ee12361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12361, buf);
+ ee12361 *dp, &lv = *(dp=new (buf) ee12361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee12361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(32,20), "ee12361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), ABISELECT(16,8), "ee12361");
+ check_base_class_offset(lv, (dd2361*), ABISELECT(16,8), "ee12361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12361.e");
+ test_class_info(&lv, &cd_ee12361);
+ dp->~ee12361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12361(Test_ee12361, "ee12361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12361C1Ev();
+extern void _ZN7ee12361D1Ev();
+Name_Map name_map_ee12361[] = {
+ NSPAIR(_ZN7ee12361C1Ev),
+ NSPAIR(_ZN7ee12361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee12361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, ABISELECT(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 _ZTI7ee12361[];
+extern void _ZN6dd23613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee12361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12361[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee12361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee12361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee12361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee12361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee12361[] = {
+ {&(_ZTV7ee12361[4]), 4,15},
+ {&(_ZTV7ee12361[8]), 8,15},
+ {&(_ZTV7ee12361[13]), 13,15},
+ {&(_tg__ZTV6dd2361__7ee12361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee12361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee12361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee12361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12361[];
+extern VTBL_ENTRY _ZTV7ee12361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12361[];
+static VTBL_ENTRY alt_thunk_names643[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12361 = { "ee12361", // class name
+ bases_ee12361, 4,
+ &(vtc_ee12361[0]), // expected_vtbl_contents
+ &(vtt_ee12361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12361),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12361),7, //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 ee22361 : dd2361 {
+ int e;
+ virtual void foo(); // _ZN7ee223613fooEv
+ ~ee22361(); // tgen
+ ee22361(); // tgen
+};
+//SIG(1 ee22361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22361 ::foo(){vfunc_called(this, "_ZN7ee223613fooEv");}
+ee22361 ::~ee22361(){ note_dtor("ee22361", this);} // tgen
+ee22361 ::ee22361(){ note_ctor("ee22361", this);} // tgen
+
+static void Test_ee22361()
+{
+ extern Class_Descriptor cd_ee22361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22361, buf);
+ ee22361 *dp, &lv = *(dp=new (buf) ee22361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee22361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(24,16), "ee22361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), 0, "ee22361");
+ check_base_class_offset(lv, (dd2361*), 0, "ee22361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22361.e");
+ test_class_info(&lv, &cd_ee22361);
+ dp->~ee22361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22361(Test_ee22361, "ee22361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22361C1Ev();
+extern void _ZN7ee22361D1Ev();
+Name_Map name_map_ee22361[] = {
+ NSPAIR(_ZN7ee22361C1Ev),
+ NSPAIR(_ZN7ee22361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee22361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22361[];
+extern void _ZN7ee223613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223613fooEv,_ZTv0_n12_N7ee223613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223613fooEv,_ZThn16_N7ee223613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee22361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22361[0]),
+ (VTBL_ENTRY)&_ZN7ee223613fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223613fooEv,_ZTv0_n12_N7ee223613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee22361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee22361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee22361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee22361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee22361[] = {
+ {&(_ZTV7ee22361[3]), 3,10},
+ {&(_tg__ZTV6dd2361__7ee22361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee22361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee22361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee22361[4]), 4,6},
+ {&(_ZTV7ee22361[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22361[];
+extern VTBL_ENTRY _ZTV7ee22361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22361[];
+static VTBL_ENTRY alt_thunk_names644[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223613fooEv,_ZTv0_n12_N7ee223613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223613fooEv,_ZThn16_N7ee223613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22361 = { "ee22361", // class name
+ bases_ee22361, 4,
+ &(vtc_ee22361[0]), // expected_vtbl_contents
+ &(vtt_ee22361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22361),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22361),6, //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 ee32361 : virtual dd2361 {
+ int e;
+ virtual void foo(); // _ZN7ee323613fooEv
+ ~ee32361(); // tgen
+ ee32361(); // tgen
+};
+//SIG(1 ee32361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32361 ::foo(){vfunc_called(this, "_ZN7ee323613fooEv");}
+ee32361 ::~ee32361(){ note_dtor("ee32361", this);} // tgen
+ee32361 ::ee32361(){ note_ctor("ee32361", this);} // tgen
+
+static void Test_ee32361()
+{
+ extern Class_Descriptor cd_ee32361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32361, buf);
+ ee32361 *dp, &lv = *(dp=new (buf) ee32361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee32361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(32,20), "ee32361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), ABISELECT(16,8), "ee32361");
+ check_base_class_offset(lv, (dd2361*), ABISELECT(16,8), "ee32361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32361.e");
+ test_class_info(&lv, &cd_ee32361);
+ dp->~ee32361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32361(Test_ee32361, "ee32361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32361C1Ev();
+extern void _ZN7ee32361D1Ev();
+Name_Map name_map_ee32361[] = {
+ NSPAIR(_ZN7ee32361C1Ev),
+ NSPAIR(_ZN7ee32361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee32361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, ABISELECT(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 _ZTI7ee32361[];
+extern void _ZN7ee323613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323613fooEv,_ZTv0_n16_N7ee323613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323613fooEv,_ZThn8_N7ee323613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323613fooEv,_ZTv0_n12_N7ee323613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323613fooEv,_ZThn20_N7ee323613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee32361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32361[0]),
+ (VTBL_ENTRY)&_ZN7ee323613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323613fooEv,_ZTv0_n16_N7ee323613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323613fooEv,_ZTv0_n12_N7ee323613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee32361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee32361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee32361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee32361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee32361[] = {
+ {&(_ZTV7ee32361[4]), 4,16},
+ {&(_ZTV7ee32361[9]), 9,16},
+ {&(_ZTV7ee32361[14]), 14,16},
+ {&(_tg__ZTV6dd2361__7ee32361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee32361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee32361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee32361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32361[];
+extern VTBL_ENTRY _ZTV7ee32361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32361[];
+static VTBL_ENTRY alt_thunk_names645[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323613fooEv,_ZTv0_n12_N7ee323613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323613fooEv,_ZThn20_N7ee323613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323613fooEv,_ZTv0_n16_N7ee323613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323613fooEv,_ZThn8_N7ee323613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32361 = { "ee32361", // class name
+ bases_ee32361, 4,
+ &(vtc_ee32361[0]), // expected_vtbl_contents
+ &(vtt_ee32361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32361),7, //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 ee42361 : dd2361 {
+ int e;
+ virtual void bar(); // _ZN7ee423613barEv
+ ~ee42361(); // tgen
+ ee42361(); // tgen
+};
+//SIG(1 ee42361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42361 ::bar(){vfunc_called(this, "_ZN7ee423613barEv");}
+ee42361 ::~ee42361(){ note_dtor("ee42361", this);} // tgen
+ee42361 ::ee42361(){ note_ctor("ee42361", this);} // tgen
+
+static void Test_ee42361()
+{
+ extern Class_Descriptor cd_ee42361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42361, buf);
+ ee42361 *dp, &lv = *(dp=new (buf) ee42361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee42361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(24,16), "ee42361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), 0, "ee42361");
+ check_base_class_offset(lv, (dd2361*), 0, "ee42361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42361.e");
+ test_class_info(&lv, &cd_ee42361);
+ dp->~ee42361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42361(Test_ee42361, "ee42361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42361C1Ev();
+extern void _ZN7ee42361D1Ev();
+Name_Map name_map_ee42361[] = {
+ NSPAIR(_ZN7ee42361C1Ev),
+ NSPAIR(_ZN7ee42361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee42361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42361[];
+extern void _ZN6dd23613fooEv();
+extern void _ZN7ee423613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee423613barEv,_ZTv0_n16_N7ee423613barEv)();
+extern void ABISELECT(_ZThn24_N7ee423613barEv,_ZThn16_N7ee423613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+ (VTBL_ENTRY)&_ZN7ee423613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423613barEv,_ZTv0_n16_N7ee423613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee42361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee42361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee42361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee42361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee42361[] = {
+ {&(_ZTV7ee42361[3]), 3,11},
+ {&(_tg__ZTV6dd2361__7ee42361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee42361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee42361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee42361[4]), 4,6},
+ {&(_ZTV7ee42361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42361[];
+extern VTBL_ENTRY _ZTV7ee42361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42361[];
+static VTBL_ENTRY alt_thunk_names646[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423613barEv,_ZTv0_n16_N7ee423613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423613barEv,_ZThn16_N7ee423613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42361 = { "ee42361", // class name
+ bases_ee42361, 4,
+ &(vtc_ee42361[0]), // expected_vtbl_contents
+ &(vtt_ee42361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42361),6, //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 ee52361 : virtual dd2361 {
+ int e;
+ virtual void bar(); // _ZN7ee523613barEv
+ ~ee52361(); // tgen
+ ee52361(); // tgen
+};
+//SIG(1 ee52361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52361 ::bar(){vfunc_called(this, "_ZN7ee523613barEv");}
+ee52361 ::~ee52361(){ note_dtor("ee52361", this);} // tgen
+ee52361 ::ee52361(){ note_ctor("ee52361", this);} // tgen
+
+static void Test_ee52361()
+{
+ extern Class_Descriptor cd_ee52361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52361, buf);
+ ee52361 *dp, &lv = *(dp=new (buf) ee52361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee52361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(32,20), "ee52361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), ABISELECT(16,8), "ee52361");
+ check_base_class_offset(lv, (dd2361*), ABISELECT(16,8), "ee52361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52361.e");
+ test_class_info(&lv, &cd_ee52361);
+ dp->~ee52361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52361(Test_ee52361, "ee52361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52361C1Ev();
+extern void _ZN7ee52361D1Ev();
+Name_Map name_map_ee52361[] = {
+ NSPAIR(_ZN7ee52361C1Ev),
+ NSPAIR(_ZN7ee52361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee52361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, ABISELECT(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 _ZTI7ee52361[];
+extern void _ZN7ee523613barEv();
+extern void _ZN6dd23613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee523613barEv,_ZTv0_n16_N7ee523613barEv)();
+extern void ABISELECT(_ZThn32_N7ee523613barEv,_ZThn20_N7ee523613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52361[0]),
+ (VTBL_ENTRY)&_ZN7ee523613barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523613barEv,_ZTv0_n16_N7ee523613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee52361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee52361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee52361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee52361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee52361[] = {
+ {&(_ZTV7ee52361[4]), 4,16},
+ {&(_ZTV7ee52361[9]), 9,16},
+ {&(_ZTV7ee52361[14]), 14,16},
+ {&(_tg__ZTV6dd2361__7ee52361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee52361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee52361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee52361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52361[];
+extern VTBL_ENTRY _ZTV7ee52361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52361[];
+static VTBL_ENTRY alt_thunk_names647[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523613barEv,_ZTv0_n16_N7ee523613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523613barEv,_ZThn20_N7ee523613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52361 = { "ee52361", // class name
+ bases_ee52361, 4,
+ &(vtc_ee52361[0]), // expected_vtbl_contents
+ &(vtt_ee52361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52361),7, //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 ee62361 : dd2361 {
+ int e;
+ virtual void foo(); // _ZN7ee623613fooEv
+ virtual void bar(); // _ZN7ee623613barEv
+ ~ee62361(); // tgen
+ ee62361(); // tgen
+};
+//SIG(1 ee62361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62361 ::foo(){vfunc_called(this, "_ZN7ee623613fooEv");}
+void ee62361 ::bar(){vfunc_called(this, "_ZN7ee623613barEv");}
+ee62361 ::~ee62361(){ note_dtor("ee62361", this);} // tgen
+ee62361 ::ee62361(){ note_ctor("ee62361", this);} // tgen
+
+static void Test_ee62361()
+{
+ extern Class_Descriptor cd_ee62361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62361, buf);
+ ee62361 *dp, &lv = *(dp=new (buf) ee62361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee62361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(24,16), "ee62361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), 0, "ee62361");
+ check_base_class_offset(lv, (dd2361*), 0, "ee62361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62361.e");
+ test_class_info(&lv, &cd_ee62361);
+ dp->~ee62361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62361(Test_ee62361, "ee62361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62361C1Ev();
+extern void _ZN7ee62361D1Ev();
+Name_Map name_map_ee62361[] = {
+ NSPAIR(_ZN7ee62361C1Ev),
+ NSPAIR(_ZN7ee62361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee62361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62361[];
+extern void _ZN7ee623613fooEv();
+extern void _ZN7ee623613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623613fooEv,_ZTv0_n12_N7ee623613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623613fooEv,_ZThn16_N7ee623613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623613barEv,_ZTv0_n16_N7ee623613barEv)();
+extern void ABISELECT(_ZThn24_N7ee623613barEv,_ZThn16_N7ee623613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62361[0]),
+ (VTBL_ENTRY)&_ZN7ee623613fooEv,
+ (VTBL_ENTRY)&_ZN7ee623613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623613fooEv,_ZTv0_n12_N7ee623613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623613barEv,_ZTv0_n16_N7ee623613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee62361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee62361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee62361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee62361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee62361[] = {
+ {&(_ZTV7ee62361[3]), 3,11},
+ {&(_tg__ZTV6dd2361__7ee62361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee62361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee62361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee62361[4]), 4,6},
+ {&(_ZTV7ee62361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62361[];
+extern VTBL_ENTRY _ZTV7ee62361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62361[];
+static VTBL_ENTRY alt_thunk_names648[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23613fooEv,_ZThn16_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623613barEv,_ZTv0_n16_N7ee623613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623613barEv,_ZThn16_N7ee623613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623613fooEv,_ZTv0_n12_N7ee623613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623613fooEv,_ZThn16_N7ee623613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62361 = { "ee62361", // class name
+ bases_ee62361, 4,
+ &(vtc_ee62361[0]), // expected_vtbl_contents
+ &(vtt_ee62361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62361),6, //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 ee72361 : virtual dd2361 {
+ int e;
+ virtual void foo(); // _ZN7ee723613fooEv
+ virtual void bar(); // _ZN7ee723613barEv
+ ~ee72361(); // tgen
+ ee72361(); // tgen
+};
+//SIG(1 ee72361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72361 ::foo(){vfunc_called(this, "_ZN7ee723613fooEv");}
+void ee72361 ::bar(){vfunc_called(this, "_ZN7ee723613barEv");}
+ee72361 ::~ee72361(){ note_dtor("ee72361", this);} // tgen
+ee72361 ::ee72361(){ note_ctor("ee72361", this);} // tgen
+
+static void Test_ee72361()
+{
+ extern Class_Descriptor cd_ee72361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72361, buf);
+ ee72361 *dp, &lv = *(dp=new (buf) ee72361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee72361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd2361*), ABISELECT(32,20), "ee72361");
+ check_base_class_offset(lv, (cc361*)(dd2361*), ABISELECT(16,8), "ee72361");
+ check_base_class_offset(lv, (dd2361*), ABISELECT(16,8), "ee72361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72361.e");
+ test_class_info(&lv, &cd_ee72361);
+ dp->~ee72361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72361(Test_ee72361, "ee72361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72361C1Ev();
+extern void _ZN7ee72361D1Ev();
+Name_Map name_map_ee72361[] = {
+ NSPAIR(_ZN7ee72361C1Ev),
+ NSPAIR(_ZN7ee72361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd2361;
+extern VTBL_ENTRY _ZTI6dd2361[];
+extern VTBL_ENTRY _ZTV6dd2361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2361[];
+static Base_Class bases_ee72361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2361, 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 _ZTI7ee72361[];
+extern void _ZN7ee723613fooEv();
+extern void _ZN7ee723613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723613fooEv,_ZTv0_n16_N7ee723613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723613fooEv,_ZThn8_N7ee723613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723613fooEv,_ZTv0_n12_N7ee723613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723613fooEv,_ZThn20_N7ee723613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723613barEv,_ZTv0_n16_N7ee723613barEv)();
+extern void ABISELECT(_ZThn32_N7ee723613barEv,_ZThn20_N7ee723613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72361[0]),
+ (VTBL_ENTRY)&_ZN7ee723613fooEv,
+ (VTBL_ENTRY)&_ZN7ee723613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723613fooEv,_ZTv0_n16_N7ee723613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723613fooEv,_ZTv0_n12_N7ee723613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723613barEv,_ZTv0_n16_N7ee723613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72361[];
+extern void _ZN6dd23613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2361__7ee72361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&_ZN6dd23613fooEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd2361__7ee72361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd2361__7ee72361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2361__7ee72361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee72361[] = {
+ {&(_ZTV7ee72361[4]), 4,17},
+ {&(_ZTV7ee72361[10]), 10,17},
+ {&(_ZTV7ee72361[15]), 15,17},
+ {&(_tg__ZTV6dd2361__7ee72361[3]), 3,4},
+ {&(_tg__ZTV5cc3616dd2361__7ee72361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd2361__7ee72361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2361__7ee72361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72361[];
+extern VTBL_ENTRY _ZTV7ee72361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72361[];
+static VTBL_ENTRY alt_thunk_names649[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23613fooEv,_ZTv0_n12_N6dd23613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23613fooEv,_ZThn12_N6dd23613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723613barEv,_ZTv0_n16_N7ee723613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723613barEv,_ZThn20_N7ee723613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723613fooEv,_ZTv0_n12_N7ee723613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723613fooEv,_ZThn20_N7ee723613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723613fooEv,_ZTv0_n16_N7ee723613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723613fooEv,_ZThn8_N7ee723613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72361 = { "ee72361", // class name
+ bases_ee72361, 4,
+ &(vtc_ee72361[0]), // expected_vtbl_contents
+ &(vtt_ee72361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72361),7, //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 dd3361 : virtual cc361 {
+ int d;
+ virtual void foo(); // _ZN6dd33613fooEv
+ ~dd3361(); // tgen
+ dd3361(); // tgen
+};
+//SIG(-1 dd3361) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3361 ::foo(){vfunc_called(this, "_ZN6dd33613fooEv");}
+dd3361 ::~dd3361(){ note_dtor("dd3361", this);} // tgen
+dd3361 ::dd3361(){ note_ctor("dd3361", this);} // tgen
+
+static void Test_dd3361()
+{
+ extern Class_Descriptor cd_dd3361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3361, buf);
+ dd3361 *dp, &lv = *(dp=new (buf) dd3361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd3361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,16), "dd3361");
+ check_base_class_offset(lv, (cc361*), ABISELECT(16,8), "dd3361");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3361.d");
+ test_class_info(&lv, &cd_dd3361);
+ dp->~dd3361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3361(Test_dd3361, "dd3361", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3361C1Ev();
+extern void _ZN6dd3361D1Ev();
+Name_Map name_map_dd3361[] = {
+ NSPAIR(_ZN6dd3361C1Ev),
+ NSPAIR(_ZN6dd3361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd3361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(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 _ZTI6dd3361[];
+extern void _ZN6dd33613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_dd3361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd3361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd3361[] = {
+ {&(_ZTV6dd3361[4]), 4,16},
+ {&(_ZTV6dd3361[9]), 9,16},
+ {&(_ZTV6dd3361[14]), 14,16},
+ {&(_tg__ZTV5cc361__6dd3361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd3361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static VTBL_ENTRY alt_thunk_names650[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3361 = { "dd3361", // class name
+ bases_dd3361, 3,
+ &(vtc_dd3361[0]), // expected_vtbl_contents
+ &(vtt_dd3361[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3361),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names650,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03361 : dd3361 {
+ int e;
+ ~ee03361(); // tgen
+ ee03361(); // tgen
+};
+//SIG(1 ee03361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03361 ::~ee03361(){ note_dtor("ee03361", this);} // tgen
+ee03361 ::ee03361(){ note_ctor("ee03361", this);} // tgen
+
+static void Test_ee03361()
+{
+ extern Class_Descriptor cd_ee03361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03361, buf);
+ ee03361 *dp, &lv = *(dp=new (buf) ee03361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee03361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee03361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(16,12), "ee03361");
+ check_base_class_offset(lv, (dd3361*), 0, "ee03361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03361.e");
+ test_class_info(&lv, &cd_ee03361);
+ dp->~ee03361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03361(Test_ee03361, "ee03361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03361C1Ev();
+extern void _ZN7ee03361D1Ev();
+Name_Map name_map_ee03361[] = {
+ NSPAIR(_ZN7ee03361C1Ev),
+ NSPAIR(_ZN7ee03361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee03361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03361[];
+extern void _ZN6dd33613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee03361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee03361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee03361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee03361[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee03361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee03361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee03361[] = {
+ {&(_ZTV7ee03361[4]), 4,16},
+ {&(_tg__ZTV6dd3361__7ee03361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee03361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee03361[4]), 4,6},
+ {&(_ZTV7ee03361[9]), 9,16},
+ {&(_ZTV7ee03361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee03361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee03361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03361[];
+extern VTBL_ENTRY _ZTV7ee03361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03361[];
+static VTBL_ENTRY alt_thunk_names651[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03361 = { "ee03361", // class name
+ bases_ee03361, 4,
+ &(vtc_ee03361[0]), // expected_vtbl_contents
+ &(vtt_ee03361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03361),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names651,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13361 : virtual dd3361 {
+ int e;
+ ~ee13361(); // tgen
+ ee13361(); // tgen
+};
+//SIG(1 ee13361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13361 ::~ee13361(){ note_dtor("ee13361", this);} // tgen
+ee13361 ::ee13361(){ note_ctor("ee13361", this);} // tgen
+
+static void Test_ee13361()
+{
+ extern Class_Descriptor cd_ee13361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13361, buf);
+ ee13361 *dp, &lv = *(dp=new (buf) ee13361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee13361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee13361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(32,16), "ee13361");
+ check_base_class_offset(lv, (dd3361*), ABISELECT(16,8), "ee13361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13361.e");
+ test_class_info(&lv, &cd_ee13361);
+ dp->~ee13361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13361(Test_ee13361, "ee13361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13361C1Ev();
+extern void _ZN7ee13361D1Ev();
+Name_Map name_map_ee13361[] = {
+ NSPAIR(_ZN7ee13361C1Ev),
+ NSPAIR(_ZN7ee13361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee13361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, ABISELECT(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 _ZTI7ee13361[];
+extern void _ZN6dd33613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee13361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13361[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee13361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee13361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee13361[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee13361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee13361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee13361[] = {
+ {&(_ZTV7ee13361[5]), 5,22},
+ {&(_ZTV7ee13361[10]), 10,22},
+ {&(_ZTV7ee13361[15]), 15,22},
+ {&(_ZTV7ee13361[20]), 20,22},
+ {&(_tg__ZTV6dd3361__7ee13361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee13361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee13361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee13361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee13361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13361[];
+extern VTBL_ENTRY _ZTV7ee13361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13361[];
+static VTBL_ENTRY alt_thunk_names652[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13361 = { "ee13361", // class name
+ bases_ee13361, 4,
+ &(vtc_ee13361[0]), // expected_vtbl_contents
+ &(vtt_ee13361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13361),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13361),9, //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 ee23361 : dd3361 {
+ int e;
+ virtual void foo(); // _ZN7ee233613fooEv
+ ~ee23361(); // tgen
+ ee23361(); // tgen
+};
+//SIG(1 ee23361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23361 ::foo(){vfunc_called(this, "_ZN7ee233613fooEv");}
+ee23361 ::~ee23361(){ note_dtor("ee23361", this);} // tgen
+ee23361 ::ee23361(){ note_ctor("ee23361", this);} // tgen
+
+static void Test_ee23361()
+{
+ extern Class_Descriptor cd_ee23361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23361, buf);
+ ee23361 *dp, &lv = *(dp=new (buf) ee23361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee23361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee23361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(16,12), "ee23361");
+ check_base_class_offset(lv, (dd3361*), 0, "ee23361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23361.e");
+ test_class_info(&lv, &cd_ee23361);
+ dp->~ee23361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23361(Test_ee23361, "ee23361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23361C1Ev();
+extern void _ZN7ee23361D1Ev();
+Name_Map name_map_ee23361[] = {
+ NSPAIR(_ZN7ee23361C1Ev),
+ NSPAIR(_ZN7ee23361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee23361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23361[];
+extern void _ZN7ee233613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233613fooEv,_ZTv0_n16_N7ee233613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233613fooEv,_ZThn12_N7ee233613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233613fooEv,_ZTv0_n12_N7ee233613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233613fooEv,_ZThn20_N7ee233613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee23361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23361[0]),
+ (VTBL_ENTRY)&_ZN7ee233613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233613fooEv,_ZTv0_n16_N7ee233613fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233613fooEv,_ZTv0_n12_N7ee233613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee23361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee23361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee23361[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee23361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee23361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee23361[] = {
+ {&(_ZTV7ee23361[4]), 4,16},
+ {&(_tg__ZTV6dd3361__7ee23361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee23361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee23361[4]), 4,6},
+ {&(_ZTV7ee23361[9]), 9,16},
+ {&(_ZTV7ee23361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee23361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee23361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23361[];
+extern VTBL_ENTRY _ZTV7ee23361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23361[];
+static VTBL_ENTRY alt_thunk_names653[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233613fooEv,_ZTv0_n12_N7ee233613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233613fooEv,_ZThn20_N7ee233613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233613fooEv,_ZTv0_n16_N7ee233613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233613fooEv,_ZThn12_N7ee233613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23361 = { "ee23361", // class name
+ bases_ee23361, 4,
+ &(vtc_ee23361[0]), // expected_vtbl_contents
+ &(vtt_ee23361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23361),8, //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 ee33361 : virtual dd3361 {
+ int e;
+ virtual void foo(); // _ZN7ee333613fooEv
+ ~ee33361(); // tgen
+ ee33361(); // tgen
+};
+//SIG(1 ee33361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33361 ::foo(){vfunc_called(this, "_ZN7ee333613fooEv");}
+ee33361 ::~ee33361(){ note_dtor("ee33361", this);} // tgen
+ee33361 ::ee33361(){ note_ctor("ee33361", this);} // tgen
+
+static void Test_ee33361()
+{
+ extern Class_Descriptor cd_ee33361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33361, buf);
+ ee33361 *dp, &lv = *(dp=new (buf) ee33361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee33361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee33361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(32,16), "ee33361");
+ check_base_class_offset(lv, (dd3361*), ABISELECT(16,8), "ee33361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33361.e");
+ test_class_info(&lv, &cd_ee33361);
+ dp->~ee33361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33361(Test_ee33361, "ee33361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33361C1Ev();
+extern void _ZN7ee33361D1Ev();
+Name_Map name_map_ee33361[] = {
+ NSPAIR(_ZN7ee33361C1Ev),
+ NSPAIR(_ZN7ee33361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee33361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, ABISELECT(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 _ZTI7ee33361[];
+extern void _ZN7ee333613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333613fooEv,_ZTv0_n20_N7ee333613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333613fooEv,_ZThn8_N7ee333613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333613fooEv,_ZTv0_n16_N7ee333613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333613fooEv,_ZThn16_N7ee333613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333613fooEv,_ZTv0_n12_N7ee333613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333613fooEv,_ZThn24_N7ee333613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY vtc_ee33361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33361[0]),
+ (VTBL_ENTRY)&_ZN7ee333613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333613fooEv,_ZTv0_n20_N7ee333613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333613fooEv,_ZTv0_n16_N7ee333613fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333613fooEv,_ZTv0_n12_N7ee333613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee33361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee33361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee33361[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee33361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee33361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee33361[] = {
+ {&(_ZTV7ee33361[5]), 5,23},
+ {&(_ZTV7ee33361[11]), 11,23},
+ {&(_ZTV7ee33361[16]), 16,23},
+ {&(_ZTV7ee33361[21]), 21,23},
+ {&(_tg__ZTV6dd3361__7ee33361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee33361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee33361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee33361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee33361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33361[];
+extern VTBL_ENTRY _ZTV7ee33361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33361[];
+static VTBL_ENTRY alt_thunk_names654[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333613fooEv,_ZTv0_n12_N7ee333613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333613fooEv,_ZThn24_N7ee333613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333613fooEv,_ZTv0_n16_N7ee333613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333613fooEv,_ZThn16_N7ee333613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333613fooEv,_ZTv0_n20_N7ee333613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333613fooEv,_ZThn8_N7ee333613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33361 = { "ee33361", // class name
+ bases_ee33361, 4,
+ &(vtc_ee33361[0]), // expected_vtbl_contents
+ &(vtt_ee33361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33361),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33361),9, //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 ee43361 : dd3361 {
+ int e;
+ virtual void bar(); // _ZN7ee433613barEv
+ ~ee43361(); // tgen
+ ee43361(); // tgen
+};
+//SIG(1 ee43361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43361 ::bar(){vfunc_called(this, "_ZN7ee433613barEv");}
+ee43361 ::~ee43361(){ note_dtor("ee43361", this);} // tgen
+ee43361 ::ee43361(){ note_ctor("ee43361", this);} // tgen
+
+static void Test_ee43361()
+{
+ extern Class_Descriptor cd_ee43361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43361, buf);
+ ee43361 *dp, &lv = *(dp=new (buf) ee43361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee43361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee43361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(16,12), "ee43361");
+ check_base_class_offset(lv, (dd3361*), 0, "ee43361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43361.e");
+ test_class_info(&lv, &cd_ee43361);
+ dp->~ee43361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43361(Test_ee43361, "ee43361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43361C1Ev();
+extern void _ZN7ee43361D1Ev();
+Name_Map name_map_ee43361[] = {
+ NSPAIR(_ZN7ee43361C1Ev),
+ NSPAIR(_ZN7ee43361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee43361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43361[];
+extern void _ZN6dd33613fooEv();
+extern void _ZN7ee433613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433613barEv,_ZTv0_n16_N7ee433613barEv)();
+extern void ABISELECT(_ZThn32_N7ee433613barEv,_ZThn20_N7ee433613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+ (VTBL_ENTRY)&_ZN7ee433613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433613barEv,_ZTv0_n16_N7ee433613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee43361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee43361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee43361[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee43361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee43361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee43361[] = {
+ {&(_ZTV7ee43361[4]), 4,17},
+ {&(_tg__ZTV6dd3361__7ee43361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee43361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee43361[4]), 4,6},
+ {&(_ZTV7ee43361[10]), 10,17},
+ {&(_ZTV7ee43361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee43361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee43361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43361[];
+extern VTBL_ENTRY _ZTV7ee43361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43361[];
+static VTBL_ENTRY alt_thunk_names655[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433613barEv,_ZTv0_n16_N7ee433613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433613barEv,_ZThn20_N7ee433613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43361 = { "ee43361", // class name
+ bases_ee43361, 4,
+ &(vtc_ee43361[0]), // expected_vtbl_contents
+ &(vtt_ee43361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43361),8, //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 ee53361 : virtual dd3361 {
+ int e;
+ virtual void bar(); // _ZN7ee533613barEv
+ ~ee53361(); // tgen
+ ee53361(); // tgen
+};
+//SIG(1 ee53361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53361 ::bar(){vfunc_called(this, "_ZN7ee533613barEv");}
+ee53361 ::~ee53361(){ note_dtor("ee53361", this);} // tgen
+ee53361 ::ee53361(){ note_ctor("ee53361", this);} // tgen
+
+static void Test_ee53361()
+{
+ extern Class_Descriptor cd_ee53361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53361, buf);
+ ee53361 *dp, &lv = *(dp=new (buf) ee53361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee53361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee53361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(32,16), "ee53361");
+ check_base_class_offset(lv, (dd3361*), ABISELECT(16,8), "ee53361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53361.e");
+ test_class_info(&lv, &cd_ee53361);
+ dp->~ee53361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53361(Test_ee53361, "ee53361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53361C1Ev();
+extern void _ZN7ee53361D1Ev();
+Name_Map name_map_ee53361[] = {
+ NSPAIR(_ZN7ee53361C1Ev),
+ NSPAIR(_ZN7ee53361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee53361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, ABISELECT(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 _ZTI7ee53361[];
+extern void _ZN7ee533613barEv();
+extern void _ZN6dd33613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533613barEv,_ZTv0_n16_N7ee533613barEv)();
+extern void ABISELECT(_ZThn48_N7ee533613barEv,_ZThn24_N7ee533613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53361[0]),
+ (VTBL_ENTRY)&_ZN7ee533613barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533613barEv,_ZTv0_n16_N7ee533613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee53361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee53361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee53361[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee53361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee53361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee53361[] = {
+ {&(_ZTV7ee53361[5]), 5,23},
+ {&(_ZTV7ee53361[11]), 11,23},
+ {&(_ZTV7ee53361[16]), 16,23},
+ {&(_ZTV7ee53361[21]), 21,23},
+ {&(_tg__ZTV6dd3361__7ee53361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee53361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee53361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee53361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee53361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53361[];
+extern VTBL_ENTRY _ZTV7ee53361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53361[];
+static VTBL_ENTRY alt_thunk_names656[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533613barEv,_ZTv0_n16_N7ee533613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533613barEv,_ZThn24_N7ee533613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53361 = { "ee53361", // class name
+ bases_ee53361, 4,
+ &(vtc_ee53361[0]), // expected_vtbl_contents
+ &(vtt_ee53361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53361),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53361),9, //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 ee63361 : dd3361 {
+ int e;
+ virtual void foo(); // _ZN7ee633613fooEv
+ virtual void bar(); // _ZN7ee633613barEv
+ ~ee63361(); // tgen
+ ee63361(); // tgen
+};
+//SIG(1 ee63361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63361 ::foo(){vfunc_called(this, "_ZN7ee633613fooEv");}
+void ee63361 ::bar(){vfunc_called(this, "_ZN7ee633613barEv");}
+ee63361 ::~ee63361(){ note_dtor("ee63361", this);} // tgen
+ee63361 ::ee63361(){ note_ctor("ee63361", this);} // tgen
+
+static void Test_ee63361()
+{
+ extern Class_Descriptor cd_ee63361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63361, buf);
+ ee63361 *dp, &lv = *(dp=new (buf) ee63361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee63361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee63361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(16,12), "ee63361");
+ check_base_class_offset(lv, (dd3361*), 0, "ee63361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63361.e");
+ test_class_info(&lv, &cd_ee63361);
+ dp->~ee63361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63361(Test_ee63361, "ee63361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63361C1Ev();
+extern void _ZN7ee63361D1Ev();
+Name_Map name_map_ee63361[] = {
+ NSPAIR(_ZN7ee63361C1Ev),
+ NSPAIR(_ZN7ee63361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee63361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63361[];
+extern void _ZN7ee633613fooEv();
+extern void _ZN7ee633613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633613fooEv,_ZTv0_n16_N7ee633613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633613fooEv,_ZThn12_N7ee633613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633613fooEv,_ZTv0_n12_N7ee633613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633613fooEv,_ZThn20_N7ee633613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633613barEv,_ZTv0_n16_N7ee633613barEv)();
+extern void ABISELECT(_ZThn32_N7ee633613barEv,_ZThn20_N7ee633613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63361[0]),
+ (VTBL_ENTRY)&_ZN7ee633613fooEv,
+ (VTBL_ENTRY)&_ZN7ee633613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633613fooEv,_ZTv0_n16_N7ee633613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633613fooEv,_ZTv0_n12_N7ee633613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633613barEv,_ZTv0_n16_N7ee633613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee63361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee63361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee63361[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee63361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee63361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee63361[] = {
+ {&(_ZTV7ee63361[4]), 4,17},
+ {&(_tg__ZTV6dd3361__7ee63361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee63361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee63361[4]), 4,6},
+ {&(_ZTV7ee63361[10]), 10,17},
+ {&(_ZTV7ee63361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee63361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee63361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63361[];
+extern VTBL_ENTRY _ZTV7ee63361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63361[];
+static VTBL_ENTRY alt_thunk_names657[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn20_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn12_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633613barEv,_ZTv0_n16_N7ee633613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633613barEv,_ZThn20_N7ee633613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633613fooEv,_ZTv0_n12_N7ee633613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633613fooEv,_ZThn20_N7ee633613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633613fooEv,_ZTv0_n16_N7ee633613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633613fooEv,_ZThn12_N7ee633613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63361 = { "ee63361", // class name
+ bases_ee63361, 4,
+ &(vtc_ee63361[0]), // expected_vtbl_contents
+ &(vtt_ee63361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63361),8, //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 ee73361 : virtual dd3361 {
+ int e;
+ virtual void foo(); // _ZN7ee733613fooEv
+ virtual void bar(); // _ZN7ee733613barEv
+ ~ee73361(); // tgen
+ ee73361(); // tgen
+};
+//SIG(1 ee73361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73361 ::foo(){vfunc_called(this, "_ZN7ee733613fooEv");}
+void ee73361 ::bar(){vfunc_called(this, "_ZN7ee733613barEv");}
+ee73361 ::~ee73361(){ note_dtor("ee73361", this);} // tgen
+ee73361 ::ee73361(){ note_ctor("ee73361", this);} // tgen
+
+static void Test_ee73361()
+{
+ extern Class_Descriptor cd_ee73361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73361, buf);
+ ee73361 *dp, &lv = *(dp=new (buf) ee73361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee73361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee73361");
+ check_base_class_offset(lv, (cc361*)(dd3361*), ABISELECT(32,16), "ee73361");
+ check_base_class_offset(lv, (dd3361*), ABISELECT(16,8), "ee73361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73361.e");
+ test_class_info(&lv, &cd_ee73361);
+ dp->~ee73361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73361(Test_ee73361, "ee73361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73361C1Ev();
+extern void _ZN7ee73361D1Ev();
+Name_Map name_map_ee73361[] = {
+ NSPAIR(_ZN7ee73361C1Ev),
+ NSPAIR(_ZN7ee73361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd3361;
+extern VTBL_ENTRY _ZTI6dd3361[];
+extern VTBL_ENTRY _ZTV6dd3361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3361[];
+static Base_Class bases_ee73361[] = {
+ // 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_bb61, 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_cc361, 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_dd3361, 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 _ZTI7ee73361[];
+extern void _ZN7ee733613fooEv();
+extern void _ZN7ee733613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733613fooEv,_ZTv0_n20_N7ee733613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733613fooEv,_ZThn8_N7ee733613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733613fooEv,_ZTv0_n16_N7ee733613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733613fooEv,_ZThn16_N7ee733613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733613fooEv,_ZTv0_n12_N7ee733613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733613fooEv,_ZThn24_N7ee733613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733613barEv,_ZTv0_n16_N7ee733613barEv)();
+extern void ABISELECT(_ZThn48_N7ee733613barEv,_ZThn24_N7ee733613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73361[0]),
+ (VTBL_ENTRY)&_ZN7ee733613fooEv,
+ (VTBL_ENTRY)&_ZN7ee733613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733613fooEv,_ZTv0_n20_N7ee733613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733613fooEv,_ZTv0_n16_N7ee733613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733613fooEv,_ZTv0_n12_N7ee733613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733613barEv,_ZTv0_n16_N7ee733613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73361[];
+extern void _ZN6dd33613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3361__7ee73361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&_ZN6dd33613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd3361__7ee73361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3361__7ee73361[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee73361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee73361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee73361[] = {
+ {&(_ZTV7ee73361[5]), 5,24},
+ {&(_ZTV7ee73361[12]), 12,24},
+ {&(_ZTV7ee73361[17]), 17,24},
+ {&(_ZTV7ee73361[22]), 22,24},
+ {&(_tg__ZTV6dd3361__7ee73361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd3361__7ee73361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3361__7ee73361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee73361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee73361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73361[];
+extern VTBL_ENTRY _ZTV7ee73361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73361[];
+static VTBL_ENTRY alt_thunk_names658[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33613fooEv,_ZTv0_n12_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33613fooEv,_ZThn16_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33613fooEv,_ZTv0_n16_N6dd33613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33613fooEv,_ZThn8_N6dd33613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733613barEv,_ZTv0_n16_N7ee733613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733613barEv,_ZThn24_N7ee733613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733613fooEv,_ZTv0_n12_N7ee733613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733613fooEv,_ZThn24_N7ee733613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733613fooEv,_ZTv0_n16_N7ee733613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733613fooEv,_ZThn16_N7ee733613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733613fooEv,_ZTv0_n20_N7ee733613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733613fooEv,_ZThn8_N7ee733613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73361 = { "ee73361", // class name
+ bases_ee73361, 4,
+ &(vtc_ee73361[0]), // expected_vtbl_contents
+ &(vtt_ee73361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73361),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73361),9, //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 dd4361 : cc361 {
+ int d;
+ virtual void bar(); // _ZN6dd43613barEv
+ ~dd4361(); // tgen
+ dd4361(); // tgen
+};
+//SIG(-1 dd4361) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4361 ::bar(){vfunc_called(this, "_ZN6dd43613barEv");}
+dd4361 ::~dd4361(){ note_dtor("dd4361", this);} // tgen
+dd4361 ::dd4361(){ note_ctor("dd4361", this);} // tgen
+
+static void Test_dd4361()
+{
+ extern Class_Descriptor cd_dd4361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4361, buf);
+ dd4361 *dp, &lv = *(dp=new (buf) dd4361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd4361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(16,12), "dd4361");
+ check_base_class_offset(lv, (cc361*), 0, "dd4361");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4361.d");
+ test_class_info(&lv, &cd_dd4361);
+ dp->~dd4361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4361(Test_dd4361, "dd4361", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4361C1Ev();
+extern void _ZN6dd4361D1Ev();
+Name_Map name_map_dd4361[] = {
+ NSPAIR(_ZN6dd4361C1Ev),
+ NSPAIR(_ZN6dd4361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd4361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd4361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd4361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd4361[] = {
+ {&(_ZTV6dd4361[3]), 3,11},
+ {&(_tg__ZTV5cc361__6dd4361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd4361[4]), 4,6},
+ {&(_ZTV6dd4361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static VTBL_ENTRY alt_thunk_names659[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4361 = { "dd4361", // class name
+ bases_dd4361, 3,
+ &(vtc_dd4361[0]), // expected_vtbl_contents
+ &(vtt_dd4361[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4361),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names659,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04361 : dd4361 {
+ int e;
+ ~ee04361(); // tgen
+ ee04361(); // tgen
+};
+//SIG(1 ee04361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04361 ::~ee04361(){ note_dtor("ee04361", this);} // tgen
+ee04361 ::ee04361(){ note_ctor("ee04361", this);} // tgen
+
+static void Test_ee04361()
+{
+ extern Class_Descriptor cd_ee04361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04361, buf);
+ ee04361 *dp, &lv = *(dp=new (buf) ee04361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee04361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(24,16), "ee04361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), 0, "ee04361");
+ check_base_class_offset(lv, (dd4361*), 0, "ee04361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04361.e");
+ test_class_info(&lv, &cd_ee04361);
+ dp->~ee04361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04361(Test_ee04361, "ee04361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04361C1Ev();
+extern void _ZN7ee04361D1Ev();
+Name_Map name_map_ee04361[] = {
+ NSPAIR(_ZN7ee04361C1Ev),
+ NSPAIR(_ZN7ee04361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee04361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee04361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee04361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee04361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee04361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee04361[] = {
+ {&(_ZTV7ee04361[3]), 3,11},
+ {&(_tg__ZTV6dd4361__7ee04361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee04361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee04361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee04361[4]), 4,6},
+ {&(_ZTV7ee04361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04361[];
+extern VTBL_ENTRY _ZTV7ee04361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04361[];
+static VTBL_ENTRY alt_thunk_names660[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04361 = { "ee04361", // class name
+ bases_ee04361, 4,
+ &(vtc_ee04361[0]), // expected_vtbl_contents
+ &(vtt_ee04361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04361),6, //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 ee14361 : virtual dd4361 {
+ int e;
+ ~ee14361(); // tgen
+ ee14361(); // tgen
+};
+//SIG(1 ee14361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14361 ::~ee14361(){ note_dtor("ee14361", this);} // tgen
+ee14361 ::ee14361(){ note_ctor("ee14361", this);} // tgen
+
+static void Test_ee14361()
+{
+ extern Class_Descriptor cd_ee14361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14361, buf);
+ ee14361 *dp, &lv = *(dp=new (buf) ee14361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee14361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(32,20), "ee14361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), ABISELECT(16,8), "ee14361");
+ check_base_class_offset(lv, (dd4361*), ABISELECT(16,8), "ee14361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14361.e");
+ test_class_info(&lv, &cd_ee14361);
+ dp->~ee14361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14361(Test_ee14361, "ee14361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14361C1Ev();
+extern void _ZN7ee14361D1Ev();
+Name_Map name_map_ee14361[] = {
+ NSPAIR(_ZN7ee14361C1Ev),
+ NSPAIR(_ZN7ee14361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee14361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, 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 _ZTI7ee14361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14361[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee14361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee14361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee14361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee14361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee14361[] = {
+ {&(_ZTV7ee14361[4]), 4,17},
+ {&(_ZTV7ee14361[9]), 9,17},
+ {&(_ZTV7ee14361[15]), 15,17},
+ {&(_tg__ZTV6dd4361__7ee14361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee14361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee14361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee14361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14361[];
+extern VTBL_ENTRY _ZTV7ee14361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14361[];
+static VTBL_ENTRY alt_thunk_names661[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14361 = { "ee14361", // class name
+ bases_ee14361, 4,
+ &(vtc_ee14361[0]), // expected_vtbl_contents
+ &(vtt_ee14361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14361),7, //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 ee24361 : dd4361 {
+ int e;
+ virtual void foo(); // _ZN7ee243613fooEv
+ ~ee24361(); // tgen
+ ee24361(); // tgen
+};
+//SIG(1 ee24361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24361 ::foo(){vfunc_called(this, "_ZN7ee243613fooEv");}
+ee24361 ::~ee24361(){ note_dtor("ee24361", this);} // tgen
+ee24361 ::ee24361(){ note_ctor("ee24361", this);} // tgen
+
+static void Test_ee24361()
+{
+ extern Class_Descriptor cd_ee24361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24361, buf);
+ ee24361 *dp, &lv = *(dp=new (buf) ee24361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee24361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(24,16), "ee24361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), 0, "ee24361");
+ check_base_class_offset(lv, (dd4361*), 0, "ee24361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24361.e");
+ test_class_info(&lv, &cd_ee24361);
+ dp->~ee24361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24361(Test_ee24361, "ee24361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24361C1Ev();
+extern void _ZN7ee24361D1Ev();
+Name_Map name_map_ee24361[] = {
+ NSPAIR(_ZN7ee24361C1Ev),
+ NSPAIR(_ZN7ee24361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee24361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24361[];
+extern void _ZN7ee243613fooEv();
+extern void _ZN6dd43613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243613fooEv,_ZTv0_n12_N7ee243613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243613fooEv,_ZThn16_N7ee243613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24361[0]),
+ (VTBL_ENTRY)&_ZN7ee243613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243613fooEv,_ZTv0_n12_N7ee243613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee24361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee24361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee24361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee24361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee24361[] = {
+ {&(_ZTV7ee24361[3]), 3,11},
+ {&(_tg__ZTV6dd4361__7ee24361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee24361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee24361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee24361[4]), 4,6},
+ {&(_ZTV7ee24361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24361[];
+extern VTBL_ENTRY _ZTV7ee24361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24361[];
+static VTBL_ENTRY alt_thunk_names662[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243613fooEv,_ZTv0_n12_N7ee243613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243613fooEv,_ZThn16_N7ee243613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24361 = { "ee24361", // class name
+ bases_ee24361, 4,
+ &(vtc_ee24361[0]), // expected_vtbl_contents
+ &(vtt_ee24361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24361),6, //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 ee34361 : virtual dd4361 {
+ int e;
+ virtual void foo(); // _ZN7ee343613fooEv
+ ~ee34361(); // tgen
+ ee34361(); // tgen
+};
+//SIG(1 ee34361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34361 ::foo(){vfunc_called(this, "_ZN7ee343613fooEv");}
+ee34361 ::~ee34361(){ note_dtor("ee34361", this);} // tgen
+ee34361 ::ee34361(){ note_ctor("ee34361", this);} // tgen
+
+static void Test_ee34361()
+{
+ extern Class_Descriptor cd_ee34361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34361, buf);
+ ee34361 *dp, &lv = *(dp=new (buf) ee34361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee34361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(32,20), "ee34361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), ABISELECT(16,8), "ee34361");
+ check_base_class_offset(lv, (dd4361*), ABISELECT(16,8), "ee34361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34361.e");
+ test_class_info(&lv, &cd_ee34361);
+ dp->~ee34361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34361(Test_ee34361, "ee34361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34361C1Ev();
+extern void _ZN7ee34361D1Ev();
+Name_Map name_map_ee34361[] = {
+ NSPAIR(_ZN7ee34361C1Ev),
+ NSPAIR(_ZN7ee34361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee34361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, ABISELECT(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 _ZTI7ee34361[];
+extern void _ZN7ee343613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343613fooEv,_ZTv0_n16_N7ee343613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343613fooEv,_ZThn8_N7ee343613fooEv)() __attribute__((weak));
+extern void _ZN6dd43613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343613fooEv,_ZTv0_n12_N7ee343613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343613fooEv,_ZThn20_N7ee343613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34361[0]),
+ (VTBL_ENTRY)&_ZN7ee343613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343613fooEv,_ZTv0_n16_N7ee343613fooEv),
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343613fooEv,_ZTv0_n12_N7ee343613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee34361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee34361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee34361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee34361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee34361[] = {
+ {&(_ZTV7ee34361[4]), 4,18},
+ {&(_ZTV7ee34361[10]), 10,18},
+ {&(_ZTV7ee34361[16]), 16,18},
+ {&(_tg__ZTV6dd4361__7ee34361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee34361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee34361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee34361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34361[];
+extern VTBL_ENTRY _ZTV7ee34361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34361[];
+static VTBL_ENTRY alt_thunk_names663[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343613fooEv,_ZTv0_n12_N7ee343613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343613fooEv,_ZThn20_N7ee343613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343613fooEv,_ZTv0_n16_N7ee343613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343613fooEv,_ZThn8_N7ee343613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34361 = { "ee34361", // class name
+ bases_ee34361, 4,
+ &(vtc_ee34361[0]), // expected_vtbl_contents
+ &(vtt_ee34361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34361),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34361),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names663,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44361 : dd4361 {
+ int e;
+ virtual void bar(); // _ZN7ee443613barEv
+ ~ee44361(); // tgen
+ ee44361(); // tgen
+};
+//SIG(1 ee44361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44361 ::bar(){vfunc_called(this, "_ZN7ee443613barEv");}
+ee44361 ::~ee44361(){ note_dtor("ee44361", this);} // tgen
+ee44361 ::ee44361(){ note_ctor("ee44361", this);} // tgen
+
+static void Test_ee44361()
+{
+ extern Class_Descriptor cd_ee44361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44361, buf);
+ ee44361 *dp, &lv = *(dp=new (buf) ee44361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee44361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(24,16), "ee44361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), 0, "ee44361");
+ check_base_class_offset(lv, (dd4361*), 0, "ee44361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44361.e");
+ test_class_info(&lv, &cd_ee44361);
+ dp->~ee44361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44361(Test_ee44361, "ee44361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44361C1Ev();
+extern void _ZN7ee44361D1Ev();
+Name_Map name_map_ee44361[] = {
+ NSPAIR(_ZN7ee44361C1Ev),
+ NSPAIR(_ZN7ee44361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee44361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN7ee443613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee443613barEv,_ZTv0_n16_N7ee443613barEv)();
+extern void ABISELECT(_ZThn24_N7ee443613barEv,_ZThn16_N7ee443613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN7ee443613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443613barEv,_ZTv0_n16_N7ee443613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee44361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee44361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee44361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee44361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee44361[] = {
+ {&(_ZTV7ee44361[3]), 3,11},
+ {&(_tg__ZTV6dd4361__7ee44361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee44361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee44361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee44361[4]), 4,6},
+ {&(_ZTV7ee44361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44361[];
+extern VTBL_ENTRY _ZTV7ee44361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44361[];
+static VTBL_ENTRY alt_thunk_names664[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443613barEv,_ZTv0_n16_N7ee443613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443613barEv,_ZThn16_N7ee443613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44361 = { "ee44361", // class name
+ bases_ee44361, 4,
+ &(vtc_ee44361[0]), // expected_vtbl_contents
+ &(vtt_ee44361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44361),6, //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 ee54361 : virtual dd4361 {
+ int e;
+ virtual void bar(); // _ZN7ee543613barEv
+ ~ee54361(); // tgen
+ ee54361(); // tgen
+};
+//SIG(1 ee54361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54361 ::bar(){vfunc_called(this, "_ZN7ee543613barEv");}
+ee54361 ::~ee54361(){ note_dtor("ee54361", this);} // tgen
+ee54361 ::ee54361(){ note_ctor("ee54361", this);} // tgen
+
+static void Test_ee54361()
+{
+ extern Class_Descriptor cd_ee54361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54361, buf);
+ ee54361 *dp, &lv = *(dp=new (buf) ee54361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee54361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(32,20), "ee54361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), ABISELECT(16,8), "ee54361");
+ check_base_class_offset(lv, (dd4361*), ABISELECT(16,8), "ee54361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54361.e");
+ test_class_info(&lv, &cd_ee54361);
+ dp->~ee54361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54361(Test_ee54361, "ee54361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54361C1Ev();
+extern void _ZN7ee54361D1Ev();
+Name_Map name_map_ee54361[] = {
+ NSPAIR(_ZN7ee54361C1Ev),
+ NSPAIR(_ZN7ee54361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee54361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, ABISELECT(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 _ZTI7ee54361[];
+extern void _ZN7ee543613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543613barEv,_ZTv0_n20_N7ee543613barEv)();
+extern void ABISELECT(_ZThn16_N7ee543613barEv,_ZThn8_N7ee543613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543613barEv,_ZTv0_n16_N7ee543613barEv)();
+extern void ABISELECT(_ZThn32_N7ee543613barEv,_ZThn20_N7ee543613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54361[0]),
+ (VTBL_ENTRY)&_ZN7ee543613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543613barEv,_ZTv0_n20_N7ee543613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543613barEv,_ZTv0_n16_N7ee543613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee54361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee54361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee54361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee54361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee54361[] = {
+ {&(_ZTV7ee54361[4]), 4,18},
+ {&(_ZTV7ee54361[10]), 10,18},
+ {&(_ZTV7ee54361[16]), 16,18},
+ {&(_tg__ZTV6dd4361__7ee54361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee54361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee54361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee54361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54361[];
+extern VTBL_ENTRY _ZTV7ee54361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54361[];
+static VTBL_ENTRY alt_thunk_names665[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543613barEv,_ZTv0_n16_N7ee543613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543613barEv,_ZThn20_N7ee543613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543613barEv,_ZTv0_n20_N7ee543613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543613barEv,_ZThn8_N7ee543613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54361 = { "ee54361", // class name
+ bases_ee54361, 4,
+ &(vtc_ee54361[0]), // expected_vtbl_contents
+ &(vtt_ee54361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54361),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54361),7, //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 ee64361 : dd4361 {
+ int e;
+ virtual void foo(); // _ZN7ee643613fooEv
+ virtual void bar(); // _ZN7ee643613barEv
+ ~ee64361(); // tgen
+ ee64361(); // tgen
+};
+//SIG(1 ee64361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64361 ::foo(){vfunc_called(this, "_ZN7ee643613fooEv");}
+void ee64361 ::bar(){vfunc_called(this, "_ZN7ee643613barEv");}
+ee64361 ::~ee64361(){ note_dtor("ee64361", this);} // tgen
+ee64361 ::ee64361(){ note_ctor("ee64361", this);} // tgen
+
+static void Test_ee64361()
+{
+ extern Class_Descriptor cd_ee64361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64361, buf);
+ ee64361 *dp, &lv = *(dp=new (buf) ee64361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee64361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(24,16), "ee64361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), 0, "ee64361");
+ check_base_class_offset(lv, (dd4361*), 0, "ee64361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64361.e");
+ test_class_info(&lv, &cd_ee64361);
+ dp->~ee64361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64361(Test_ee64361, "ee64361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64361C1Ev();
+extern void _ZN7ee64361D1Ev();
+Name_Map name_map_ee64361[] = {
+ NSPAIR(_ZN7ee64361C1Ev),
+ NSPAIR(_ZN7ee64361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee64361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64361[];
+extern void _ZN7ee643613fooEv();
+extern void _ZN7ee643613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643613fooEv,_ZTv0_n12_N7ee643613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643613fooEv,_ZThn16_N7ee643613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643613barEv,_ZTv0_n16_N7ee643613barEv)();
+extern void ABISELECT(_ZThn24_N7ee643613barEv,_ZThn16_N7ee643613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64361[0]),
+ (VTBL_ENTRY)&_ZN7ee643613fooEv,
+ (VTBL_ENTRY)&_ZN7ee643613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643613fooEv,_ZTv0_n12_N7ee643613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643613barEv,_ZTv0_n16_N7ee643613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee64361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee64361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee64361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee64361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee64361[] = {
+ {&(_ZTV7ee64361[3]), 3,11},
+ {&(_tg__ZTV6dd4361__7ee64361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee64361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee64361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee64361[4]), 4,6},
+ {&(_ZTV7ee64361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64361[];
+extern VTBL_ENTRY _ZTV7ee64361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64361[];
+static VTBL_ENTRY alt_thunk_names666[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43613barEv,_ZThn16_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643613barEv,_ZTv0_n16_N7ee643613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643613barEv,_ZThn16_N7ee643613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643613fooEv,_ZTv0_n12_N7ee643613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643613fooEv,_ZThn16_N7ee643613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64361 = { "ee64361", // class name
+ bases_ee64361, 4,
+ &(vtc_ee64361[0]), // expected_vtbl_contents
+ &(vtt_ee64361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64361),6, //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 ee74361 : virtual dd4361 {
+ int e;
+ virtual void foo(); // _ZN7ee743613fooEv
+ virtual void bar(); // _ZN7ee743613barEv
+ ~ee74361(); // tgen
+ ee74361(); // tgen
+};
+//SIG(1 ee74361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74361 ::foo(){vfunc_called(this, "_ZN7ee743613fooEv");}
+void ee74361 ::bar(){vfunc_called(this, "_ZN7ee743613barEv");}
+ee74361 ::~ee74361(){ note_dtor("ee74361", this);} // tgen
+ee74361 ::ee74361(){ note_ctor("ee74361", this);} // tgen
+
+static void Test_ee74361()
+{
+ extern Class_Descriptor cd_ee74361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74361, buf);
+ ee74361 *dp, &lv = *(dp=new (buf) ee74361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee74361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd4361*), ABISELECT(32,20), "ee74361");
+ check_base_class_offset(lv, (cc361*)(dd4361*), ABISELECT(16,8), "ee74361");
+ check_base_class_offset(lv, (dd4361*), ABISELECT(16,8), "ee74361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74361.e");
+ test_class_info(&lv, &cd_ee74361);
+ dp->~ee74361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74361(Test_ee74361, "ee74361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74361C1Ev();
+extern void _ZN7ee74361D1Ev();
+Name_Map name_map_ee74361[] = {
+ NSPAIR(_ZN7ee74361C1Ev),
+ NSPAIR(_ZN7ee74361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd4361;
+extern VTBL_ENTRY _ZTI6dd4361[];
+extern VTBL_ENTRY _ZTV6dd4361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4361[];
+static Base_Class bases_ee74361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4361, ABISELECT(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 _ZTI7ee74361[];
+extern void _ZN7ee743613fooEv();
+extern void _ZN7ee743613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743613fooEv,_ZTv0_n16_N7ee743613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743613fooEv,_ZThn8_N7ee743613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743613barEv,_ZTv0_n20_N7ee743613barEv)();
+extern void ABISELECT(_ZThn16_N7ee743613barEv,_ZThn8_N7ee743613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743613fooEv,_ZTv0_n12_N7ee743613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743613fooEv,_ZThn20_N7ee743613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743613barEv,_ZTv0_n16_N7ee743613barEv)();
+extern void ABISELECT(_ZThn32_N7ee743613barEv,_ZThn20_N7ee743613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74361[0]),
+ (VTBL_ENTRY)&_ZN7ee743613fooEv,
+ (VTBL_ENTRY)&_ZN7ee743613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743613fooEv,_ZTv0_n16_N7ee743613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743613barEv,_ZTv0_n20_N7ee743613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743613fooEv,_ZTv0_n12_N7ee743613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743613barEv,_ZTv0_n16_N7ee743613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74361[];
+extern void _ZN5cc3613fooEv();
+extern void _ZN6dd43613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4361__7ee74361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ (VTBL_ENTRY)&_ZN6dd43613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd4361__7ee74361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd4361__7ee74361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv)();
+extern void ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4361__7ee74361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv),
+};
+static VTT_ENTRY vtt_ee74361[] = {
+ {&(_ZTV7ee74361[4]), 4,19},
+ {&(_ZTV7ee74361[11]), 11,19},
+ {&(_ZTV7ee74361[17]), 17,19},
+ {&(_tg__ZTV6dd4361__7ee74361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd4361__7ee74361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd4361__7ee74361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4361__7ee74361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74361[];
+extern VTBL_ENTRY _ZTV7ee74361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74361[];
+static VTBL_ENTRY alt_thunk_names667[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43613barEv,_ZTv0_n16_N6dd43613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43613barEv,_ZThn12_N6dd43613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743613barEv,_ZTv0_n16_N7ee743613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743613barEv,_ZThn20_N7ee743613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743613fooEv,_ZTv0_n12_N7ee743613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743613fooEv,_ZThn20_N7ee743613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743613barEv,_ZTv0_n20_N7ee743613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743613barEv,_ZThn8_N7ee743613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743613fooEv,_ZTv0_n16_N7ee743613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743613fooEv,_ZThn8_N7ee743613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74361 = { "ee74361", // class name
+ bases_ee74361, 4,
+ &(vtc_ee74361[0]), // expected_vtbl_contents
+ &(vtt_ee74361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74361),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74361),7, //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 dd5361 : virtual cc361 {
+ int d;
+ virtual void bar(); // _ZN6dd53613barEv
+ ~dd5361(); // tgen
+ dd5361(); // tgen
+};
+//SIG(-1 dd5361) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5361 ::bar(){vfunc_called(this, "_ZN6dd53613barEv");}
+dd5361 ::~dd5361(){ note_dtor("dd5361", this);} // tgen
+dd5361 ::dd5361(){ note_ctor("dd5361", this);} // tgen
+
+static void Test_dd5361()
+{
+ extern Class_Descriptor cd_dd5361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5361, buf);
+ dd5361 *dp, &lv = *(dp=new (buf) dd5361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd5361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,16), "dd5361");
+ check_base_class_offset(lv, (cc361*), ABISELECT(16,8), "dd5361");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5361.d");
+ test_class_info(&lv, &cd_dd5361);
+ dp->~dd5361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5361(Test_dd5361, "dd5361", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5361C1Ev();
+extern void _ZN6dd5361D1Ev();
+Name_Map name_map_dd5361[] = {
+ NSPAIR(_ZN6dd5361C1Ev),
+ NSPAIR(_ZN6dd5361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd5361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(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 _ZTI6dd5361[];
+extern void _ZN6dd53613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd5361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd5361[] = {
+ {&(_ZTV6dd5361[4]), 4,16},
+ {&(_ZTV6dd5361[9]), 9,16},
+ {&(_ZTV6dd5361[14]), 14,16},
+ {&(_tg__ZTV5cc361__6dd5361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd5361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static VTBL_ENTRY alt_thunk_names668[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5361 = { "dd5361", // class name
+ bases_dd5361, 3,
+ &(vtc_dd5361[0]), // expected_vtbl_contents
+ &(vtt_dd5361[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5361),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names668,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05361 : dd5361 {
+ int e;
+ ~ee05361(); // tgen
+ ee05361(); // tgen
+};
+//SIG(1 ee05361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05361 ::~ee05361(){ note_dtor("ee05361", this);} // tgen
+ee05361 ::ee05361(){ note_ctor("ee05361", this);} // tgen
+
+static void Test_ee05361()
+{
+ extern Class_Descriptor cd_ee05361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05361, buf);
+ ee05361 *dp, &lv = *(dp=new (buf) ee05361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee05361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee05361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(16,12), "ee05361");
+ check_base_class_offset(lv, (dd5361*), 0, "ee05361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05361.e");
+ test_class_info(&lv, &cd_ee05361);
+ dp->~ee05361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05361(Test_ee05361, "ee05361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05361C1Ev();
+extern void _ZN7ee05361D1Ev();
+Name_Map name_map_ee05361[] = {
+ NSPAIR(_ZN7ee05361C1Ev),
+ NSPAIR(_ZN7ee05361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee05361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05361[];
+extern void _ZN6dd53613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee05361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee05361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee05361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee05361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee05361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee05361[] = {
+ {&(_ZTV7ee05361[4]), 4,16},
+ {&(_tg__ZTV6dd5361__7ee05361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee05361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee05361[4]), 4,6},
+ {&(_ZTV7ee05361[9]), 9,16},
+ {&(_ZTV7ee05361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee05361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee05361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05361[];
+extern VTBL_ENTRY _ZTV7ee05361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05361[];
+static VTBL_ENTRY alt_thunk_names669[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05361 = { "ee05361", // class name
+ bases_ee05361, 4,
+ &(vtc_ee05361[0]), // expected_vtbl_contents
+ &(vtt_ee05361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05361),8, //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 ee15361 : virtual dd5361 {
+ int e;
+ ~ee15361(); // tgen
+ ee15361(); // tgen
+};
+//SIG(1 ee15361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15361 ::~ee15361(){ note_dtor("ee15361", this);} // tgen
+ee15361 ::ee15361(){ note_ctor("ee15361", this);} // tgen
+
+static void Test_ee15361()
+{
+ extern Class_Descriptor cd_ee15361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15361, buf);
+ ee15361 *dp, &lv = *(dp=new (buf) ee15361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee15361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee15361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(32,16), "ee15361");
+ check_base_class_offset(lv, (dd5361*), ABISELECT(16,8), "ee15361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15361.e");
+ test_class_info(&lv, &cd_ee15361);
+ dp->~ee15361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15361(Test_ee15361, "ee15361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15361C1Ev();
+extern void _ZN7ee15361D1Ev();
+Name_Map name_map_ee15361[] = {
+ NSPAIR(_ZN7ee15361C1Ev),
+ NSPAIR(_ZN7ee15361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee15361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, ABISELECT(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 _ZTI7ee15361[];
+extern void _ZN6dd53613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15361[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee15361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee15361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee15361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee15361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee15361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee15361[] = {
+ {&(_ZTV7ee15361[5]), 5,22},
+ {&(_ZTV7ee15361[10]), 10,22},
+ {&(_ZTV7ee15361[15]), 15,22},
+ {&(_ZTV7ee15361[20]), 20,22},
+ {&(_tg__ZTV6dd5361__7ee15361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee15361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee15361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee15361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee15361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15361[];
+extern VTBL_ENTRY _ZTV7ee15361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15361[];
+static VTBL_ENTRY alt_thunk_names670[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15361 = { "ee15361", // class name
+ bases_ee15361, 4,
+ &(vtc_ee15361[0]), // expected_vtbl_contents
+ &(vtt_ee15361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15361),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15361),9, //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 ee25361 : dd5361 {
+ int e;
+ virtual void foo(); // _ZN7ee253613fooEv
+ ~ee25361(); // tgen
+ ee25361(); // tgen
+};
+//SIG(1 ee25361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25361 ::foo(){vfunc_called(this, "_ZN7ee253613fooEv");}
+ee25361 ::~ee25361(){ note_dtor("ee25361", this);} // tgen
+ee25361 ::ee25361(){ note_ctor("ee25361", this);} // tgen
+
+static void Test_ee25361()
+{
+ extern Class_Descriptor cd_ee25361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25361, buf);
+ ee25361 *dp, &lv = *(dp=new (buf) ee25361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee25361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee25361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(16,12), "ee25361");
+ check_base_class_offset(lv, (dd5361*), 0, "ee25361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25361.e");
+ test_class_info(&lv, &cd_ee25361);
+ dp->~ee25361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25361(Test_ee25361, "ee25361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25361C1Ev();
+extern void _ZN7ee25361D1Ev();
+Name_Map name_map_ee25361[] = {
+ NSPAIR(_ZN7ee25361C1Ev),
+ NSPAIR(_ZN7ee25361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee25361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25361[];
+extern void _ZN6dd53613barEv();
+extern void _ZN7ee253613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253613fooEv,_ZTv0_n16_N7ee253613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253613fooEv,_ZThn12_N7ee253613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253613fooEv,_ZTv0_n12_N7ee253613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253613fooEv,_ZThn20_N7ee253613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+ (VTBL_ENTRY)&_ZN7ee253613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253613fooEv,_ZTv0_n16_N7ee253613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253613fooEv,_ZTv0_n12_N7ee253613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee25361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee25361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee25361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee25361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee25361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee25361[] = {
+ {&(_ZTV7ee25361[4]), 4,17},
+ {&(_tg__ZTV6dd5361__7ee25361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee25361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee25361[4]), 4,6},
+ {&(_ZTV7ee25361[10]), 10,17},
+ {&(_ZTV7ee25361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee25361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee25361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25361[];
+extern VTBL_ENTRY _ZTV7ee25361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25361[];
+static VTBL_ENTRY alt_thunk_names671[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253613fooEv,_ZTv0_n12_N7ee253613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253613fooEv,_ZThn20_N7ee253613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253613fooEv,_ZTv0_n16_N7ee253613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253613fooEv,_ZThn12_N7ee253613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25361 = { "ee25361", // class name
+ bases_ee25361, 4,
+ &(vtc_ee25361[0]), // expected_vtbl_contents
+ &(vtt_ee25361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25361),8, //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 ee35361 : virtual dd5361 {
+ int e;
+ virtual void foo(); // _ZN7ee353613fooEv
+ ~ee35361(); // tgen
+ ee35361(); // tgen
+};
+//SIG(1 ee35361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35361 ::foo(){vfunc_called(this, "_ZN7ee353613fooEv");}
+ee35361 ::~ee35361(){ note_dtor("ee35361", this);} // tgen
+ee35361 ::ee35361(){ note_ctor("ee35361", this);} // tgen
+
+static void Test_ee35361()
+{
+ extern Class_Descriptor cd_ee35361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35361, buf);
+ ee35361 *dp, &lv = *(dp=new (buf) ee35361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee35361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee35361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(32,16), "ee35361");
+ check_base_class_offset(lv, (dd5361*), ABISELECT(16,8), "ee35361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35361.e");
+ test_class_info(&lv, &cd_ee35361);
+ dp->~ee35361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35361(Test_ee35361, "ee35361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35361C1Ev();
+extern void _ZN7ee35361D1Ev();
+Name_Map name_map_ee35361[] = {
+ NSPAIR(_ZN7ee35361C1Ev),
+ NSPAIR(_ZN7ee35361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee35361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, ABISELECT(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 _ZTI7ee35361[];
+extern void _ZN7ee353613fooEv();
+extern void _ZN6dd53613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353613fooEv,_ZTv0_n16_N7ee353613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353613fooEv,_ZThn16_N7ee353613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353613fooEv,_ZTv0_n12_N7ee353613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353613fooEv,_ZThn24_N7ee353613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35361[0]),
+ (VTBL_ENTRY)&_ZN7ee353613fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353613fooEv,_ZTv0_n16_N7ee353613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353613fooEv,_ZTv0_n12_N7ee353613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee35361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee35361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee35361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee35361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee35361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee35361[] = {
+ {&(_ZTV7ee35361[5]), 5,23},
+ {&(_ZTV7ee35361[11]), 11,23},
+ {&(_ZTV7ee35361[16]), 16,23},
+ {&(_ZTV7ee35361[21]), 21,23},
+ {&(_tg__ZTV6dd5361__7ee35361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee35361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee35361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee35361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee35361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35361[];
+extern VTBL_ENTRY _ZTV7ee35361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35361[];
+static VTBL_ENTRY alt_thunk_names672[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353613fooEv,_ZTv0_n12_N7ee353613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353613fooEv,_ZThn24_N7ee353613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353613fooEv,_ZTv0_n16_N7ee353613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353613fooEv,_ZThn16_N7ee353613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35361 = { "ee35361", // class name
+ bases_ee35361, 4,
+ &(vtc_ee35361[0]), // expected_vtbl_contents
+ &(vtt_ee35361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35361),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35361),9, //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 ee45361 : dd5361 {
+ int e;
+ virtual void bar(); // _ZN7ee453613barEv
+ ~ee45361(); // tgen
+ ee45361(); // tgen
+};
+//SIG(1 ee45361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45361 ::bar(){vfunc_called(this, "_ZN7ee453613barEv");}
+ee45361 ::~ee45361(){ note_dtor("ee45361", this);} // tgen
+ee45361 ::ee45361(){ note_ctor("ee45361", this);} // tgen
+
+static void Test_ee45361()
+{
+ extern Class_Descriptor cd_ee45361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45361, buf);
+ ee45361 *dp, &lv = *(dp=new (buf) ee45361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee45361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee45361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(16,12), "ee45361");
+ check_base_class_offset(lv, (dd5361*), 0, "ee45361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45361.e");
+ test_class_info(&lv, &cd_ee45361);
+ dp->~ee45361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45361(Test_ee45361, "ee45361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45361C1Ev();
+extern void _ZN7ee45361D1Ev();
+Name_Map name_map_ee45361[] = {
+ NSPAIR(_ZN7ee45361C1Ev),
+ NSPAIR(_ZN7ee45361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee45361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45361[];
+extern void _ZN7ee453613barEv();
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee453613barEv,_ZTv0_n16_N7ee453613barEv)();
+extern void ABISELECT(_ZThn32_N7ee453613barEv,_ZThn20_N7ee453613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45361[0]),
+ (VTBL_ENTRY)&_ZN7ee453613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453613barEv,_ZTv0_n16_N7ee453613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee45361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee45361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee45361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee45361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee45361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee45361[] = {
+ {&(_ZTV7ee45361[4]), 4,16},
+ {&(_tg__ZTV6dd5361__7ee45361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee45361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee45361[4]), 4,6},
+ {&(_ZTV7ee45361[9]), 9,16},
+ {&(_ZTV7ee45361[14]), 14,16},
+ {&(_tg__ZTV5cc361__7ee45361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee45361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45361[];
+extern VTBL_ENTRY _ZTV7ee45361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45361[];
+static VTBL_ENTRY alt_thunk_names673[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453613barEv,_ZTv0_n16_N7ee453613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453613barEv,_ZThn20_N7ee453613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45361 = { "ee45361", // class name
+ bases_ee45361, 4,
+ &(vtc_ee45361[0]), // expected_vtbl_contents
+ &(vtt_ee45361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45361),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45361),8, //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 ee55361 : virtual dd5361 {
+ int e;
+ virtual void bar(); // _ZN7ee553613barEv
+ ~ee55361(); // tgen
+ ee55361(); // tgen
+};
+//SIG(1 ee55361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55361 ::bar(){vfunc_called(this, "_ZN7ee553613barEv");}
+ee55361 ::~ee55361(){ note_dtor("ee55361", this);} // tgen
+ee55361 ::ee55361(){ note_ctor("ee55361", this);} // tgen
+
+static void Test_ee55361()
+{
+ extern Class_Descriptor cd_ee55361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55361, buf);
+ ee55361 *dp, &lv = *(dp=new (buf) ee55361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee55361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee55361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(32,16), "ee55361");
+ check_base_class_offset(lv, (dd5361*), ABISELECT(16,8), "ee55361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55361.e");
+ test_class_info(&lv, &cd_ee55361);
+ dp->~ee55361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55361(Test_ee55361, "ee55361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55361C1Ev();
+extern void _ZN7ee55361D1Ev();
+Name_Map name_map_ee55361[] = {
+ NSPAIR(_ZN7ee55361C1Ev),
+ NSPAIR(_ZN7ee55361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee55361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, ABISELECT(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 _ZTI7ee55361[];
+extern void _ZN7ee553613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553613barEv,_ZTv0_n20_N7ee553613barEv)();
+extern void ABISELECT(_ZThn16_N7ee553613barEv,_ZThn8_N7ee553613barEv)() __attribute__((weak));
+extern void _ZN5cc3613fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee553613barEv,_ZTv0_n16_N7ee553613barEv)();
+extern void ABISELECT(_ZThn48_N7ee553613barEv,_ZThn24_N7ee553613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55361[0]),
+ (VTBL_ENTRY)&_ZN7ee553613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553613barEv,_ZTv0_n20_N7ee553613barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553613barEv,_ZTv0_n16_N7ee553613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee55361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee55361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee55361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee55361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee55361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee55361[] = {
+ {&(_ZTV7ee55361[5]), 5,23},
+ {&(_ZTV7ee55361[11]), 11,23},
+ {&(_ZTV7ee55361[16]), 16,23},
+ {&(_ZTV7ee55361[21]), 21,23},
+ {&(_tg__ZTV6dd5361__7ee55361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee55361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee55361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee55361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee55361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55361[];
+extern VTBL_ENTRY _ZTV7ee55361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55361[];
+static VTBL_ENTRY alt_thunk_names674[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553613barEv,_ZTv0_n16_N7ee553613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553613barEv,_ZThn24_N7ee553613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553613barEv,_ZTv0_n20_N7ee553613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553613barEv,_ZThn8_N7ee553613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55361 = { "ee55361", // class name
+ bases_ee55361, 4,
+ &(vtc_ee55361[0]), // expected_vtbl_contents
+ &(vtt_ee55361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55361),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55361),9, //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 ee65361 : dd5361 {
+ int e;
+ virtual void foo(); // _ZN7ee653613fooEv
+ virtual void bar(); // _ZN7ee653613barEv
+ ~ee65361(); // tgen
+ ee65361(); // tgen
+};
+//SIG(1 ee65361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65361 ::foo(){vfunc_called(this, "_ZN7ee653613fooEv");}
+void ee65361 ::bar(){vfunc_called(this, "_ZN7ee653613barEv");}
+ee65361 ::~ee65361(){ note_dtor("ee65361", this);} // tgen
+ee65361 ::ee65361(){ note_ctor("ee65361", this);} // tgen
+
+static void Test_ee65361()
+{
+ extern Class_Descriptor cd_ee65361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65361, buf);
+ ee65361 *dp, &lv = *(dp=new (buf) ee65361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee65361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee65361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(16,12), "ee65361");
+ check_base_class_offset(lv, (dd5361*), 0, "ee65361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65361.e");
+ test_class_info(&lv, &cd_ee65361);
+ dp->~ee65361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65361(Test_ee65361, "ee65361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65361C1Ev();
+extern void _ZN7ee65361D1Ev();
+Name_Map name_map_ee65361[] = {
+ NSPAIR(_ZN7ee65361C1Ev),
+ NSPAIR(_ZN7ee65361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee65361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65361[];
+extern void _ZN7ee653613barEv();
+extern void _ZN7ee653613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653613fooEv,_ZTv0_n16_N7ee653613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653613fooEv,_ZThn12_N7ee653613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653613fooEv,_ZTv0_n12_N7ee653613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653613fooEv,_ZThn20_N7ee653613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653613barEv,_ZTv0_n16_N7ee653613barEv)();
+extern void ABISELECT(_ZThn32_N7ee653613barEv,_ZThn20_N7ee653613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65361[0]),
+ (VTBL_ENTRY)&_ZN7ee653613barEv,
+ (VTBL_ENTRY)&_ZN7ee653613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653613fooEv,_ZTv0_n16_N7ee653613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653613fooEv,_ZTv0_n12_N7ee653613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653613barEv,_ZTv0_n16_N7ee653613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee65361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee65361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee65361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee65361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee65361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee65361[] = {
+ {&(_ZTV7ee65361[4]), 4,17},
+ {&(_tg__ZTV6dd5361__7ee65361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee65361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee65361[4]), 4,6},
+ {&(_ZTV7ee65361[10]), 10,17},
+ {&(_ZTV7ee65361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee65361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee65361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65361[];
+extern VTBL_ENTRY _ZTV7ee65361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65361[];
+static VTBL_ENTRY alt_thunk_names675[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn20_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653613barEv,_ZTv0_n16_N7ee653613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653613barEv,_ZThn20_N7ee653613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653613fooEv,_ZTv0_n12_N7ee653613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653613fooEv,_ZThn20_N7ee653613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653613fooEv,_ZTv0_n16_N7ee653613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653613fooEv,_ZThn12_N7ee653613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65361 = { "ee65361", // class name
+ bases_ee65361, 4,
+ &(vtc_ee65361[0]), // expected_vtbl_contents
+ &(vtt_ee65361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65361),8, //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 ee75361 : virtual dd5361 {
+ int e;
+ virtual void foo(); // _ZN7ee753613fooEv
+ virtual void bar(); // _ZN7ee753613barEv
+ ~ee75361(); // tgen
+ ee75361(); // tgen
+};
+//SIG(1 ee75361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75361 ::foo(){vfunc_called(this, "_ZN7ee753613fooEv");}
+void ee75361 ::bar(){vfunc_called(this, "_ZN7ee753613barEv");}
+ee75361 ::~ee75361(){ note_dtor("ee75361", this);} // tgen
+ee75361 ::ee75361(){ note_ctor("ee75361", this);} // tgen
+
+static void Test_ee75361()
+{
+ extern Class_Descriptor cd_ee75361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75361, buf);
+ ee75361 *dp, &lv = *(dp=new (buf) ee75361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee75361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee75361");
+ check_base_class_offset(lv, (cc361*)(dd5361*), ABISELECT(32,16), "ee75361");
+ check_base_class_offset(lv, (dd5361*), ABISELECT(16,8), "ee75361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75361.e");
+ test_class_info(&lv, &cd_ee75361);
+ dp->~ee75361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75361(Test_ee75361, "ee75361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75361C1Ev();
+extern void _ZN7ee75361D1Ev();
+Name_Map name_map_ee75361[] = {
+ NSPAIR(_ZN7ee75361C1Ev),
+ NSPAIR(_ZN7ee75361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd5361;
+extern VTBL_ENTRY _ZTI6dd5361[];
+extern VTBL_ENTRY _ZTV6dd5361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5361[];
+static Base_Class bases_ee75361[] = {
+ // 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_bb61, 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_cc361, 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_dd5361, 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 _ZTI7ee75361[];
+extern void _ZN7ee753613fooEv();
+extern void _ZN7ee753613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753613barEv,_ZTv0_n20_N7ee753613barEv)();
+extern void ABISELECT(_ZThn16_N7ee753613barEv,_ZThn8_N7ee753613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753613fooEv,_ZTv0_n16_N7ee753613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753613fooEv,_ZThn16_N7ee753613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753613fooEv,_ZTv0_n12_N7ee753613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753613fooEv,_ZThn24_N7ee753613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753613barEv,_ZTv0_n16_N7ee753613barEv)();
+extern void ABISELECT(_ZThn48_N7ee753613barEv,_ZThn24_N7ee753613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75361[0]),
+ (VTBL_ENTRY)&_ZN7ee753613fooEv,
+ (VTBL_ENTRY)&_ZN7ee753613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753613barEv,_ZTv0_n20_N7ee753613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753613fooEv,_ZTv0_n16_N7ee753613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753613fooEv,_ZTv0_n12_N7ee753613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753613barEv,_ZTv0_n16_N7ee753613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75361[];
+extern void _ZN6dd53613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5361__7ee75361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN6dd53613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd5361__7ee75361[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv)();
+extern void ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5361__7ee75361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee75361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee75361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee75361[] = {
+ {&(_ZTV7ee75361[5]), 5,24},
+ {&(_ZTV7ee75361[12]), 12,24},
+ {&(_ZTV7ee75361[17]), 17,24},
+ {&(_ZTV7ee75361[22]), 22,24},
+ {&(_tg__ZTV6dd5361__7ee75361[4]), 4,5},
+ {&(_tg__ZTV5cc361__6dd5361__7ee75361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5361__7ee75361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee75361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee75361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75361[];
+extern VTBL_ENTRY _ZTV7ee75361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75361[];
+static VTBL_ENTRY alt_thunk_names676[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53613barEv,_ZTv0_n16_N6dd53613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53613barEv,_ZThn16_N6dd53613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753613barEv,_ZTv0_n16_N7ee753613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753613barEv,_ZThn24_N7ee753613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753613fooEv,_ZTv0_n12_N7ee753613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753613fooEv,_ZThn24_N7ee753613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753613fooEv,_ZTv0_n16_N7ee753613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753613fooEv,_ZThn16_N7ee753613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753613barEv,_ZTv0_n20_N7ee753613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753613barEv,_ZThn8_N7ee753613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75361 = { "ee75361", // class name
+ bases_ee75361, 4,
+ &(vtc_ee75361[0]), // expected_vtbl_contents
+ &(vtt_ee75361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75361),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75361),9, //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 dd6361 : cc361 {
+ int d;
+ virtual void bar(); // _ZN6dd63613barEv
+ virtual void foo(); // _ZN6dd63613fooEv
+ ~dd6361(); // tgen
+ dd6361(); // tgen
+};
+//SIG(-1 dd6361) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6361 ::bar(){vfunc_called(this, "_ZN6dd63613barEv");}
+void dd6361 ::foo(){vfunc_called(this, "_ZN6dd63613fooEv");}
+dd6361 ::~dd6361(){ note_dtor("dd6361", this);} // tgen
+dd6361 ::dd6361(){ note_ctor("dd6361", this);} // tgen
+
+static void Test_dd6361()
+{
+ extern Class_Descriptor cd_dd6361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6361, buf);
+ dd6361 *dp, &lv = *(dp=new (buf) dd6361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd6361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(16,12), "dd6361");
+ check_base_class_offset(lv, (cc361*), 0, "dd6361");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6361.d");
+ test_class_info(&lv, &cd_dd6361);
+ dp->~dd6361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6361(Test_dd6361, "dd6361", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6361C1Ev();
+extern void _ZN6dd6361D1Ev();
+Name_Map name_map_dd6361[] = {
+ NSPAIR(_ZN6dd6361C1Ev),
+ NSPAIR(_ZN6dd6361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd6361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd6361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd6361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd6361[] = {
+ {&(_ZTV6dd6361[3]), 3,11},
+ {&(_tg__ZTV5cc361__6dd6361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd6361[4]), 4,6},
+ {&(_ZTV6dd6361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static VTBL_ENTRY alt_thunk_names677[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6361 = { "dd6361", // class name
+ bases_dd6361, 3,
+ &(vtc_dd6361[0]), // expected_vtbl_contents
+ &(vtt_dd6361[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6361),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names677,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06361 : dd6361 {
+ int e;
+ ~ee06361(); // tgen
+ ee06361(); // tgen
+};
+//SIG(1 ee06361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06361 ::~ee06361(){ note_dtor("ee06361", this);} // tgen
+ee06361 ::ee06361(){ note_ctor("ee06361", this);} // tgen
+
+static void Test_ee06361()
+{
+ extern Class_Descriptor cd_ee06361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06361, buf);
+ ee06361 *dp, &lv = *(dp=new (buf) ee06361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee06361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(24,16), "ee06361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), 0, "ee06361");
+ check_base_class_offset(lv, (dd6361*), 0, "ee06361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06361.e");
+ test_class_info(&lv, &cd_ee06361);
+ dp->~ee06361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06361(Test_ee06361, "ee06361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06361C1Ev();
+extern void _ZN7ee06361D1Ev();
+Name_Map name_map_ee06361[] = {
+ NSPAIR(_ZN7ee06361C1Ev),
+ NSPAIR(_ZN7ee06361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee06361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee06361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee06361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee06361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee06361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee06361[] = {
+ {&(_ZTV7ee06361[3]), 3,11},
+ {&(_tg__ZTV6dd6361__7ee06361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee06361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee06361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee06361[4]), 4,6},
+ {&(_ZTV7ee06361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06361[];
+extern VTBL_ENTRY _ZTV7ee06361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06361[];
+static VTBL_ENTRY alt_thunk_names678[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06361 = { "ee06361", // class name
+ bases_ee06361, 4,
+ &(vtc_ee06361[0]), // expected_vtbl_contents
+ &(vtt_ee06361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06361),6, //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 ee16361 : virtual dd6361 {
+ int e;
+ ~ee16361(); // tgen
+ ee16361(); // tgen
+};
+//SIG(1 ee16361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16361 ::~ee16361(){ note_dtor("ee16361", this);} // tgen
+ee16361 ::ee16361(){ note_ctor("ee16361", this);} // tgen
+
+static void Test_ee16361()
+{
+ extern Class_Descriptor cd_ee16361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16361, buf);
+ ee16361 *dp, &lv = *(dp=new (buf) ee16361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee16361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(32,20), "ee16361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), ABISELECT(16,8), "ee16361");
+ check_base_class_offset(lv, (dd6361*), ABISELECT(16,8), "ee16361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16361.e");
+ test_class_info(&lv, &cd_ee16361);
+ dp->~ee16361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16361(Test_ee16361, "ee16361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16361C1Ev();
+extern void _ZN7ee16361D1Ev();
+Name_Map name_map_ee16361[] = {
+ NSPAIR(_ZN7ee16361C1Ev),
+ NSPAIR(_ZN7ee16361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee16361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, 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 _ZTI7ee16361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16361[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee16361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee16361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee16361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee16361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee16361[] = {
+ {&(_ZTV7ee16361[4]), 4,17},
+ {&(_ZTV7ee16361[9]), 9,17},
+ {&(_ZTV7ee16361[15]), 15,17},
+ {&(_tg__ZTV6dd6361__7ee16361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee16361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee16361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee16361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16361[];
+extern VTBL_ENTRY _ZTV7ee16361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16361[];
+static VTBL_ENTRY alt_thunk_names679[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16361 = { "ee16361", // class name
+ bases_ee16361, 4,
+ &(vtc_ee16361[0]), // expected_vtbl_contents
+ &(vtt_ee16361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16361),7, //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 ee26361 : dd6361 {
+ int e;
+ virtual void foo(); // _ZN7ee263613fooEv
+ ~ee26361(); // tgen
+ ee26361(); // tgen
+};
+//SIG(1 ee26361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26361 ::foo(){vfunc_called(this, "_ZN7ee263613fooEv");}
+ee26361 ::~ee26361(){ note_dtor("ee26361", this);} // tgen
+ee26361 ::ee26361(){ note_ctor("ee26361", this);} // tgen
+
+static void Test_ee26361()
+{
+ extern Class_Descriptor cd_ee26361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26361, buf);
+ ee26361 *dp, &lv = *(dp=new (buf) ee26361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee26361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(24,16), "ee26361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), 0, "ee26361");
+ check_base_class_offset(lv, (dd6361*), 0, "ee26361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26361.e");
+ test_class_info(&lv, &cd_ee26361);
+ dp->~ee26361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26361(Test_ee26361, "ee26361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26361C1Ev();
+extern void _ZN7ee26361D1Ev();
+Name_Map name_map_ee26361[] = {
+ NSPAIR(_ZN7ee26361C1Ev),
+ NSPAIR(_ZN7ee26361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee26361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26361[];
+extern void _ZN7ee263613fooEv();
+extern void _ZN6dd63613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263613fooEv,_ZTv0_n12_N7ee263613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263613fooEv,_ZThn16_N7ee263613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26361[0]),
+ (VTBL_ENTRY)&_ZN7ee263613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263613fooEv,_ZTv0_n12_N7ee263613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee26361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee26361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee26361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee26361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee26361[] = {
+ {&(_ZTV7ee26361[3]), 3,11},
+ {&(_tg__ZTV6dd6361__7ee26361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee26361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee26361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee26361[4]), 4,6},
+ {&(_ZTV7ee26361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26361[];
+extern VTBL_ENTRY _ZTV7ee26361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26361[];
+static VTBL_ENTRY alt_thunk_names680[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263613fooEv,_ZTv0_n12_N7ee263613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263613fooEv,_ZThn16_N7ee263613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26361 = { "ee26361", // class name
+ bases_ee26361, 4,
+ &(vtc_ee26361[0]), // expected_vtbl_contents
+ &(vtt_ee26361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26361),6, //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 ee36361 : virtual dd6361 {
+ int e;
+ virtual void foo(); // _ZN7ee363613fooEv
+ ~ee36361(); // tgen
+ ee36361(); // tgen
+};
+//SIG(1 ee36361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36361 ::foo(){vfunc_called(this, "_ZN7ee363613fooEv");}
+ee36361 ::~ee36361(){ note_dtor("ee36361", this);} // tgen
+ee36361 ::ee36361(){ note_ctor("ee36361", this);} // tgen
+
+static void Test_ee36361()
+{
+ extern Class_Descriptor cd_ee36361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36361, buf);
+ ee36361 *dp, &lv = *(dp=new (buf) ee36361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee36361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(32,20), "ee36361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), ABISELECT(16,8), "ee36361");
+ check_base_class_offset(lv, (dd6361*), ABISELECT(16,8), "ee36361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36361.e");
+ test_class_info(&lv, &cd_ee36361);
+ dp->~ee36361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36361(Test_ee36361, "ee36361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36361C1Ev();
+extern void _ZN7ee36361D1Ev();
+Name_Map name_map_ee36361[] = {
+ NSPAIR(_ZN7ee36361C1Ev),
+ NSPAIR(_ZN7ee36361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee36361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, ABISELECT(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 _ZTI7ee36361[];
+extern void _ZN7ee363613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363613fooEv,_ZTv0_n16_N7ee363613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363613fooEv,_ZThn8_N7ee363613fooEv)() __attribute__((weak));
+extern void _ZN6dd63613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363613fooEv,_ZTv0_n12_N7ee363613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363613fooEv,_ZThn20_N7ee363613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36361[0]),
+ (VTBL_ENTRY)&_ZN7ee363613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363613fooEv,_ZTv0_n16_N7ee363613fooEv),
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363613fooEv,_ZTv0_n12_N7ee363613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee36361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee36361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee36361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee36361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee36361[] = {
+ {&(_ZTV7ee36361[4]), 4,18},
+ {&(_ZTV7ee36361[10]), 10,18},
+ {&(_ZTV7ee36361[16]), 16,18},
+ {&(_tg__ZTV6dd6361__7ee36361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee36361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee36361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee36361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36361[];
+extern VTBL_ENTRY _ZTV7ee36361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36361[];
+static VTBL_ENTRY alt_thunk_names681[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363613fooEv,_ZTv0_n12_N7ee363613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363613fooEv,_ZThn20_N7ee363613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363613fooEv,_ZTv0_n16_N7ee363613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363613fooEv,_ZThn8_N7ee363613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36361 = { "ee36361", // class name
+ bases_ee36361, 4,
+ &(vtc_ee36361[0]), // expected_vtbl_contents
+ &(vtt_ee36361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36361),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36361),7, //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 ee46361 : dd6361 {
+ int e;
+ virtual void bar(); // _ZN7ee463613barEv
+ ~ee46361(); // tgen
+ ee46361(); // tgen
+};
+//SIG(1 ee46361) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46361 ::bar(){vfunc_called(this, "_ZN7ee463613barEv");}
+ee46361 ::~ee46361(){ note_dtor("ee46361", this);} // tgen
+ee46361 ::ee46361(){ note_ctor("ee46361", this);} // tgen
+
+static void Test_ee46361()
+{
+ extern Class_Descriptor cd_ee46361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46361, buf);
+ ee46361 *dp, &lv = *(dp=new (buf) ee46361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee46361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(24,16), "ee46361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), 0, "ee46361");
+ check_base_class_offset(lv, (dd6361*), 0, "ee46361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46361.e");
+ test_class_info(&lv, &cd_ee46361);
+ dp->~ee46361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46361(Test_ee46361, "ee46361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46361C1Ev();
+extern void _ZN7ee46361D1Ev();
+Name_Map name_map_ee46361[] = {
+ NSPAIR(_ZN7ee46361C1Ev),
+ NSPAIR(_ZN7ee46361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee46361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN7ee463613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee463613barEv,_ZTv0_n16_N7ee463613barEv)();
+extern void ABISELECT(_ZThn24_N7ee463613barEv,_ZThn16_N7ee463613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN7ee463613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463613barEv,_ZTv0_n16_N7ee463613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee46361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee46361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee46361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee46361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee46361[] = {
+ {&(_ZTV7ee46361[3]), 3,11},
+ {&(_tg__ZTV6dd6361__7ee46361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee46361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee46361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee46361[4]), 4,6},
+ {&(_ZTV7ee46361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46361[];
+extern VTBL_ENTRY _ZTV7ee46361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46361[];
+static VTBL_ENTRY alt_thunk_names682[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463613barEv,_ZTv0_n16_N7ee463613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463613barEv,_ZThn16_N7ee463613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46361 = { "ee46361", // class name
+ bases_ee46361, 4,
+ &(vtc_ee46361[0]), // expected_vtbl_contents
+ &(vtt_ee46361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46361),6, //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 ee56361 : virtual dd6361 {
+ int e;
+ virtual void bar(); // _ZN7ee563613barEv
+ ~ee56361(); // tgen
+ ee56361(); // tgen
+};
+//SIG(1 ee56361) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56361 ::bar(){vfunc_called(this, "_ZN7ee563613barEv");}
+ee56361 ::~ee56361(){ note_dtor("ee56361", this);} // tgen
+ee56361 ::ee56361(){ note_ctor("ee56361", this);} // tgen
+
+static void Test_ee56361()
+{
+ extern Class_Descriptor cd_ee56361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56361, buf);
+ ee56361 *dp, &lv = *(dp=new (buf) ee56361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee56361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(32,20), "ee56361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), ABISELECT(16,8), "ee56361");
+ check_base_class_offset(lv, (dd6361*), ABISELECT(16,8), "ee56361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56361.e");
+ test_class_info(&lv, &cd_ee56361);
+ dp->~ee56361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56361(Test_ee56361, "ee56361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56361C1Ev();
+extern void _ZN7ee56361D1Ev();
+Name_Map name_map_ee56361[] = {
+ NSPAIR(_ZN7ee56361C1Ev),
+ NSPAIR(_ZN7ee56361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee56361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, ABISELECT(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 _ZTI7ee56361[];
+extern void _ZN7ee563613barEv();
+extern void _ZN6dd63613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563613barEv,_ZTv0_n20_N7ee563613barEv)();
+extern void ABISELECT(_ZThn16_N7ee563613barEv,_ZThn8_N7ee563613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563613barEv,_ZTv0_n16_N7ee563613barEv)();
+extern void ABISELECT(_ZThn32_N7ee563613barEv,_ZThn20_N7ee563613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56361[0]),
+ (VTBL_ENTRY)&_ZN7ee563613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563613barEv,_ZTv0_n20_N7ee563613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563613barEv,_ZTv0_n16_N7ee563613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee56361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee56361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee56361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee56361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee56361[] = {
+ {&(_ZTV7ee56361[4]), 4,18},
+ {&(_ZTV7ee56361[10]), 10,18},
+ {&(_ZTV7ee56361[16]), 16,18},
+ {&(_tg__ZTV6dd6361__7ee56361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee56361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee56361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee56361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56361[];
+extern VTBL_ENTRY _ZTV7ee56361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56361[];
+static VTBL_ENTRY alt_thunk_names683[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563613barEv,_ZTv0_n16_N7ee563613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563613barEv,_ZThn20_N7ee563613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563613barEv,_ZTv0_n20_N7ee563613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563613barEv,_ZThn8_N7ee563613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56361 = { "ee56361", // class name
+ bases_ee56361, 4,
+ &(vtc_ee56361[0]), // expected_vtbl_contents
+ &(vtt_ee56361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56361),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56361),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names683,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66361 : dd6361 {
+ int e;
+ virtual void foo(); // _ZN7ee663613fooEv
+ virtual void bar(); // _ZN7ee663613barEv
+ ~ee66361(); // tgen
+ ee66361(); // tgen
+};
+//SIG(1 ee66361) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66361 ::foo(){vfunc_called(this, "_ZN7ee663613fooEv");}
+void ee66361 ::bar(){vfunc_called(this, "_ZN7ee663613barEv");}
+ee66361 ::~ee66361(){ note_dtor("ee66361", this);} // tgen
+ee66361 ::ee66361(){ note_ctor("ee66361", this);} // tgen
+
+static void Test_ee66361()
+{
+ extern Class_Descriptor cd_ee66361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66361, buf);
+ ee66361 *dp, &lv = *(dp=new (buf) ee66361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee66361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(24,16), "ee66361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), 0, "ee66361");
+ check_base_class_offset(lv, (dd6361*), 0, "ee66361");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66361.e");
+ test_class_info(&lv, &cd_ee66361);
+ dp->~ee66361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66361(Test_ee66361, "ee66361", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66361C1Ev();
+extern void _ZN7ee66361D1Ev();
+Name_Map name_map_ee66361[] = {
+ NSPAIR(_ZN7ee66361C1Ev),
+ NSPAIR(_ZN7ee66361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee66361[] = {
+ // 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_bb61, 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_cc361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66361[];
+extern void _ZN7ee663613fooEv();
+extern void _ZN7ee663613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663613fooEv,_ZTv0_n12_N7ee663613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663613fooEv,_ZThn16_N7ee663613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663613barEv,_ZTv0_n16_N7ee663613barEv)();
+extern void ABISELECT(_ZThn24_N7ee663613barEv,_ZThn16_N7ee663613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66361[0]),
+ (VTBL_ENTRY)&_ZN7ee663613fooEv,
+ (VTBL_ENTRY)&_ZN7ee663613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663613fooEv,_ZTv0_n12_N7ee663613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663613barEv,_ZTv0_n16_N7ee663613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee66361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee66361[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee66361[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee66361[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee66361[] = {
+ {&(_ZTV7ee66361[3]), 3,11},
+ {&(_tg__ZTV6dd6361__7ee66361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee66361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee66361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee66361[4]), 4,6},
+ {&(_ZTV7ee66361[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66361[];
+extern VTBL_ENTRY _ZTV7ee66361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66361[];
+static VTBL_ENTRY alt_thunk_names684[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613barEv,_ZThn16_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63613fooEv,_ZThn16_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3613fooEv,_ZThn16_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663613barEv,_ZTv0_n16_N7ee663613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663613barEv,_ZThn16_N7ee663613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663613fooEv,_ZTv0_n12_N7ee663613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663613fooEv,_ZThn16_N7ee663613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66361 = { "ee66361", // class name
+ bases_ee66361, 4,
+ &(vtc_ee66361[0]), // expected_vtbl_contents
+ &(vtt_ee66361[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66361),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66361),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 ee76361 : virtual dd6361 {
+ int e;
+ virtual void foo(); // _ZN7ee763613fooEv
+ virtual void bar(); // _ZN7ee763613barEv
+ ~ee76361(); // tgen
+ ee76361(); // tgen
+};
+//SIG(1 ee76361) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76361 ::foo(){vfunc_called(this, "_ZN7ee763613fooEv");}
+void ee76361 ::bar(){vfunc_called(this, "_ZN7ee763613barEv");}
+ee76361 ::~ee76361(){ note_dtor("ee76361", this);} // tgen
+ee76361 ::ee76361(){ note_ctor("ee76361", this);} // tgen
+
+static void Test_ee76361()
+{
+ extern Class_Descriptor cd_ee76361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76361, buf);
+ ee76361 *dp, &lv = *(dp=new (buf) ee76361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee76361");
+ check_base_class_offset(lv, (bb61*)(cc361*)(dd6361*), ABISELECT(32,20), "ee76361");
+ check_base_class_offset(lv, (cc361*)(dd6361*), ABISELECT(16,8), "ee76361");
+ check_base_class_offset(lv, (dd6361*), ABISELECT(16,8), "ee76361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76361.e");
+ test_class_info(&lv, &cd_ee76361);
+ dp->~ee76361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76361(Test_ee76361, "ee76361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76361C1Ev();
+extern void _ZN7ee76361D1Ev();
+Name_Map name_map_ee76361[] = {
+ NSPAIR(_ZN7ee76361C1Ev),
+ NSPAIR(_ZN7ee76361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd6361;
+extern VTBL_ENTRY _ZTI6dd6361[];
+extern VTBL_ENTRY _ZTV6dd6361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6361[];
+static Base_Class bases_ee76361[] = {
+ // 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_bb61, 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_cc361, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6361, ABISELECT(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 _ZTI7ee76361[];
+extern void _ZN7ee763613fooEv();
+extern void _ZN7ee763613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763613fooEv,_ZTv0_n16_N7ee763613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763613fooEv,_ZThn8_N7ee763613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763613barEv,_ZTv0_n20_N7ee763613barEv)();
+extern void ABISELECT(_ZThn16_N7ee763613barEv,_ZThn8_N7ee763613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763613fooEv,_ZTv0_n12_N7ee763613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763613fooEv,_ZThn20_N7ee763613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763613barEv,_ZTv0_n16_N7ee763613barEv)();
+extern void ABISELECT(_ZThn32_N7ee763613barEv,_ZThn20_N7ee763613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76361[0]),
+ (VTBL_ENTRY)&_ZN7ee763613fooEv,
+ (VTBL_ENTRY)&_ZN7ee763613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763613fooEv,_ZTv0_n16_N7ee763613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763613barEv,_ZTv0_n20_N7ee763613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763613fooEv,_ZTv0_n12_N7ee763613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763613barEv,_ZTv0_n16_N7ee763613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76361[];
+extern void _ZN6dd63613fooEv();
+extern void _ZN6dd63613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6361__7ee76361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&_ZN6dd63613fooEv,
+ (VTBL_ENTRY)&_ZN6dd63613barEv,
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3616dd6361__7ee76361[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc3616dd6361__7ee76361[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv)();
+extern void ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6361__7ee76361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv),
+};
+static VTT_ENTRY vtt_ee76361[] = {
+ {&(_ZTV7ee76361[4]), 4,19},
+ {&(_ZTV7ee76361[11]), 11,19},
+ {&(_ZTV7ee76361[17]), 17,19},
+ {&(_tg__ZTV6dd6361__7ee76361[3]), 3,5},
+ {&(_tg__ZTV5cc3616dd6361__7ee76361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc3616dd6361__7ee76361[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6361__7ee76361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76361[];
+extern VTBL_ENTRY _ZTV7ee76361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76361[];
+static VTBL_ENTRY alt_thunk_names685[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63613barEv,_ZTv0_n16_N6dd63613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613barEv,_ZThn12_N6dd63613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63613fooEv,_ZTv0_n12_N6dd63613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63613fooEv,_ZThn12_N6dd63613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn12_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763613barEv,_ZTv0_n16_N7ee763613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763613barEv,_ZThn20_N7ee763613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763613fooEv,_ZTv0_n12_N7ee763613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763613fooEv,_ZThn20_N7ee763613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763613barEv,_ZTv0_n20_N7ee763613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763613barEv,_ZThn8_N7ee763613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763613fooEv,_ZTv0_n16_N7ee763613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763613fooEv,_ZThn8_N7ee763613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76361 = { "ee76361", // class name
+ bases_ee76361, 4,
+ &(vtc_ee76361[0]), // expected_vtbl_contents
+ &(vtt_ee76361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76361),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76361),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 dd7361 : virtual cc361 {
+ int d;
+ virtual void bar(); // _ZN6dd73613barEv
+ virtual void foo(); // _ZN6dd73613fooEv
+ ~dd7361(); // tgen
+ dd7361(); // tgen
+};
+//SIG(-1 dd7361) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7361 ::bar(){vfunc_called(this, "_ZN6dd73613barEv");}
+void dd7361 ::foo(){vfunc_called(this, "_ZN6dd73613fooEv");}
+dd7361 ::~dd7361(){ note_dtor("dd7361", this);} // tgen
+dd7361 ::dd7361(){ note_ctor("dd7361", this);} // tgen
+
+static void Test_dd7361()
+{
+ extern Class_Descriptor cd_dd7361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7361, buf);
+ dd7361 *dp, &lv = *(dp=new (buf) dd7361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd7361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,16), "dd7361");
+ check_base_class_offset(lv, (cc361*), ABISELECT(16,8), "dd7361");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7361.d");
+ test_class_info(&lv, &cd_dd7361);
+ dp->~dd7361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7361(Test_dd7361, "dd7361", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7361C1Ev();
+extern void _ZN6dd7361D1Ev();
+Name_Map name_map_dd7361[] = {
+ NSPAIR(_ZN6dd7361C1Ev),
+ NSPAIR(_ZN6dd7361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+static Base_Class bases_dd7361[] = {
+ // 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_bb61, 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_cc361, 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 _ZTI6dd7361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__6dd7361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_dd7361[] = {
+ {&(_ZTV6dd7361[4]), 4,17},
+ {&(_ZTV6dd7361[10]), 10,17},
+ {&(_ZTV6dd7361[15]), 15,17},
+ {&(_tg__ZTV5cc361__6dd7361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__6dd7361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static VTBL_ENTRY alt_thunk_names686[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7361 = { "dd7361", // class name
+ bases_dd7361, 3,
+ &(vtc_dd7361[0]), // expected_vtbl_contents
+ &(vtt_dd7361[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7361),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names686,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07361 : dd7361 {
+ int e;
+ ~ee07361(); // tgen
+ ee07361(); // tgen
+};
+//SIG(1 ee07361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07361 ::~ee07361(){ note_dtor("ee07361", this);} // tgen
+ee07361 ::ee07361(){ note_ctor("ee07361", this);} // tgen
+
+static void Test_ee07361()
+{
+ extern Class_Descriptor cd_ee07361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07361, buf);
+ ee07361 *dp, &lv = *(dp=new (buf) ee07361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee07361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee07361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(16,12), "ee07361");
+ check_base_class_offset(lv, (dd7361*), 0, "ee07361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07361.e");
+ test_class_info(&lv, &cd_ee07361);
+ dp->~ee07361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07361(Test_ee07361, "ee07361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07361C1Ev();
+extern void _ZN7ee07361D1Ev();
+Name_Map name_map_ee07361[] = {
+ NSPAIR(_ZN7ee07361C1Ev),
+ NSPAIR(_ZN7ee07361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee07361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee07361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee07361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee07361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee07361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee07361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee07361[] = {
+ {&(_ZTV7ee07361[4]), 4,17},
+ {&(_tg__ZTV6dd7361__7ee07361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee07361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee07361[4]), 4,6},
+ {&(_ZTV7ee07361[10]), 10,17},
+ {&(_ZTV7ee07361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee07361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee07361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07361[];
+extern VTBL_ENTRY _ZTV7ee07361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07361[];
+static VTBL_ENTRY alt_thunk_names687[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07361 = { "ee07361", // class name
+ bases_ee07361, 4,
+ &(vtc_ee07361[0]), // expected_vtbl_contents
+ &(vtt_ee07361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07361),8, //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 ee17361 : virtual dd7361 {
+ int e;
+ ~ee17361(); // tgen
+ ee17361(); // tgen
+};
+//SIG(1 ee17361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17361 ::~ee17361(){ note_dtor("ee17361", this);} // tgen
+ee17361 ::ee17361(){ note_ctor("ee17361", this);} // tgen
+
+static void Test_ee17361()
+{
+ extern Class_Descriptor cd_ee17361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17361, buf);
+ ee17361 *dp, &lv = *(dp=new (buf) ee17361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee17361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee17361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(32,16), "ee17361");
+ check_base_class_offset(lv, (dd7361*), ABISELECT(16,8), "ee17361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17361.e");
+ test_class_info(&lv, &cd_ee17361);
+ dp->~ee17361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17361(Test_ee17361, "ee17361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17361C1Ev();
+extern void _ZN7ee17361D1Ev();
+Name_Map name_map_ee17361[] = {
+ NSPAIR(_ZN7ee17361C1Ev),
+ NSPAIR(_ZN7ee17361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee17361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 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 _ZTI7ee17361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17361[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee17361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee17361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee17361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee17361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee17361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee17361[] = {
+ {&(_ZTV7ee17361[5]), 5,24},
+ {&(_ZTV7ee17361[11]), 11,24},
+ {&(_ZTV7ee17361[17]), 17,24},
+ {&(_ZTV7ee17361[22]), 22,24},
+ {&(_tg__ZTV6dd7361__7ee17361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee17361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee17361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee17361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee17361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17361[];
+extern VTBL_ENTRY _ZTV7ee17361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17361[];
+static VTBL_ENTRY alt_thunk_names688[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17361 = { "ee17361", // class name
+ bases_ee17361, 4,
+ &(vtc_ee17361[0]), // expected_vtbl_contents
+ &(vtt_ee17361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17361),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17361),9, //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 ee27361 : dd7361 {
+ int e;
+ virtual void foo(); // _ZN7ee273613fooEv
+ ~ee27361(); // tgen
+ ee27361(); // tgen
+};
+//SIG(1 ee27361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27361 ::foo(){vfunc_called(this, "_ZN7ee273613fooEv");}
+ee27361 ::~ee27361(){ note_dtor("ee27361", this);} // tgen
+ee27361 ::ee27361(){ note_ctor("ee27361", this);} // tgen
+
+static void Test_ee27361()
+{
+ extern Class_Descriptor cd_ee27361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27361, buf);
+ ee27361 *dp, &lv = *(dp=new (buf) ee27361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee27361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee27361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(16,12), "ee27361");
+ check_base_class_offset(lv, (dd7361*), 0, "ee27361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27361.e");
+ test_class_info(&lv, &cd_ee27361);
+ dp->~ee27361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27361(Test_ee27361, "ee27361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27361C1Ev();
+extern void _ZN7ee27361D1Ev();
+Name_Map name_map_ee27361[] = {
+ NSPAIR(_ZN7ee27361C1Ev),
+ NSPAIR(_ZN7ee27361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee27361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN7ee273613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273613fooEv,_ZTv0_n16_N7ee273613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273613fooEv,_ZThn12_N7ee273613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273613fooEv,_ZTv0_n12_N7ee273613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273613fooEv,_ZThn20_N7ee273613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN7ee273613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273613fooEv,_ZTv0_n16_N7ee273613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273613fooEv,_ZTv0_n12_N7ee273613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee27361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee27361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee27361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee27361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee27361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee27361[] = {
+ {&(_ZTV7ee27361[4]), 4,17},
+ {&(_tg__ZTV6dd7361__7ee27361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee27361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee27361[4]), 4,6},
+ {&(_ZTV7ee27361[10]), 10,17},
+ {&(_ZTV7ee27361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee27361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee27361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27361[];
+extern VTBL_ENTRY _ZTV7ee27361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27361[];
+static VTBL_ENTRY alt_thunk_names689[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273613fooEv,_ZTv0_n12_N7ee273613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273613fooEv,_ZThn20_N7ee273613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273613fooEv,_ZTv0_n16_N7ee273613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273613fooEv,_ZThn12_N7ee273613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27361 = { "ee27361", // class name
+ bases_ee27361, 4,
+ &(vtc_ee27361[0]), // expected_vtbl_contents
+ &(vtt_ee27361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27361),8, //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 ee37361 : virtual dd7361 {
+ int e;
+ virtual void foo(); // _ZN7ee373613fooEv
+ ~ee37361(); // tgen
+ ee37361(); // tgen
+};
+//SIG(1 ee37361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37361 ::foo(){vfunc_called(this, "_ZN7ee373613fooEv");}
+ee37361 ::~ee37361(){ note_dtor("ee37361", this);} // tgen
+ee37361 ::ee37361(){ note_ctor("ee37361", this);} // tgen
+
+static void Test_ee37361()
+{
+ extern Class_Descriptor cd_ee37361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37361, buf);
+ ee37361 *dp, &lv = *(dp=new (buf) ee37361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee37361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee37361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(32,16), "ee37361");
+ check_base_class_offset(lv, (dd7361*), ABISELECT(16,8), "ee37361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37361.e");
+ test_class_info(&lv, &cd_ee37361);
+ dp->~ee37361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37361(Test_ee37361, "ee37361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37361C1Ev();
+extern void _ZN7ee37361D1Ev();
+Name_Map name_map_ee37361[] = {
+ NSPAIR(_ZN7ee37361C1Ev),
+ NSPAIR(_ZN7ee37361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee37361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 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 _ZTI7ee37361[];
+extern void _ZN7ee373613fooEv();
+extern void _ZN6dd73613barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373613fooEv,_ZTv0_n24_N7ee373613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373613fooEv,_ZThn8_N7ee373613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373613fooEv,_ZTv0_n16_N7ee373613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373613fooEv,_ZThn16_N7ee373613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373613fooEv,_ZTv0_n12_N7ee373613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373613fooEv,_ZThn24_N7ee373613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37361[0]),
+ (VTBL_ENTRY)&_ZN7ee373613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373613fooEv,_ZTv0_n24_N7ee373613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373613fooEv,_ZTv0_n16_N7ee373613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373613fooEv,_ZTv0_n12_N7ee373613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee37361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee37361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee37361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee37361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee37361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee37361[] = {
+ {&(_ZTV7ee37361[5]), 5,25},
+ {&(_ZTV7ee37361[12]), 12,25},
+ {&(_ZTV7ee37361[18]), 18,25},
+ {&(_ZTV7ee37361[23]), 23,25},
+ {&(_tg__ZTV6dd7361__7ee37361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee37361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee37361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee37361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee37361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37361[];
+extern VTBL_ENTRY _ZTV7ee37361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37361[];
+static VTBL_ENTRY alt_thunk_names690[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373613fooEv,_ZTv0_n12_N7ee373613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373613fooEv,_ZThn24_N7ee373613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373613fooEv,_ZTv0_n16_N7ee373613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373613fooEv,_ZThn16_N7ee373613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373613fooEv,_ZTv0_n24_N7ee373613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373613fooEv,_ZThn8_N7ee373613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37361 = { "ee37361", // class name
+ bases_ee37361, 4,
+ &(vtc_ee37361[0]), // expected_vtbl_contents
+ &(vtt_ee37361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37361),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37361),9, //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 ee47361 : dd7361 {
+ int e;
+ virtual void bar(); // _ZN7ee473613barEv
+ ~ee47361(); // tgen
+ ee47361(); // tgen
+};
+//SIG(1 ee47361) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47361 ::bar(){vfunc_called(this, "_ZN7ee473613barEv");}
+ee47361 ::~ee47361(){ note_dtor("ee47361", this);} // tgen
+ee47361 ::ee47361(){ note_ctor("ee47361", this);} // tgen
+
+static void Test_ee47361()
+{
+ extern Class_Descriptor cd_ee47361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47361, buf);
+ ee47361 *dp, &lv = *(dp=new (buf) ee47361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee47361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee47361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(16,12), "ee47361");
+ check_base_class_offset(lv, (dd7361*), 0, "ee47361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47361.e");
+ test_class_info(&lv, &cd_ee47361);
+ dp->~ee47361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47361(Test_ee47361, "ee47361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47361C1Ev();
+extern void _ZN7ee47361D1Ev();
+Name_Map name_map_ee47361[] = {
+ NSPAIR(_ZN7ee47361C1Ev),
+ NSPAIR(_ZN7ee47361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee47361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47361[];
+extern void _ZN7ee473613barEv();
+extern void _ZN6dd73613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473613barEv,_ZTv0_n16_N7ee473613barEv)();
+extern void ABISELECT(_ZThn32_N7ee473613barEv,_ZThn20_N7ee473613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47361[0]),
+ (VTBL_ENTRY)&_ZN7ee473613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473613barEv,_ZTv0_n16_N7ee473613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee47361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee47361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee47361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee47361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee47361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee47361[] = {
+ {&(_ZTV7ee47361[4]), 4,17},
+ {&(_tg__ZTV6dd7361__7ee47361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee47361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee47361[4]), 4,6},
+ {&(_ZTV7ee47361[10]), 10,17},
+ {&(_ZTV7ee47361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee47361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee47361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47361[];
+extern VTBL_ENTRY _ZTV7ee47361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47361[];
+static VTBL_ENTRY alt_thunk_names691[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473613barEv,_ZTv0_n16_N7ee473613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473613barEv,_ZThn20_N7ee473613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47361 = { "ee47361", // class name
+ bases_ee47361, 4,
+ &(vtc_ee47361[0]), // expected_vtbl_contents
+ &(vtt_ee47361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47361),8, //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 ee57361 : virtual dd7361 {
+ int e;
+ virtual void bar(); // _ZN7ee573613barEv
+ ~ee57361(); // tgen
+ ee57361(); // tgen
+};
+//SIG(1 ee57361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57361 ::bar(){vfunc_called(this, "_ZN7ee573613barEv");}
+ee57361 ::~ee57361(){ note_dtor("ee57361", this);} // tgen
+ee57361 ::ee57361(){ note_ctor("ee57361", this);} // tgen
+
+static void Test_ee57361()
+{
+ extern Class_Descriptor cd_ee57361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57361, buf);
+ ee57361 *dp, &lv = *(dp=new (buf) ee57361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee57361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee57361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(32,16), "ee57361");
+ check_base_class_offset(lv, (dd7361*), ABISELECT(16,8), "ee57361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57361.e");
+ test_class_info(&lv, &cd_ee57361);
+ dp->~ee57361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57361(Test_ee57361, "ee57361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57361C1Ev();
+extern void _ZN7ee57361D1Ev();
+Name_Map name_map_ee57361[] = {
+ NSPAIR(_ZN7ee57361C1Ev),
+ NSPAIR(_ZN7ee57361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee57361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 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 _ZTI7ee57361[];
+extern void _ZN7ee573613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573613barEv,_ZTv0_n20_N7ee573613barEv)();
+extern void ABISELECT(_ZThn16_N7ee573613barEv,_ZThn8_N7ee573613barEv)() __attribute__((weak));
+extern void _ZN6dd73613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573613barEv,_ZTv0_n16_N7ee573613barEv)();
+extern void ABISELECT(_ZThn48_N7ee573613barEv,_ZThn24_N7ee573613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57361[0]),
+ (VTBL_ENTRY)&_ZN7ee573613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573613barEv,_ZTv0_n20_N7ee573613barEv),
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573613barEv,_ZTv0_n16_N7ee573613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee57361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee57361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee57361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee57361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee57361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee57361[] = {
+ {&(_ZTV7ee57361[5]), 5,25},
+ {&(_ZTV7ee57361[12]), 12,25},
+ {&(_ZTV7ee57361[18]), 18,25},
+ {&(_ZTV7ee57361[23]), 23,25},
+ {&(_tg__ZTV6dd7361__7ee57361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee57361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee57361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee57361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee57361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57361[];
+extern VTBL_ENTRY _ZTV7ee57361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57361[];
+static VTBL_ENTRY alt_thunk_names692[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573613barEv,_ZTv0_n16_N7ee573613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573613barEv,_ZThn24_N7ee573613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573613barEv,_ZTv0_n20_N7ee573613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573613barEv,_ZThn8_N7ee573613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57361 = { "ee57361", // class name
+ bases_ee57361, 4,
+ &(vtc_ee57361[0]), // expected_vtbl_contents
+ &(vtt_ee57361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57361),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57361),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names692,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67361 : dd7361 {
+ int e;
+ virtual void foo(); // _ZN7ee673613fooEv
+ virtual void bar(); // _ZN7ee673613barEv
+ ~ee67361(); // tgen
+ ee67361(); // tgen
+};
+//SIG(1 ee67361) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67361 ::foo(){vfunc_called(this, "_ZN7ee673613fooEv");}
+void ee67361 ::bar(){vfunc_called(this, "_ZN7ee673613barEv");}
+ee67361 ::~ee67361(){ note_dtor("ee67361", this);} // tgen
+ee67361 ::ee67361(){ note_ctor("ee67361", this);} // tgen
+
+static void Test_ee67361()
+{
+ extern Class_Descriptor cd_ee67361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67361, buf);
+ ee67361 *dp, &lv = *(dp=new (buf) ee67361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee67361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(32,20), "ee67361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(16,12), "ee67361");
+ check_base_class_offset(lv, (dd7361*), 0, "ee67361");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67361.e");
+ test_class_info(&lv, &cd_ee67361);
+ dp->~ee67361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67361(Test_ee67361, "ee67361", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67361C1Ev();
+extern void _ZN7ee67361D1Ev();
+Name_Map name_map_ee67361[] = {
+ NSPAIR(_ZN7ee67361C1Ev),
+ NSPAIR(_ZN7ee67361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee67361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67361[];
+extern void _ZN7ee673613barEv();
+extern void _ZN7ee673613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673613fooEv,_ZTv0_n16_N7ee673613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673613fooEv,_ZThn12_N7ee673613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673613fooEv,_ZTv0_n12_N7ee673613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673613fooEv,_ZThn20_N7ee673613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673613barEv,_ZTv0_n16_N7ee673613barEv)();
+extern void ABISELECT(_ZThn32_N7ee673613barEv,_ZThn20_N7ee673613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67361[0]),
+ (VTBL_ENTRY)&_ZN7ee673613barEv,
+ (VTBL_ENTRY)&_ZN7ee673613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673613fooEv,_ZTv0_n16_N7ee673613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673613fooEv,_ZTv0_n12_N7ee673613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673613barEv,_ZTv0_n16_N7ee673613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee67361[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee67361[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee67361[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee67361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee67361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee67361[] = {
+ {&(_ZTV7ee67361[4]), 4,17},
+ {&(_tg__ZTV6dd7361__7ee67361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee67361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee67361[4]), 4,6},
+ {&(_ZTV7ee67361[10]), 10,17},
+ {&(_ZTV7ee67361[15]), 15,17},
+ {&(_tg__ZTV5cc361__7ee67361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee67361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67361[];
+extern VTBL_ENTRY _ZTV7ee67361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67361[];
+static VTBL_ENTRY alt_thunk_names693[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn20_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn20_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn12_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673613barEv,_ZTv0_n16_N7ee673613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673613barEv,_ZThn20_N7ee673613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673613fooEv,_ZTv0_n12_N7ee673613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673613fooEv,_ZThn20_N7ee673613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673613fooEv,_ZTv0_n16_N7ee673613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673613fooEv,_ZThn12_N7ee673613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67361 = { "ee67361", // class name
+ bases_ee67361, 4,
+ &(vtc_ee67361[0]), // expected_vtbl_contents
+ &(vtt_ee67361[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67361),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67361),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67361),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 ee77361 : virtual dd7361 {
+ int e;
+ virtual void foo(); // _ZN7ee773613fooEv
+ virtual void bar(); // _ZN7ee773613barEv
+ ~ee77361(); // tgen
+ ee77361(); // tgen
+};
+//SIG(1 ee77361) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77361 ::foo(){vfunc_called(this, "_ZN7ee773613fooEv");}
+void ee77361 ::bar(){vfunc_called(this, "_ZN7ee773613barEv");}
+ee77361 ::~ee77361(){ note_dtor("ee77361", this);} // tgen
+ee77361 ::ee77361(){ note_ctor("ee77361", this);} // tgen
+
+static void Test_ee77361()
+{
+ extern Class_Descriptor cd_ee77361;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77361, buf);
+ ee77361 *dp, &lv = *(dp=new (buf) ee77361());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77361)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77361)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee77361");
+ check_base_class_offset(lv, (bb61*)(cc361*), ABISELECT(48,24), "ee77361");
+ check_base_class_offset(lv, (cc361*)(dd7361*), ABISELECT(32,16), "ee77361");
+ check_base_class_offset(lv, (dd7361*), ABISELECT(16,8), "ee77361");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77361.e");
+ test_class_info(&lv, &cd_ee77361);
+ dp->~ee77361();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77361(Test_ee77361, "ee77361", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77361C1Ev();
+extern void _ZN7ee77361D1Ev();
+Name_Map name_map_ee77361[] = {
+ NSPAIR(_ZN7ee77361C1Ev),
+ NSPAIR(_ZN7ee77361D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc361;
+extern VTBL_ENTRY _ZTI5cc361[];
+extern VTBL_ENTRY _ZTV5cc361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc361[];
+extern Class_Descriptor cd_dd7361;
+extern VTBL_ENTRY _ZTI6dd7361[];
+extern VTBL_ENTRY _ZTV6dd7361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7361[];
+static Base_Class bases_ee77361[] = {
+ // 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_bb61, 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_cc361, 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_dd7361, 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 _ZTI7ee77361[];
+extern void _ZN7ee773613fooEv();
+extern void _ZN7ee773613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773613barEv,_ZTv0_n20_N7ee773613barEv)();
+extern void ABISELECT(_ZThn16_N7ee773613barEv,_ZThn8_N7ee773613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773613fooEv,_ZTv0_n24_N7ee773613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773613fooEv,_ZThn8_N7ee773613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773613fooEv,_ZTv0_n16_N7ee773613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773613fooEv,_ZThn16_N7ee773613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773613fooEv,_ZTv0_n12_N7ee773613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773613fooEv,_ZThn24_N7ee773613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773613barEv,_ZTv0_n16_N7ee773613barEv)();
+extern void ABISELECT(_ZThn48_N7ee773613barEv,_ZThn24_N7ee773613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77361[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77361[0]),
+ (VTBL_ENTRY)&_ZN7ee773613fooEv,
+ (VTBL_ENTRY)&_ZN7ee773613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773613barEv,_ZTv0_n20_N7ee773613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773613fooEv,_ZTv0_n24_N7ee773613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773613fooEv,_ZTv0_n16_N7ee773613fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773613fooEv,_ZTv0_n12_N7ee773613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773613barEv,_ZTv0_n16_N7ee773613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77361[];
+extern void _ZN6dd73613barEv();
+extern void _ZN6dd73613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7361__7ee77361[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&_ZN6dd73613barEv,
+ (VTBL_ENTRY)&_ZN6dd73613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc361__6dd7361__7ee77361[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv)();
+extern void ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7361__7ee77361[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv),
+};
+extern void _ZN5cc3613fooEv();
+static VTBL_ENTRY _tg__ZTV5cc361__7ee77361[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&_ZN5cc3613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv)() __attribute__((weak));
+extern void _ZN4bb613barEv();
+static VTBL_ENTRY _tg__ZTV4bb61__5cc361__7ee77361[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc361[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv),
+ (VTBL_ENTRY)&_ZN4bb613barEv,
+};
+static VTT_ENTRY vtt_ee77361[] = {
+ {&(_ZTV7ee77361[5]), 5,26},
+ {&(_ZTV7ee77361[13]), 13,26},
+ {&(_ZTV7ee77361[19]), 19,26},
+ {&(_ZTV7ee77361[24]), 24,26},
+ {&(_tg__ZTV6dd7361__7ee77361[4]), 4,6},
+ {&(_tg__ZTV5cc361__6dd7361__7ee77361[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7361__7ee77361[4]), 4,6},
+ {&(_tg__ZTV5cc361__7ee77361[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc361__7ee77361[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77361[];
+extern VTBL_ENTRY _ZTV7ee77361[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77361[];
+static VTBL_ENTRY alt_thunk_names694[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3613fooEv,_ZTv0_n12_N5cc3613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3613fooEv,_ZThn8_N5cc3613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613barEv,_ZTv0_n16_N6dd73613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613barEv,_ZThn16_N6dd73613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73613fooEv,_ZTv0_n12_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73613fooEv,_ZThn16_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73613fooEv,_ZTv0_n16_N6dd73613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73613fooEv,_ZThn8_N6dd73613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773613barEv,_ZTv0_n16_N7ee773613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773613barEv,_ZThn24_N7ee773613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773613fooEv,_ZTv0_n12_N7ee773613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773613fooEv,_ZThn24_N7ee773613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773613fooEv,_ZTv0_n16_N7ee773613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773613fooEv,_ZThn16_N7ee773613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773613fooEv,_ZTv0_n24_N7ee773613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773613fooEv,_ZThn8_N7ee773613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773613barEv,_ZTv0_n20_N7ee773613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773613barEv,_ZThn8_N7ee773613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77361 = { "ee77361", // class name
+ bases_ee77361, 4,
+ &(vtc_ee77361[0]), // expected_vtbl_contents
+ &(vtt_ee77361[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77361),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77361),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77361),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 cc461 : bb61 {
+ int c;
+ virtual void bar(); // _ZN5cc4613barEv
+ ~cc461(); // tgen
+ cc461(); // tgen
+};
+//SIG(-1 cc461) C1{ BC2{ BC3{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc461 ::bar(){vfunc_called(this, "_ZN5cc4613barEv");}
+cc461 ::~cc461(){ note_dtor("cc461", this);} // tgen
+cc461 ::cc461(){ note_ctor("cc461", this);} // tgen
+
+static void Test_cc461()
+{
+ extern Class_Descriptor cd_cc461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc461, buf);
+ cc461 *dp, &lv = *(dp=new (buf) cc461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc461)");
+ check_base_class_offset(lv, (aa1*)(bb61*), 0, "cc461");
+ check_base_class_offset(lv, (bb61*), 0, "cc461");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc461.c");
+ test_class_info(&lv, &cd_cc461);
+ dp->~cc461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc461(Test_cc461, "cc461", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc461C1Ev();
+extern void _ZN5cc461D1Ev();
+Name_Map name_map_cc461[] = {
+ NSPAIR(_ZN5cc461C1Ev),
+ NSPAIR(_ZN5cc461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_cc461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+Class_Descriptor cd_cc461 = { "cc461", // class name
+ bases_cc461, 2,
+ &(vtc_cc461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc461),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 dd0461 : cc461 {
+ int d;
+ ~dd0461(); // tgen
+ dd0461(); // tgen
+};
+//SIG(-1 dd0461) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0461 ::~dd0461(){ note_dtor("dd0461", this);} // tgen
+dd0461 ::dd0461(){ note_ctor("dd0461", this);} // tgen
+
+static void Test_dd0461()
+{
+ extern Class_Descriptor cd_dd0461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0461, buf);
+ dd0461 *dp, &lv = *(dp=new (buf) dd0461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), 0, "dd0461");
+ check_base_class_offset(lv, (bb61*)(cc461*), 0, "dd0461");
+ check_base_class_offset(lv, (cc461*), 0, "dd0461");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0461.d");
+ test_class_info(&lv, &cd_dd0461);
+ dp->~dd0461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0461(Test_dd0461, "dd0461", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0461C1Ev();
+extern void _ZN6dd0461D1Ev();
+Name_Map name_map_dd0461[] = {
+ NSPAIR(_ZN6dd0461C1Ev),
+ NSPAIR(_ZN6dd0461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd0461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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 _ZTI6dd0461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_dd0461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+Class_Descriptor cd_dd0461 = { "dd0461", // class name
+ bases_dd0461, 3,
+ &(vtc_dd0461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0461),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 ee00461 : dd0461 {
+ int e;
+ ~ee00461(); // tgen
+ ee00461(); // tgen
+};
+//SIG(1 ee00461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00461 ::~ee00461(){ note_dtor("ee00461", this);} // tgen
+ee00461 ::ee00461(){ note_ctor("ee00461", this);} // tgen
+
+static void Test_ee00461()
+{
+ extern Class_Descriptor cd_ee00461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00461, buf);
+ ee00461 *dp, &lv = *(dp=new (buf) ee00461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), 0, "ee00461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), 0, "ee00461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), 0, "ee00461");
+ check_base_class_offset(lv, (dd0461*), 0, "ee00461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00461.e");
+ test_class_info(&lv, &cd_ee00461);
+ dp->~ee00461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00461(Test_ee00461, "ee00461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00461C1Ev();
+extern void _ZN7ee00461D1Ev();
+Name_Map name_map_ee00461[] = {
+ NSPAIR(_ZN7ee00461C1Ev),
+ NSPAIR(_ZN7ee00461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee00461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd0461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee00461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00461[];
+extern VTBL_ENTRY _ZTV7ee00461[];
+Class_Descriptor cd_ee00461 = { "ee00461", // class name
+ bases_ee00461, 4,
+ &(vtc_ee00461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00461),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 ee10461 : virtual dd0461 {
+ int e;
+ ~ee10461(); // tgen
+ ee10461(); // tgen
+};
+//SIG(1 ee10461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10461 ::~ee10461(){ note_dtor("ee10461", this);} // tgen
+ee10461 ::ee10461(){ note_ctor("ee10461", this);} // tgen
+
+static void Test_ee10461()
+{
+ extern Class_Descriptor cd_ee10461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10461, buf);
+ ee10461 *dp, &lv = *(dp=new (buf) ee10461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee10461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee10461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), ABISELECT(16,8), "ee10461");
+ check_base_class_offset(lv, (dd0461*), ABISELECT(16,8), "ee10461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10461.e");
+ test_class_info(&lv, &cd_ee10461);
+ dp->~ee10461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10461(Test_ee10461, "ee10461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10461C1Ev();
+extern void _ZN7ee10461D1Ev();
+Name_Map name_map_ee10461[] = {
+ NSPAIR(_ZN7ee10461C1Ev),
+ NSPAIR(_ZN7ee10461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee10461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd0461, 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 _ZTI7ee10461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee10461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10461[];
+static VTT_ENTRY vtt_ee10461[] = {
+ {&(_ZTV7ee10461[3]), 3,9},
+ {&(_ZTV7ee10461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10461[];
+extern VTBL_ENTRY _ZTV7ee10461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10461[];
+Class_Descriptor cd_ee10461 = { "ee10461", // class name
+ bases_ee10461, 4,
+ &(vtc_ee10461[0]), // expected_vtbl_contents
+ &(vtt_ee10461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10461),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 ee20461 : dd0461 {
+ int e;
+ virtual void foo(); // _ZN7ee204613fooEv
+ ~ee20461(); // tgen
+ ee20461(); // tgen
+};
+//SIG(1 ee20461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20461 ::foo(){vfunc_called(this, "_ZN7ee204613fooEv");}
+ee20461 ::~ee20461(){ note_dtor("ee20461", this);} // tgen
+ee20461 ::ee20461(){ note_ctor("ee20461", this);} // tgen
+
+static void Test_ee20461()
+{
+ extern Class_Descriptor cd_ee20461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20461, buf);
+ ee20461 *dp, &lv = *(dp=new (buf) ee20461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), 0, "ee20461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), 0, "ee20461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), 0, "ee20461");
+ check_base_class_offset(lv, (dd0461*), 0, "ee20461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20461.e");
+ test_class_info(&lv, &cd_ee20461);
+ dp->~ee20461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20461(Test_ee20461, "ee20461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20461C1Ev();
+extern void _ZN7ee20461D1Ev();
+Name_Map name_map_ee20461[] = {
+ NSPAIR(_ZN7ee20461C1Ev),
+ NSPAIR(_ZN7ee20461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee20461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20461[];
+extern void _ZN7ee204613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee20461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20461[0]),
+ (VTBL_ENTRY)&_ZN7ee204613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20461[];
+extern VTBL_ENTRY _ZTV7ee20461[];
+Class_Descriptor cd_ee20461 = { "ee20461", // class name
+ bases_ee20461, 4,
+ &(vtc_ee20461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20461),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 ee30461 : virtual dd0461 {
+ int e;
+ virtual void foo(); // _ZN7ee304613fooEv
+ ~ee30461(); // tgen
+ ee30461(); // tgen
+};
+//SIG(1 ee30461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30461 ::foo(){vfunc_called(this, "_ZN7ee304613fooEv");}
+ee30461 ::~ee30461(){ note_dtor("ee30461", this);} // tgen
+ee30461 ::ee30461(){ note_ctor("ee30461", this);} // tgen
+
+static void Test_ee30461()
+{
+ extern Class_Descriptor cd_ee30461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30461, buf);
+ ee30461 *dp, &lv = *(dp=new (buf) ee30461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee30461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee30461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), ABISELECT(16,8), "ee30461");
+ check_base_class_offset(lv, (dd0461*), ABISELECT(16,8), "ee30461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30461.e");
+ test_class_info(&lv, &cd_ee30461);
+ dp->~ee30461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30461(Test_ee30461, "ee30461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30461C1Ev();
+extern void _ZN7ee30461D1Ev();
+Name_Map name_map_ee30461[] = {
+ NSPAIR(_ZN7ee30461C1Ev),
+ NSPAIR(_ZN7ee30461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee30461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd0461, 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 _ZTI7ee30461[];
+extern void _ZN7ee304613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304613fooEv,_ZTv0_n12_N7ee304613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304613fooEv,_ZThn8_N7ee304613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee30461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30461[0]),
+ (VTBL_ENTRY)&_ZN7ee304613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304613fooEv,_ZTv0_n12_N7ee304613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30461[];
+static VTT_ENTRY vtt_ee30461[] = {
+ {&(_ZTV7ee30461[3]), 3,10},
+ {&(_ZTV7ee30461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30461[];
+extern VTBL_ENTRY _ZTV7ee30461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30461[];
+static VTBL_ENTRY alt_thunk_names695[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304613fooEv,_ZTv0_n12_N7ee304613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304613fooEv,_ZThn8_N7ee304613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30461 = { "ee30461", // class name
+ bases_ee30461, 4,
+ &(vtc_ee30461[0]), // expected_vtbl_contents
+ &(vtt_ee30461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30461),2, //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 ee40461 : dd0461 {
+ int e;
+ virtual void bar(); // _ZN7ee404613barEv
+ ~ee40461(); // tgen
+ ee40461(); // tgen
+};
+//SIG(1 ee40461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40461 ::bar(){vfunc_called(this, "_ZN7ee404613barEv");}
+ee40461 ::~ee40461(){ note_dtor("ee40461", this);} // tgen
+ee40461 ::ee40461(){ note_ctor("ee40461", this);} // tgen
+
+static void Test_ee40461()
+{
+ extern Class_Descriptor cd_ee40461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40461, buf);
+ ee40461 *dp, &lv = *(dp=new (buf) ee40461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), 0, "ee40461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), 0, "ee40461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), 0, "ee40461");
+ check_base_class_offset(lv, (dd0461*), 0, "ee40461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40461.e");
+ test_class_info(&lv, &cd_ee40461);
+ dp->~ee40461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40461(Test_ee40461, "ee40461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40461C1Ev();
+extern void _ZN7ee40461D1Ev();
+Name_Map name_map_ee40461[] = {
+ NSPAIR(_ZN7ee40461C1Ev),
+ NSPAIR(_ZN7ee40461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee40461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN7ee404613barEv();
+static VTBL_ENTRY vtc_ee40461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN7ee404613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40461[];
+extern VTBL_ENTRY _ZTV7ee40461[];
+Class_Descriptor cd_ee40461 = { "ee40461", // class name
+ bases_ee40461, 4,
+ &(vtc_ee40461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40461),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 ee50461 : virtual dd0461 {
+ int e;
+ virtual void bar(); // _ZN7ee504613barEv
+ ~ee50461(); // tgen
+ ee50461(); // tgen
+};
+//SIG(1 ee50461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50461 ::bar(){vfunc_called(this, "_ZN7ee504613barEv");}
+ee50461 ::~ee50461(){ note_dtor("ee50461", this);} // tgen
+ee50461 ::ee50461(){ note_ctor("ee50461", this);} // tgen
+
+static void Test_ee50461()
+{
+ extern Class_Descriptor cd_ee50461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50461, buf);
+ ee50461 *dp, &lv = *(dp=new (buf) ee50461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee50461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee50461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), ABISELECT(16,8), "ee50461");
+ check_base_class_offset(lv, (dd0461*), ABISELECT(16,8), "ee50461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50461.e");
+ test_class_info(&lv, &cd_ee50461);
+ dp->~ee50461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50461(Test_ee50461, "ee50461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50461C1Ev();
+extern void _ZN7ee50461D1Ev();
+Name_Map name_map_ee50461[] = {
+ NSPAIR(_ZN7ee50461C1Ev),
+ NSPAIR(_ZN7ee50461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee50461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd0461, 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 _ZTI7ee50461[];
+extern void _ZN7ee504613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504613barEv,_ZTv0_n16_N7ee504613barEv)();
+extern void ABISELECT(_ZThn16_N7ee504613barEv,_ZThn8_N7ee504613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50461[0]),
+ (VTBL_ENTRY)&_ZN7ee504613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504613barEv,_ZTv0_n16_N7ee504613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50461[];
+static VTT_ENTRY vtt_ee50461[] = {
+ {&(_ZTV7ee50461[3]), 3,10},
+ {&(_ZTV7ee50461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50461[];
+extern VTBL_ENTRY _ZTV7ee50461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50461[];
+static VTBL_ENTRY alt_thunk_names696[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504613barEv,_ZTv0_n16_N7ee504613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504613barEv,_ZThn8_N7ee504613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50461 = { "ee50461", // class name
+ bases_ee50461, 4,
+ &(vtc_ee50461[0]), // expected_vtbl_contents
+ &(vtt_ee50461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50461),2, //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 ee60461 : dd0461 {
+ int e;
+ virtual void foo(); // _ZN7ee604613fooEv
+ virtual void bar(); // _ZN7ee604613barEv
+ ~ee60461(); // tgen
+ ee60461(); // tgen
+};
+//SIG(1 ee60461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60461 ::foo(){vfunc_called(this, "_ZN7ee604613fooEv");}
+void ee60461 ::bar(){vfunc_called(this, "_ZN7ee604613barEv");}
+ee60461 ::~ee60461(){ note_dtor("ee60461", this);} // tgen
+ee60461 ::ee60461(){ note_ctor("ee60461", this);} // tgen
+
+static void Test_ee60461()
+{
+ extern Class_Descriptor cd_ee60461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60461, buf);
+ ee60461 *dp, &lv = *(dp=new (buf) ee60461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), 0, "ee60461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), 0, "ee60461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), 0, "ee60461");
+ check_base_class_offset(lv, (dd0461*), 0, "ee60461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60461.e");
+ test_class_info(&lv, &cd_ee60461);
+ dp->~ee60461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60461(Test_ee60461, "ee60461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60461C1Ev();
+extern void _ZN7ee60461D1Ev();
+Name_Map name_map_ee60461[] = {
+ NSPAIR(_ZN7ee60461C1Ev),
+ NSPAIR(_ZN7ee60461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee60461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60461[];
+extern void _ZN7ee604613fooEv();
+extern void _ZN7ee604613barEv();
+static VTBL_ENTRY vtc_ee60461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60461[0]),
+ (VTBL_ENTRY)&_ZN7ee604613fooEv,
+ (VTBL_ENTRY)&_ZN7ee604613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60461[];
+extern VTBL_ENTRY _ZTV7ee60461[];
+Class_Descriptor cd_ee60461 = { "ee60461", // class name
+ bases_ee60461, 4,
+ &(vtc_ee60461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60461),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 ee70461 : virtual dd0461 {
+ int e;
+ virtual void foo(); // _ZN7ee704613fooEv
+ virtual void bar(); // _ZN7ee704613barEv
+ ~ee70461(); // tgen
+ ee70461(); // tgen
+};
+//SIG(1 ee70461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70461 ::foo(){vfunc_called(this, "_ZN7ee704613fooEv");}
+void ee70461 ::bar(){vfunc_called(this, "_ZN7ee704613barEv");}
+ee70461 ::~ee70461(){ note_dtor("ee70461", this);} // tgen
+ee70461 ::ee70461(){ note_ctor("ee70461", this);} // tgen
+
+static void Test_ee70461()
+{
+ extern Class_Descriptor cd_ee70461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70461, buf);
+ ee70461 *dp, &lv = *(dp=new (buf) ee70461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee70461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd0461*), ABISELECT(16,8), "ee70461");
+ check_base_class_offset(lv, (cc461*)(dd0461*), ABISELECT(16,8), "ee70461");
+ check_base_class_offset(lv, (dd0461*), ABISELECT(16,8), "ee70461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70461.e");
+ test_class_info(&lv, &cd_ee70461);
+ dp->~ee70461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70461(Test_ee70461, "ee70461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70461C1Ev();
+extern void _ZN7ee70461D1Ev();
+Name_Map name_map_ee70461[] = {
+ NSPAIR(_ZN7ee70461C1Ev),
+ NSPAIR(_ZN7ee70461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd0461;
+extern VTBL_ENTRY _ZTI6dd0461[];
+extern VTBL_ENTRY _ZTV6dd0461[];
+static Base_Class bases_ee70461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd0461, 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 _ZTI7ee70461[];
+extern void _ZN7ee704613fooEv();
+extern void _ZN7ee704613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704613fooEv,_ZTv0_n12_N7ee704613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704613fooEv,_ZThn8_N7ee704613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704613barEv,_ZTv0_n16_N7ee704613barEv)();
+extern void ABISELECT(_ZThn16_N7ee704613barEv,_ZThn8_N7ee704613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70461[0]),
+ (VTBL_ENTRY)&_ZN7ee704613fooEv,
+ (VTBL_ENTRY)&_ZN7ee704613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704613fooEv,_ZTv0_n12_N7ee704613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704613barEv,_ZTv0_n16_N7ee704613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70461[];
+static VTT_ENTRY vtt_ee70461[] = {
+ {&(_ZTV7ee70461[3]), 3,11},
+ {&(_ZTV7ee70461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70461[];
+extern VTBL_ENTRY _ZTV7ee70461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70461[];
+static VTBL_ENTRY alt_thunk_names697[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704613barEv,_ZTv0_n16_N7ee704613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704613barEv,_ZThn8_N7ee704613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704613fooEv,_ZTv0_n12_N7ee704613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704613fooEv,_ZThn8_N7ee704613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70461 = { "ee70461", // class name
+ bases_ee70461, 4,
+ &(vtc_ee70461[0]), // expected_vtbl_contents
+ &(vtt_ee70461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70461),2, //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 dd1461 : virtual cc461 {
+ int d;
+ ~dd1461(); // tgen
+ dd1461(); // tgen
+};
+//SIG(-1 dd1461) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1461 ::~dd1461(){ note_dtor("dd1461", this);} // tgen
+dd1461 ::dd1461(){ note_ctor("dd1461", this);} // tgen
+
+static void Test_dd1461()
+{
+ extern Class_Descriptor cd_dd1461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1461, buf);
+ dd1461 *dp, &lv = *(dp=new (buf) dd1461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,8), "dd1461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,8), "dd1461");
+ check_base_class_offset(lv, (cc461*), ABISELECT(16,8), "dd1461");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1461.d");
+ test_class_info(&lv, &cd_dd1461);
+ dp->~dd1461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1461(Test_dd1461, "dd1461", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1461C1Ev();
+extern void _ZN6dd1461D1Ev();
+Name_Map name_map_dd1461[] = {
+ NSPAIR(_ZN6dd1461C1Ev),
+ NSPAIR(_ZN6dd1461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd1461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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 _ZTI6dd1461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_dd1461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1461[];
+static VTT_ENTRY vtt_dd1461[] = {
+ {&(_ZTV6dd1461[3]), 3,9},
+ {&(_ZTV6dd1461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+Class_Descriptor cd_dd1461 = { "dd1461", // class name
+ bases_dd1461, 3,
+ &(vtc_dd1461[0]), // expected_vtbl_contents
+ &(vtt_dd1461[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1461),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 ee01461 : dd1461 {
+ int e;
+ ~ee01461(); // tgen
+ ee01461(); // tgen
+};
+//SIG(1 ee01461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01461 ::~ee01461(){ note_dtor("ee01461", this);} // tgen
+ee01461 ::ee01461(){ note_ctor("ee01461", this);} // tgen
+
+static void Test_ee01461()
+{
+ extern Class_Descriptor cd_ee01461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01461, buf);
+ ee01461 *dp, &lv = *(dp=new (buf) ee01461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee01461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee01461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(16,12), "ee01461");
+ check_base_class_offset(lv, (dd1461*), 0, "ee01461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01461.e");
+ test_class_info(&lv, &cd_ee01461);
+ dp->~ee01461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01461(Test_ee01461, "ee01461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01461C1Ev();
+extern void _ZN7ee01461D1Ev();
+Name_Map name_map_ee01461[] = {
+ NSPAIR(_ZN7ee01461C1Ev),
+ NSPAIR(_ZN7ee01461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee01461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee01461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee01461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee01461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee01461[] = {
+ {&(_ZTV7ee01461[3]), 3,9},
+ {&(_tg__ZTV6dd1461__7ee01461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee01461[4]), 4,6},
+ {&(_ZTV7ee01461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01461[];
+extern VTBL_ENTRY _ZTV7ee01461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01461[];
+Class_Descriptor cd_ee01461 = { "ee01461", // class name
+ bases_ee01461, 4,
+ &(vtc_ee01461[0]), // expected_vtbl_contents
+ &(vtt_ee01461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01461),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 ee11461 : virtual dd1461 {
+ int e;
+ ~ee11461(); // tgen
+ ee11461(); // tgen
+};
+//SIG(1 ee11461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11461 ::~ee11461(){ note_dtor("ee11461", this);} // tgen
+ee11461 ::ee11461(){ note_ctor("ee11461", this);} // tgen
+
+static void Test_ee11461()
+{
+ extern Class_Descriptor cd_ee11461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11461, buf);
+ ee11461 *dp, &lv = *(dp=new (buf) ee11461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee11461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee11461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(32,16), "ee11461");
+ check_base_class_offset(lv, (dd1461*), ABISELECT(16,8), "ee11461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11461.e");
+ test_class_info(&lv, &cd_ee11461);
+ dp->~ee11461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11461(Test_ee11461, "ee11461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11461C1Ev();
+extern void _ZN7ee11461D1Ev();
+Name_Map name_map_ee11461[] = {
+ NSPAIR(_ZN7ee11461C1Ev),
+ NSPAIR(_ZN7ee11461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee11461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 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 _ZTI7ee11461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee11461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11461[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11461[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee11461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee11461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee11461[] = {
+ {&(_ZTV7ee11461[4]), 4,13},
+ {&(_ZTV7ee11461[7]), 7,13},
+ {&(_ZTV7ee11461[11]), 11,13},
+ {&(_tg__ZTV6dd1461__7ee11461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee11461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11461[];
+extern VTBL_ENTRY _ZTV7ee11461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11461[];
+Class_Descriptor cd_ee11461 = { "ee11461", // class name
+ bases_ee11461, 4,
+ &(vtc_ee11461[0]), // expected_vtbl_contents
+ &(vtt_ee11461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11461),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11461),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 ee21461 : dd1461 {
+ int e;
+ virtual void foo(); // _ZN7ee214613fooEv
+ ~ee21461(); // tgen
+ ee21461(); // tgen
+};
+//SIG(1 ee21461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21461 ::foo(){vfunc_called(this, "_ZN7ee214613fooEv");}
+ee21461 ::~ee21461(){ note_dtor("ee21461", this);} // tgen
+ee21461 ::ee21461(){ note_ctor("ee21461", this);} // tgen
+
+static void Test_ee21461()
+{
+ extern Class_Descriptor cd_ee21461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21461, buf);
+ ee21461 *dp, &lv = *(dp=new (buf) ee21461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee21461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee21461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(16,12), "ee21461");
+ check_base_class_offset(lv, (dd1461*), 0, "ee21461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21461.e");
+ test_class_info(&lv, &cd_ee21461);
+ dp->~ee21461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21461(Test_ee21461, "ee21461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21461C1Ev();
+extern void _ZN7ee21461D1Ev();
+Name_Map name_map_ee21461[] = {
+ NSPAIR(_ZN7ee21461C1Ev),
+ NSPAIR(_ZN7ee21461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee21461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21461[];
+extern void _ZN7ee214613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214613fooEv,_ZTv0_n12_N7ee214613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214613fooEv,_ZThn12_N7ee214613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee21461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21461[0]),
+ (VTBL_ENTRY)&_ZN7ee214613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214613fooEv,_ZTv0_n12_N7ee214613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee21461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee21461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee21461[] = {
+ {&(_ZTV7ee21461[3]), 3,10},
+ {&(_tg__ZTV6dd1461__7ee21461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee21461[4]), 4,6},
+ {&(_ZTV7ee21461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21461[];
+extern VTBL_ENTRY _ZTV7ee21461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21461[];
+static VTBL_ENTRY alt_thunk_names698[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214613fooEv,_ZTv0_n12_N7ee214613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214613fooEv,_ZThn12_N7ee214613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21461 = { "ee21461", // class name
+ bases_ee21461, 4,
+ &(vtc_ee21461[0]), // expected_vtbl_contents
+ &(vtt_ee21461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21461),4, //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 ee31461 : virtual dd1461 {
+ int e;
+ virtual void foo(); // _ZN7ee314613fooEv
+ ~ee31461(); // tgen
+ ee31461(); // tgen
+};
+//SIG(1 ee31461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31461 ::foo(){vfunc_called(this, "_ZN7ee314613fooEv");}
+ee31461 ::~ee31461(){ note_dtor("ee31461", this);} // tgen
+ee31461 ::ee31461(){ note_ctor("ee31461", this);} // tgen
+
+static void Test_ee31461()
+{
+ extern Class_Descriptor cd_ee31461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31461, buf);
+ ee31461 *dp, &lv = *(dp=new (buf) ee31461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee31461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee31461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(32,16), "ee31461");
+ check_base_class_offset(lv, (dd1461*), ABISELECT(16,8), "ee31461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31461.e");
+ test_class_info(&lv, &cd_ee31461);
+ dp->~ee31461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31461(Test_ee31461, "ee31461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31461C1Ev();
+extern void _ZN7ee31461D1Ev();
+Name_Map name_map_ee31461[] = {
+ NSPAIR(_ZN7ee31461C1Ev),
+ NSPAIR(_ZN7ee31461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee31461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 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 _ZTI7ee31461[];
+extern void _ZN7ee314613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314613fooEv,_ZTv0_n12_N7ee314613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314613fooEv,_ZThn16_N7ee314613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee31461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31461[0]),
+ (VTBL_ENTRY)&_ZN7ee314613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31461[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314613fooEv,_ZTv0_n12_N7ee314613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee31461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee31461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee31461[] = {
+ {&(_ZTV7ee31461[4]), 4,14},
+ {&(_ZTV7ee31461[8]), 8,14},
+ {&(_ZTV7ee31461[12]), 12,14},
+ {&(_tg__ZTV6dd1461__7ee31461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee31461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31461[];
+extern VTBL_ENTRY _ZTV7ee31461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31461[];
+static VTBL_ENTRY alt_thunk_names699[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314613fooEv,_ZTv0_n12_N7ee314613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314613fooEv,_ZThn16_N7ee314613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31461 = { "ee31461", // class name
+ bases_ee31461, 4,
+ &(vtc_ee31461[0]), // expected_vtbl_contents
+ &(vtt_ee31461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31461),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31461),5, //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 ee41461 : dd1461 {
+ int e;
+ virtual void bar(); // _ZN7ee414613barEv
+ ~ee41461(); // tgen
+ ee41461(); // tgen
+};
+//SIG(1 ee41461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41461 ::bar(){vfunc_called(this, "_ZN7ee414613barEv");}
+ee41461 ::~ee41461(){ note_dtor("ee41461", this);} // tgen
+ee41461 ::ee41461(){ note_ctor("ee41461", this);} // tgen
+
+static void Test_ee41461()
+{
+ extern Class_Descriptor cd_ee41461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41461, buf);
+ ee41461 *dp, &lv = *(dp=new (buf) ee41461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee41461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee41461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(16,12), "ee41461");
+ check_base_class_offset(lv, (dd1461*), 0, "ee41461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41461.e");
+ test_class_info(&lv, &cd_ee41461);
+ dp->~ee41461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41461(Test_ee41461, "ee41461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41461C1Ev();
+extern void _ZN7ee41461D1Ev();
+Name_Map name_map_ee41461[] = {
+ NSPAIR(_ZN7ee41461C1Ev),
+ NSPAIR(_ZN7ee41461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee41461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41461[];
+extern void _ZN7ee414613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414613barEv,_ZTv0_n16_N7ee414613barEv)();
+extern void ABISELECT(_ZThn16_N7ee414613barEv,_ZThn12_N7ee414613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41461[0]),
+ (VTBL_ENTRY)&_ZN7ee414613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414613barEv,_ZTv0_n16_N7ee414613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee41461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee41461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee41461[] = {
+ {&(_ZTV7ee41461[3]), 3,10},
+ {&(_tg__ZTV6dd1461__7ee41461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee41461[4]), 4,6},
+ {&(_ZTV7ee41461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41461[];
+extern VTBL_ENTRY _ZTV7ee41461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41461[];
+static VTBL_ENTRY alt_thunk_names700[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414613barEv,_ZTv0_n16_N7ee414613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414613barEv,_ZThn12_N7ee414613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41461 = { "ee41461", // class name
+ bases_ee41461, 4,
+ &(vtc_ee41461[0]), // expected_vtbl_contents
+ &(vtt_ee41461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41461),4, //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 ee51461 : virtual dd1461 {
+ int e;
+ virtual void bar(); // _ZN7ee514613barEv
+ ~ee51461(); // tgen
+ ee51461(); // tgen
+};
+//SIG(1 ee51461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51461 ::bar(){vfunc_called(this, "_ZN7ee514613barEv");}
+ee51461 ::~ee51461(){ note_dtor("ee51461", this);} // tgen
+ee51461 ::ee51461(){ note_ctor("ee51461", this);} // tgen
+
+static void Test_ee51461()
+{
+ extern Class_Descriptor cd_ee51461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51461, buf);
+ ee51461 *dp, &lv = *(dp=new (buf) ee51461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee51461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee51461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(32,16), "ee51461");
+ check_base_class_offset(lv, (dd1461*), ABISELECT(16,8), "ee51461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51461.e");
+ test_class_info(&lv, &cd_ee51461);
+ dp->~ee51461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51461(Test_ee51461, "ee51461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51461C1Ev();
+extern void _ZN7ee51461D1Ev();
+Name_Map name_map_ee51461[] = {
+ NSPAIR(_ZN7ee51461C1Ev),
+ NSPAIR(_ZN7ee51461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee51461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 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 _ZTI7ee51461[];
+extern void _ZN7ee514613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514613barEv,_ZTv0_n16_N7ee514613barEv)();
+extern void ABISELECT(_ZThn32_N7ee514613barEv,_ZThn16_N7ee514613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51461[0]),
+ (VTBL_ENTRY)&_ZN7ee514613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51461[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514613barEv,_ZTv0_n16_N7ee514613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee51461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee51461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee51461[] = {
+ {&(_ZTV7ee51461[4]), 4,14},
+ {&(_ZTV7ee51461[8]), 8,14},
+ {&(_ZTV7ee51461[12]), 12,14},
+ {&(_tg__ZTV6dd1461__7ee51461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee51461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51461[];
+extern VTBL_ENTRY _ZTV7ee51461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51461[];
+static VTBL_ENTRY alt_thunk_names701[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514613barEv,_ZTv0_n16_N7ee514613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514613barEv,_ZThn16_N7ee514613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51461 = { "ee51461", // class name
+ bases_ee51461, 4,
+ &(vtc_ee51461[0]), // expected_vtbl_contents
+ &(vtt_ee51461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51461),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51461),5, //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 ee61461 : dd1461 {
+ int e;
+ virtual void foo(); // _ZN7ee614613fooEv
+ virtual void bar(); // _ZN7ee614613barEv
+ ~ee61461(); // tgen
+ ee61461(); // tgen
+};
+//SIG(1 ee61461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61461 ::foo(){vfunc_called(this, "_ZN7ee614613fooEv");}
+void ee61461 ::bar(){vfunc_called(this, "_ZN7ee614613barEv");}
+ee61461 ::~ee61461(){ note_dtor("ee61461", this);} // tgen
+ee61461 ::ee61461(){ note_ctor("ee61461", this);} // tgen
+
+static void Test_ee61461()
+{
+ extern Class_Descriptor cd_ee61461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61461, buf);
+ ee61461 *dp, &lv = *(dp=new (buf) ee61461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee61461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee61461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(16,12), "ee61461");
+ check_base_class_offset(lv, (dd1461*), 0, "ee61461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61461.e");
+ test_class_info(&lv, &cd_ee61461);
+ dp->~ee61461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61461(Test_ee61461, "ee61461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61461C1Ev();
+extern void _ZN7ee61461D1Ev();
+Name_Map name_map_ee61461[] = {
+ NSPAIR(_ZN7ee61461C1Ev),
+ NSPAIR(_ZN7ee61461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee61461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61461[];
+extern void _ZN7ee614613fooEv();
+extern void _ZN7ee614613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614613fooEv,_ZTv0_n12_N7ee614613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614613fooEv,_ZThn12_N7ee614613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614613barEv,_ZTv0_n16_N7ee614613barEv)();
+extern void ABISELECT(_ZThn16_N7ee614613barEv,_ZThn12_N7ee614613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61461[0]),
+ (VTBL_ENTRY)&_ZN7ee614613fooEv,
+ (VTBL_ENTRY)&_ZN7ee614613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614613fooEv,_ZTv0_n12_N7ee614613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614613barEv,_ZTv0_n16_N7ee614613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee61461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee61461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee61461[] = {
+ {&(_ZTV7ee61461[3]), 3,11},
+ {&(_tg__ZTV6dd1461__7ee61461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee61461[4]), 4,6},
+ {&(_ZTV7ee61461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61461[];
+extern VTBL_ENTRY _ZTV7ee61461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61461[];
+static VTBL_ENTRY alt_thunk_names702[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614613barEv,_ZTv0_n16_N7ee614613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614613barEv,_ZThn12_N7ee614613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614613fooEv,_ZTv0_n12_N7ee614613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614613fooEv,_ZThn12_N7ee614613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61461 = { "ee61461", // class name
+ bases_ee61461, 4,
+ &(vtc_ee61461[0]), // expected_vtbl_contents
+ &(vtt_ee61461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61461),4, //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 ee71461 : virtual dd1461 {
+ int e;
+ virtual void foo(); // _ZN7ee714613fooEv
+ virtual void bar(); // _ZN7ee714613barEv
+ ~ee71461(); // tgen
+ ee71461(); // tgen
+};
+//SIG(1 ee71461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71461 ::foo(){vfunc_called(this, "_ZN7ee714613fooEv");}
+void ee71461 ::bar(){vfunc_called(this, "_ZN7ee714613barEv");}
+ee71461 ::~ee71461(){ note_dtor("ee71461", this);} // tgen
+ee71461 ::ee71461(){ note_ctor("ee71461", this);} // tgen
+
+static void Test_ee71461()
+{
+ extern Class_Descriptor cd_ee71461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71461, buf);
+ ee71461 *dp, &lv = *(dp=new (buf) ee71461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee71461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee71461");
+ check_base_class_offset(lv, (cc461*)(dd1461*), ABISELECT(32,16), "ee71461");
+ check_base_class_offset(lv, (dd1461*), ABISELECT(16,8), "ee71461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71461.e");
+ test_class_info(&lv, &cd_ee71461);
+ dp->~ee71461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71461(Test_ee71461, "ee71461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71461C1Ev();
+extern void _ZN7ee71461D1Ev();
+Name_Map name_map_ee71461[] = {
+ NSPAIR(_ZN7ee71461C1Ev),
+ NSPAIR(_ZN7ee71461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd1461;
+extern VTBL_ENTRY _ZTI6dd1461[];
+extern VTBL_ENTRY _ZTV6dd1461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1461[];
+static Base_Class bases_ee71461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd1461, 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 _ZTI7ee71461[];
+extern void _ZN7ee714613fooEv();
+extern void _ZN7ee714613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714613fooEv,_ZTv0_n12_N7ee714613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714613fooEv,_ZThn16_N7ee714613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714613barEv,_ZTv0_n16_N7ee714613barEv)();
+extern void ABISELECT(_ZThn32_N7ee714613barEv,_ZThn16_N7ee714613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71461[0]),
+ (VTBL_ENTRY)&_ZN7ee714613fooEv,
+ (VTBL_ENTRY)&_ZN7ee714613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71461[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714613fooEv,_ZTv0_n12_N7ee714613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714613barEv,_ZTv0_n16_N7ee714613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71461[];
+static VTBL_ENTRY _tg__ZTV6dd1461__7ee71461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+};
+extern void _ZN4bb613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd1461__7ee71461[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee71461[] = {
+ {&(_ZTV7ee71461[4]), 4,15},
+ {&(_ZTV7ee71461[9]), 9,15},
+ {&(_ZTV7ee71461[13]), 13,15},
+ {&(_tg__ZTV6dd1461__7ee71461[3]), 3,3},
+ {&(_tg__ZTV5cc461__6dd1461__7ee71461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71461[];
+extern VTBL_ENTRY _ZTV7ee71461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71461[];
+static VTBL_ENTRY alt_thunk_names703[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714613barEv,_ZTv0_n16_N7ee714613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714613barEv,_ZThn16_N7ee714613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714613fooEv,_ZTv0_n12_N7ee714613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714613fooEv,_ZThn16_N7ee714613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71461 = { "ee71461", // class name
+ bases_ee71461, 4,
+ &(vtc_ee71461[0]), // expected_vtbl_contents
+ &(vtt_ee71461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71461),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71461),5, //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 dd2461 : cc461 {
+ int d;
+ virtual void foo(); // _ZN6dd24613fooEv
+ ~dd2461(); // tgen
+ dd2461(); // tgen
+};
+//SIG(-1 dd2461) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2461 ::foo(){vfunc_called(this, "_ZN6dd24613fooEv");}
+dd2461 ::~dd2461(){ note_dtor("dd2461", this);} // tgen
+dd2461 ::dd2461(){ note_ctor("dd2461", this);} // tgen
+
+static void Test_dd2461()
+{
+ extern Class_Descriptor cd_dd2461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2461, buf);
+ dd2461 *dp, &lv = *(dp=new (buf) dd2461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), 0, "dd2461");
+ check_base_class_offset(lv, (bb61*)(cc461*), 0, "dd2461");
+ check_base_class_offset(lv, (cc461*), 0, "dd2461");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2461.d");
+ test_class_info(&lv, &cd_dd2461);
+ dp->~dd2461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2461(Test_dd2461, "dd2461", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2461C1Ev();
+extern void _ZN6dd2461D1Ev();
+Name_Map name_map_dd2461[] = {
+ NSPAIR(_ZN6dd2461C1Ev),
+ NSPAIR(_ZN6dd2461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd2461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2461[];
+extern void _ZN6dd24613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_dd2461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2461[0]),
+ (VTBL_ENTRY)&_ZN6dd24613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+Class_Descriptor cd_dd2461 = { "dd2461", // class name
+ bases_dd2461, 3,
+ &(vtc_dd2461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2461),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 ee02461 : dd2461 {
+ int e;
+ ~ee02461(); // tgen
+ ee02461(); // tgen
+};
+//SIG(1 ee02461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02461 ::~ee02461(){ note_dtor("ee02461", this);} // tgen
+ee02461 ::ee02461(){ note_ctor("ee02461", this);} // tgen
+
+static void Test_ee02461()
+{
+ extern Class_Descriptor cd_ee02461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02461, buf);
+ ee02461 *dp, &lv = *(dp=new (buf) ee02461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), 0, "ee02461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), 0, "ee02461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), 0, "ee02461");
+ check_base_class_offset(lv, (dd2461*), 0, "ee02461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02461.e");
+ test_class_info(&lv, &cd_ee02461);
+ dp->~ee02461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02461(Test_ee02461, "ee02461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02461C1Ev();
+extern void _ZN7ee02461D1Ev();
+Name_Map name_map_ee02461[] = {
+ NSPAIR(_ZN7ee02461C1Ev),
+ NSPAIR(_ZN7ee02461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee02461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, 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 _ZTI7ee02461[];
+extern void _ZN6dd24613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee02461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02461[0]),
+ (VTBL_ENTRY)&_ZN6dd24613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02461[];
+extern VTBL_ENTRY _ZTV7ee02461[];
+Class_Descriptor cd_ee02461 = { "ee02461", // class name
+ bases_ee02461, 4,
+ &(vtc_ee02461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02461),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 ee12461 : virtual dd2461 {
+ int e;
+ ~ee12461(); // tgen
+ ee12461(); // tgen
+};
+//SIG(1 ee12461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12461 ::~ee12461(){ note_dtor("ee12461", this);} // tgen
+ee12461 ::ee12461(){ note_ctor("ee12461", this);} // tgen
+
+static void Test_ee12461()
+{
+ extern Class_Descriptor cd_ee12461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12461, buf);
+ ee12461 *dp, &lv = *(dp=new (buf) ee12461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee12461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee12461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), ABISELECT(16,8), "ee12461");
+ check_base_class_offset(lv, (dd2461*), ABISELECT(16,8), "ee12461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12461.e");
+ test_class_info(&lv, &cd_ee12461);
+ dp->~ee12461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12461(Test_ee12461, "ee12461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12461C1Ev();
+extern void _ZN7ee12461D1Ev();
+Name_Map name_map_ee12461[] = {
+ NSPAIR(_ZN7ee12461C1Ev),
+ NSPAIR(_ZN7ee12461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee12461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, 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 _ZTI7ee12461[];
+extern void _ZN6dd24613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee12461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12461[0]),
+ (VTBL_ENTRY)&_ZN6dd24613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12461[];
+static VTT_ENTRY vtt_ee12461[] = {
+ {&(_ZTV7ee12461[3]), 3,9},
+ {&(_ZTV7ee12461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12461[];
+extern VTBL_ENTRY _ZTV7ee12461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12461[];
+Class_Descriptor cd_ee12461 = { "ee12461", // class name
+ bases_ee12461, 4,
+ &(vtc_ee12461[0]), // expected_vtbl_contents
+ &(vtt_ee12461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12461),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 ee22461 : dd2461 {
+ int e;
+ virtual void foo(); // _ZN7ee224613fooEv
+ ~ee22461(); // tgen
+ ee22461(); // tgen
+};
+//SIG(1 ee22461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22461 ::foo(){vfunc_called(this, "_ZN7ee224613fooEv");}
+ee22461 ::~ee22461(){ note_dtor("ee22461", this);} // tgen
+ee22461 ::ee22461(){ note_ctor("ee22461", this);} // tgen
+
+static void Test_ee22461()
+{
+ extern Class_Descriptor cd_ee22461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22461, buf);
+ ee22461 *dp, &lv = *(dp=new (buf) ee22461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), 0, "ee22461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), 0, "ee22461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), 0, "ee22461");
+ check_base_class_offset(lv, (dd2461*), 0, "ee22461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22461.e");
+ test_class_info(&lv, &cd_ee22461);
+ dp->~ee22461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22461(Test_ee22461, "ee22461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22461C1Ev();
+extern void _ZN7ee22461D1Ev();
+Name_Map name_map_ee22461[] = {
+ NSPAIR(_ZN7ee22461C1Ev),
+ NSPAIR(_ZN7ee22461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee22461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22461[];
+extern void _ZN7ee224613fooEv();
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee22461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22461[0]),
+ (VTBL_ENTRY)&_ZN7ee224613fooEv,
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22461[];
+extern VTBL_ENTRY _ZTV7ee22461[];
+Class_Descriptor cd_ee22461 = { "ee22461", // class name
+ bases_ee22461, 4,
+ &(vtc_ee22461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22461),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 ee32461 : virtual dd2461 {
+ int e;
+ virtual void foo(); // _ZN7ee324613fooEv
+ ~ee32461(); // tgen
+ ee32461(); // tgen
+};
+//SIG(1 ee32461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32461 ::foo(){vfunc_called(this, "_ZN7ee324613fooEv");}
+ee32461 ::~ee32461(){ note_dtor("ee32461", this);} // tgen
+ee32461 ::ee32461(){ note_ctor("ee32461", this);} // tgen
+
+static void Test_ee32461()
+{
+ extern Class_Descriptor cd_ee32461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32461, buf);
+ ee32461 *dp, &lv = *(dp=new (buf) ee32461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee32461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee32461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), ABISELECT(16,8), "ee32461");
+ check_base_class_offset(lv, (dd2461*), ABISELECT(16,8), "ee32461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32461.e");
+ test_class_info(&lv, &cd_ee32461);
+ dp->~ee32461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32461(Test_ee32461, "ee32461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32461C1Ev();
+extern void _ZN7ee32461D1Ev();
+Name_Map name_map_ee32461[] = {
+ NSPAIR(_ZN7ee32461C1Ev),
+ NSPAIR(_ZN7ee32461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee32461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, ABISELECT(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 _ZTI7ee32461[];
+extern void _ZN7ee324613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324613fooEv,_ZTv0_n12_N7ee324613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324613fooEv,_ZThn8_N7ee324613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee32461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32461[0]),
+ (VTBL_ENTRY)&_ZN7ee324613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324613fooEv,_ZTv0_n12_N7ee324613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32461[];
+static VTT_ENTRY vtt_ee32461[] = {
+ {&(_ZTV7ee32461[3]), 3,10},
+ {&(_ZTV7ee32461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32461[];
+extern VTBL_ENTRY _ZTV7ee32461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32461[];
+static VTBL_ENTRY alt_thunk_names704[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324613fooEv,_ZTv0_n12_N7ee324613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324613fooEv,_ZThn8_N7ee324613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32461 = { "ee32461", // class name
+ bases_ee32461, 4,
+ &(vtc_ee32461[0]), // expected_vtbl_contents
+ &(vtt_ee32461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32461),2, //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 ee42461 : dd2461 {
+ int e;
+ virtual void bar(); // _ZN7ee424613barEv
+ ~ee42461(); // tgen
+ ee42461(); // tgen
+};
+//SIG(1 ee42461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42461 ::bar(){vfunc_called(this, "_ZN7ee424613barEv");}
+ee42461 ::~ee42461(){ note_dtor("ee42461", this);} // tgen
+ee42461 ::ee42461(){ note_ctor("ee42461", this);} // tgen
+
+static void Test_ee42461()
+{
+ extern Class_Descriptor cd_ee42461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42461, buf);
+ ee42461 *dp, &lv = *(dp=new (buf) ee42461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), 0, "ee42461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), 0, "ee42461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), 0, "ee42461");
+ check_base_class_offset(lv, (dd2461*), 0, "ee42461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42461.e");
+ test_class_info(&lv, &cd_ee42461);
+ dp->~ee42461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42461(Test_ee42461, "ee42461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42461C1Ev();
+extern void _ZN7ee42461D1Ev();
+Name_Map name_map_ee42461[] = {
+ NSPAIR(_ZN7ee42461C1Ev),
+ NSPAIR(_ZN7ee42461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee42461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42461[];
+extern void _ZN6dd24613fooEv();
+extern void _ZN7ee424613barEv();
+static VTBL_ENTRY vtc_ee42461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42461[0]),
+ (VTBL_ENTRY)&_ZN6dd24613fooEv,
+ (VTBL_ENTRY)&_ZN7ee424613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42461[];
+extern VTBL_ENTRY _ZTV7ee42461[];
+Class_Descriptor cd_ee42461 = { "ee42461", // class name
+ bases_ee42461, 4,
+ &(vtc_ee42461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42461),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 ee52461 : virtual dd2461 {
+ int e;
+ virtual void bar(); // _ZN7ee524613barEv
+ ~ee52461(); // tgen
+ ee52461(); // tgen
+};
+//SIG(1 ee52461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52461 ::bar(){vfunc_called(this, "_ZN7ee524613barEv");}
+ee52461 ::~ee52461(){ note_dtor("ee52461", this);} // tgen
+ee52461 ::ee52461(){ note_ctor("ee52461", this);} // tgen
+
+static void Test_ee52461()
+{
+ extern Class_Descriptor cd_ee52461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52461, buf);
+ ee52461 *dp, &lv = *(dp=new (buf) ee52461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee52461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee52461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), ABISELECT(16,8), "ee52461");
+ check_base_class_offset(lv, (dd2461*), ABISELECT(16,8), "ee52461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52461.e");
+ test_class_info(&lv, &cd_ee52461);
+ dp->~ee52461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52461(Test_ee52461, "ee52461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52461C1Ev();
+extern void _ZN7ee52461D1Ev();
+Name_Map name_map_ee52461[] = {
+ NSPAIR(_ZN7ee52461C1Ev),
+ NSPAIR(_ZN7ee52461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee52461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, ABISELECT(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 _ZTI7ee52461[];
+extern void _ZN7ee524613barEv();
+extern void _ZN6dd24613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524613barEv,_ZTv0_n16_N7ee524613barEv)();
+extern void ABISELECT(_ZThn16_N7ee524613barEv,_ZThn8_N7ee524613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52461[0]),
+ (VTBL_ENTRY)&_ZN7ee524613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52461[0]),
+ (VTBL_ENTRY)&_ZN6dd24613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524613barEv,_ZTv0_n16_N7ee524613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52461[];
+static VTT_ENTRY vtt_ee52461[] = {
+ {&(_ZTV7ee52461[3]), 3,10},
+ {&(_ZTV7ee52461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52461[];
+extern VTBL_ENTRY _ZTV7ee52461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52461[];
+static VTBL_ENTRY alt_thunk_names705[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524613barEv,_ZTv0_n16_N7ee524613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524613barEv,_ZThn8_N7ee524613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52461 = { "ee52461", // class name
+ bases_ee52461, 4,
+ &(vtc_ee52461[0]), // expected_vtbl_contents
+ &(vtt_ee52461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52461),2, //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 ee62461 : dd2461 {
+ int e;
+ virtual void foo(); // _ZN7ee624613fooEv
+ virtual void bar(); // _ZN7ee624613barEv
+ ~ee62461(); // tgen
+ ee62461(); // tgen
+};
+//SIG(1 ee62461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62461 ::foo(){vfunc_called(this, "_ZN7ee624613fooEv");}
+void ee62461 ::bar(){vfunc_called(this, "_ZN7ee624613barEv");}
+ee62461 ::~ee62461(){ note_dtor("ee62461", this);} // tgen
+ee62461 ::ee62461(){ note_ctor("ee62461", this);} // tgen
+
+static void Test_ee62461()
+{
+ extern Class_Descriptor cd_ee62461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62461, buf);
+ ee62461 *dp, &lv = *(dp=new (buf) ee62461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), 0, "ee62461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), 0, "ee62461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), 0, "ee62461");
+ check_base_class_offset(lv, (dd2461*), 0, "ee62461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62461.e");
+ test_class_info(&lv, &cd_ee62461);
+ dp->~ee62461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62461(Test_ee62461, "ee62461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62461C1Ev();
+extern void _ZN7ee62461D1Ev();
+Name_Map name_map_ee62461[] = {
+ NSPAIR(_ZN7ee62461C1Ev),
+ NSPAIR(_ZN7ee62461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee62461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62461[];
+extern void _ZN7ee624613fooEv();
+extern void _ZN7ee624613barEv();
+static VTBL_ENTRY vtc_ee62461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62461[0]),
+ (VTBL_ENTRY)&_ZN7ee624613fooEv,
+ (VTBL_ENTRY)&_ZN7ee624613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62461[];
+extern VTBL_ENTRY _ZTV7ee62461[];
+Class_Descriptor cd_ee62461 = { "ee62461", // class name
+ bases_ee62461, 4,
+ &(vtc_ee62461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62461),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 ee72461 : virtual dd2461 {
+ int e;
+ virtual void foo(); // _ZN7ee724613fooEv
+ virtual void bar(); // _ZN7ee724613barEv
+ ~ee72461(); // tgen
+ ee72461(); // tgen
+};
+//SIG(1 ee72461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72461 ::foo(){vfunc_called(this, "_ZN7ee724613fooEv");}
+void ee72461 ::bar(){vfunc_called(this, "_ZN7ee724613barEv");}
+ee72461 ::~ee72461(){ note_dtor("ee72461", this);} // tgen
+ee72461 ::ee72461(){ note_ctor("ee72461", this);} // tgen
+
+static void Test_ee72461()
+{
+ extern Class_Descriptor cd_ee72461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72461, buf);
+ ee72461 *dp, &lv = *(dp=new (buf) ee72461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee72461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd2461*), ABISELECT(16,8), "ee72461");
+ check_base_class_offset(lv, (cc461*)(dd2461*), ABISELECT(16,8), "ee72461");
+ check_base_class_offset(lv, (dd2461*), ABISELECT(16,8), "ee72461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72461.e");
+ test_class_info(&lv, &cd_ee72461);
+ dp->~ee72461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72461(Test_ee72461, "ee72461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72461C1Ev();
+extern void _ZN7ee72461D1Ev();
+Name_Map name_map_ee72461[] = {
+ NSPAIR(_ZN7ee72461C1Ev),
+ NSPAIR(_ZN7ee72461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd2461;
+extern VTBL_ENTRY _ZTI6dd2461[];
+extern VTBL_ENTRY _ZTV6dd2461[];
+static Base_Class bases_ee72461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2461, ABISELECT(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 _ZTI7ee72461[];
+extern void _ZN7ee724613fooEv();
+extern void _ZN7ee724613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724613fooEv,_ZTv0_n12_N7ee724613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724613fooEv,_ZThn8_N7ee724613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724613barEv,_ZTv0_n16_N7ee724613barEv)();
+extern void ABISELECT(_ZThn16_N7ee724613barEv,_ZThn8_N7ee724613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72461[0]),
+ (VTBL_ENTRY)&_ZN7ee724613fooEv,
+ (VTBL_ENTRY)&_ZN7ee724613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724613fooEv,_ZTv0_n12_N7ee724613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724613barEv,_ZTv0_n16_N7ee724613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72461[];
+static VTT_ENTRY vtt_ee72461[] = {
+ {&(_ZTV7ee72461[3]), 3,11},
+ {&(_ZTV7ee72461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72461[];
+extern VTBL_ENTRY _ZTV7ee72461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72461[];
+static VTBL_ENTRY alt_thunk_names706[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724613barEv,_ZTv0_n16_N7ee724613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724613barEv,_ZThn8_N7ee724613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724613fooEv,_ZTv0_n12_N7ee724613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724613fooEv,_ZThn8_N7ee724613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72461 = { "ee72461", // class name
+ bases_ee72461, 4,
+ &(vtc_ee72461[0]), // expected_vtbl_contents
+ &(vtt_ee72461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72461),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names706,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3461 : virtual cc461 {
+ int d;
+ virtual void foo(); // _ZN6dd34613fooEv
+ ~dd3461(); // tgen
+ dd3461(); // tgen
+};
+//SIG(-1 dd3461) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3461 ::foo(){vfunc_called(this, "_ZN6dd34613fooEv");}
+dd3461 ::~dd3461(){ note_dtor("dd3461", this);} // tgen
+dd3461 ::dd3461(){ note_ctor("dd3461", this);} // tgen
+
+static void Test_dd3461()
+{
+ extern Class_Descriptor cd_dd3461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3461, buf);
+ dd3461 *dp, &lv = *(dp=new (buf) dd3461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,8), "dd3461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,8), "dd3461");
+ check_base_class_offset(lv, (cc461*), ABISELECT(16,8), "dd3461");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3461.d");
+ test_class_info(&lv, &cd_dd3461);
+ dp->~dd3461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3461(Test_dd3461, "dd3461", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3461C1Ev();
+extern void _ZN6dd3461D1Ev();
+Name_Map name_map_dd3461[] = {
+ NSPAIR(_ZN6dd3461C1Ev),
+ NSPAIR(_ZN6dd3461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd3461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(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 _ZTI6dd3461[];
+extern void _ZN6dd34613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_dd3461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3461[];
+static VTT_ENTRY vtt_dd3461[] = {
+ {&(_ZTV6dd3461[3]), 3,10},
+ {&(_ZTV6dd3461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static VTBL_ENTRY alt_thunk_names707[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3461 = { "dd3461", // class name
+ bases_dd3461, 3,
+ &(vtc_dd3461[0]), // expected_vtbl_contents
+ &(vtt_dd3461[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3461),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names707,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03461 : dd3461 {
+ int e;
+ ~ee03461(); // tgen
+ ee03461(); // tgen
+};
+//SIG(1 ee03461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03461 ::~ee03461(){ note_dtor("ee03461", this);} // tgen
+ee03461 ::ee03461(){ note_ctor("ee03461", this);} // tgen
+
+static void Test_ee03461()
+{
+ extern Class_Descriptor cd_ee03461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03461, buf);
+ ee03461 *dp, &lv = *(dp=new (buf) ee03461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee03461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee03461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(16,12), "ee03461");
+ check_base_class_offset(lv, (dd3461*), 0, "ee03461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03461.e");
+ test_class_info(&lv, &cd_ee03461);
+ dp->~ee03461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03461(Test_ee03461, "ee03461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03461C1Ev();
+extern void _ZN7ee03461D1Ev();
+Name_Map name_map_ee03461[] = {
+ NSPAIR(_ZN7ee03461C1Ev),
+ NSPAIR(_ZN7ee03461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee03461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03461[];
+extern void _ZN6dd34613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee03461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee03461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee03461[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee03461[] = {
+ {&(_ZTV7ee03461[3]), 3,10},
+ {&(_tg__ZTV6dd3461__7ee03461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee03461[4]), 4,6},
+ {&(_ZTV7ee03461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03461[];
+extern VTBL_ENTRY _ZTV7ee03461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03461[];
+static VTBL_ENTRY alt_thunk_names708[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03461 = { "ee03461", // class name
+ bases_ee03461, 4,
+ &(vtc_ee03461[0]), // expected_vtbl_contents
+ &(vtt_ee03461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03461),4, //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 ee13461 : virtual dd3461 {
+ int e;
+ ~ee13461(); // tgen
+ ee13461(); // tgen
+};
+//SIG(1 ee13461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13461 ::~ee13461(){ note_dtor("ee13461", this);} // tgen
+ee13461 ::ee13461(){ note_ctor("ee13461", this);} // tgen
+
+static void Test_ee13461()
+{
+ extern Class_Descriptor cd_ee13461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13461, buf);
+ ee13461 *dp, &lv = *(dp=new (buf) ee13461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee13461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee13461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(32,16), "ee13461");
+ check_base_class_offset(lv, (dd3461*), ABISELECT(16,8), "ee13461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13461.e");
+ test_class_info(&lv, &cd_ee13461);
+ dp->~ee13461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13461(Test_ee13461, "ee13461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13461C1Ev();
+extern void _ZN7ee13461D1Ev();
+Name_Map name_map_ee13461[] = {
+ NSPAIR(_ZN7ee13461C1Ev),
+ NSPAIR(_ZN7ee13461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee13461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, ABISELECT(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 _ZTI7ee13461[];
+extern void _ZN6dd34613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee13461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13461[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee13461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee13461[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee13461[] = {
+ {&(_ZTV7ee13461[4]), 4,15},
+ {&(_ZTV7ee13461[8]), 8,15},
+ {&(_ZTV7ee13461[13]), 13,15},
+ {&(_tg__ZTV6dd3461__7ee13461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee13461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13461[];
+extern VTBL_ENTRY _ZTV7ee13461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13461[];
+static VTBL_ENTRY alt_thunk_names709[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13461 = { "ee13461", // class name
+ bases_ee13461, 4,
+ &(vtc_ee13461[0]), // expected_vtbl_contents
+ &(vtt_ee13461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13461),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13461),5, //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 ee23461 : dd3461 {
+ int e;
+ virtual void foo(); // _ZN7ee234613fooEv
+ ~ee23461(); // tgen
+ ee23461(); // tgen
+};
+//SIG(1 ee23461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23461 ::foo(){vfunc_called(this, "_ZN7ee234613fooEv");}
+ee23461 ::~ee23461(){ note_dtor("ee23461", this);} // tgen
+ee23461 ::ee23461(){ note_ctor("ee23461", this);} // tgen
+
+static void Test_ee23461()
+{
+ extern Class_Descriptor cd_ee23461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23461, buf);
+ ee23461 *dp, &lv = *(dp=new (buf) ee23461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee23461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee23461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(16,12), "ee23461");
+ check_base_class_offset(lv, (dd3461*), 0, "ee23461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23461.e");
+ test_class_info(&lv, &cd_ee23461);
+ dp->~ee23461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23461(Test_ee23461, "ee23461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23461C1Ev();
+extern void _ZN7ee23461D1Ev();
+Name_Map name_map_ee23461[] = {
+ NSPAIR(_ZN7ee23461C1Ev),
+ NSPAIR(_ZN7ee23461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee23461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23461[];
+extern void _ZN7ee234613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234613fooEv,_ZTv0_n12_N7ee234613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234613fooEv,_ZThn12_N7ee234613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee23461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23461[0]),
+ (VTBL_ENTRY)&_ZN7ee234613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234613fooEv,_ZTv0_n12_N7ee234613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee23461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee23461[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee23461[] = {
+ {&(_ZTV7ee23461[3]), 3,10},
+ {&(_tg__ZTV6dd3461__7ee23461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee23461[4]), 4,6},
+ {&(_ZTV7ee23461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23461[];
+extern VTBL_ENTRY _ZTV7ee23461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23461[];
+static VTBL_ENTRY alt_thunk_names710[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234613fooEv,_ZTv0_n12_N7ee234613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234613fooEv,_ZThn12_N7ee234613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23461 = { "ee23461", // class name
+ bases_ee23461, 4,
+ &(vtc_ee23461[0]), // expected_vtbl_contents
+ &(vtt_ee23461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23461),4, //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 ee33461 : virtual dd3461 {
+ int e;
+ virtual void foo(); // _ZN7ee334613fooEv
+ ~ee33461(); // tgen
+ ee33461(); // tgen
+};
+//SIG(1 ee33461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33461 ::foo(){vfunc_called(this, "_ZN7ee334613fooEv");}
+ee33461 ::~ee33461(){ note_dtor("ee33461", this);} // tgen
+ee33461 ::ee33461(){ note_ctor("ee33461", this);} // tgen
+
+static void Test_ee33461()
+{
+ extern Class_Descriptor cd_ee33461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33461, buf);
+ ee33461 *dp, &lv = *(dp=new (buf) ee33461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee33461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee33461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(32,16), "ee33461");
+ check_base_class_offset(lv, (dd3461*), ABISELECT(16,8), "ee33461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33461.e");
+ test_class_info(&lv, &cd_ee33461);
+ dp->~ee33461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33461(Test_ee33461, "ee33461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33461C1Ev();
+extern void _ZN7ee33461D1Ev();
+Name_Map name_map_ee33461[] = {
+ NSPAIR(_ZN7ee33461C1Ev),
+ NSPAIR(_ZN7ee33461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee33461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, ABISELECT(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 _ZTI7ee33461[];
+extern void _ZN7ee334613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334613fooEv,_ZTv0_n16_N7ee334613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334613fooEv,_ZThn8_N7ee334613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334613fooEv,_ZTv0_n12_N7ee334613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334613fooEv,_ZThn16_N7ee334613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY vtc_ee33461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33461[0]),
+ (VTBL_ENTRY)&_ZN7ee334613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334613fooEv,_ZTv0_n16_N7ee334613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334613fooEv,_ZTv0_n12_N7ee334613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee33461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee33461[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee33461[] = {
+ {&(_ZTV7ee33461[4]), 4,16},
+ {&(_ZTV7ee33461[9]), 9,16},
+ {&(_ZTV7ee33461[14]), 14,16},
+ {&(_tg__ZTV6dd3461__7ee33461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee33461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33461[];
+extern VTBL_ENTRY _ZTV7ee33461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33461[];
+static VTBL_ENTRY alt_thunk_names711[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334613fooEv,_ZTv0_n12_N7ee334613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334613fooEv,_ZThn16_N7ee334613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334613fooEv,_ZTv0_n16_N7ee334613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334613fooEv,_ZThn8_N7ee334613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33461 = { "ee33461", // class name
+ bases_ee33461, 4,
+ &(vtc_ee33461[0]), // expected_vtbl_contents
+ &(vtt_ee33461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33461),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33461),5, //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 ee43461 : dd3461 {
+ int e;
+ virtual void bar(); // _ZN7ee434613barEv
+ ~ee43461(); // tgen
+ ee43461(); // tgen
+};
+//SIG(1 ee43461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43461 ::bar(){vfunc_called(this, "_ZN7ee434613barEv");}
+ee43461 ::~ee43461(){ note_dtor("ee43461", this);} // tgen
+ee43461 ::ee43461(){ note_ctor("ee43461", this);} // tgen
+
+static void Test_ee43461()
+{
+ extern Class_Descriptor cd_ee43461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43461, buf);
+ ee43461 *dp, &lv = *(dp=new (buf) ee43461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee43461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee43461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(16,12), "ee43461");
+ check_base_class_offset(lv, (dd3461*), 0, "ee43461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43461.e");
+ test_class_info(&lv, &cd_ee43461);
+ dp->~ee43461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43461(Test_ee43461, "ee43461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43461C1Ev();
+extern void _ZN7ee43461D1Ev();
+Name_Map name_map_ee43461[] = {
+ NSPAIR(_ZN7ee43461C1Ev),
+ NSPAIR(_ZN7ee43461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee43461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43461[];
+extern void _ZN6dd34613fooEv();
+extern void _ZN7ee434613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434613barEv,_ZTv0_n16_N7ee434613barEv)();
+extern void ABISELECT(_ZThn16_N7ee434613barEv,_ZThn12_N7ee434613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+ (VTBL_ENTRY)&_ZN7ee434613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434613barEv,_ZTv0_n16_N7ee434613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee43461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee43461[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee43461[] = {
+ {&(_ZTV7ee43461[3]), 3,11},
+ {&(_tg__ZTV6dd3461__7ee43461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee43461[4]), 4,6},
+ {&(_ZTV7ee43461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43461[];
+extern VTBL_ENTRY _ZTV7ee43461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43461[];
+static VTBL_ENTRY alt_thunk_names712[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434613barEv,_ZTv0_n16_N7ee434613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434613barEv,_ZThn12_N7ee434613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43461 = { "ee43461", // class name
+ bases_ee43461, 4,
+ &(vtc_ee43461[0]), // expected_vtbl_contents
+ &(vtt_ee43461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43461),4, //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 ee53461 : virtual dd3461 {
+ int e;
+ virtual void bar(); // _ZN7ee534613barEv
+ ~ee53461(); // tgen
+ ee53461(); // tgen
+};
+//SIG(1 ee53461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53461 ::bar(){vfunc_called(this, "_ZN7ee534613barEv");}
+ee53461 ::~ee53461(){ note_dtor("ee53461", this);} // tgen
+ee53461 ::ee53461(){ note_ctor("ee53461", this);} // tgen
+
+static void Test_ee53461()
+{
+ extern Class_Descriptor cd_ee53461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53461, buf);
+ ee53461 *dp, &lv = *(dp=new (buf) ee53461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee53461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee53461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(32,16), "ee53461");
+ check_base_class_offset(lv, (dd3461*), ABISELECT(16,8), "ee53461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53461.e");
+ test_class_info(&lv, &cd_ee53461);
+ dp->~ee53461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53461(Test_ee53461, "ee53461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53461C1Ev();
+extern void _ZN7ee53461D1Ev();
+Name_Map name_map_ee53461[] = {
+ NSPAIR(_ZN7ee53461C1Ev),
+ NSPAIR(_ZN7ee53461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee53461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, ABISELECT(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 _ZTI7ee53461[];
+extern void _ZN7ee534613barEv();
+extern void _ZN6dd34613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534613barEv,_ZTv0_n16_N7ee534613barEv)();
+extern void ABISELECT(_ZThn32_N7ee534613barEv,_ZThn16_N7ee534613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53461[0]),
+ (VTBL_ENTRY)&_ZN7ee534613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534613barEv,_ZTv0_n16_N7ee534613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee53461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee53461[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee53461[] = {
+ {&(_ZTV7ee53461[4]), 4,16},
+ {&(_ZTV7ee53461[9]), 9,16},
+ {&(_ZTV7ee53461[14]), 14,16},
+ {&(_tg__ZTV6dd3461__7ee53461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee53461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53461[];
+extern VTBL_ENTRY _ZTV7ee53461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53461[];
+static VTBL_ENTRY alt_thunk_names713[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534613barEv,_ZTv0_n16_N7ee534613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534613barEv,_ZThn16_N7ee534613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53461 = { "ee53461", // class name
+ bases_ee53461, 4,
+ &(vtc_ee53461[0]), // expected_vtbl_contents
+ &(vtt_ee53461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53461),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53461),5, //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 ee63461 : dd3461 {
+ int e;
+ virtual void foo(); // _ZN7ee634613fooEv
+ virtual void bar(); // _ZN7ee634613barEv
+ ~ee63461(); // tgen
+ ee63461(); // tgen
+};
+//SIG(1 ee63461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63461 ::foo(){vfunc_called(this, "_ZN7ee634613fooEv");}
+void ee63461 ::bar(){vfunc_called(this, "_ZN7ee634613barEv");}
+ee63461 ::~ee63461(){ note_dtor("ee63461", this);} // tgen
+ee63461 ::ee63461(){ note_ctor("ee63461", this);} // tgen
+
+static void Test_ee63461()
+{
+ extern Class_Descriptor cd_ee63461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63461, buf);
+ ee63461 *dp, &lv = *(dp=new (buf) ee63461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee63461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee63461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(16,12), "ee63461");
+ check_base_class_offset(lv, (dd3461*), 0, "ee63461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63461.e");
+ test_class_info(&lv, &cd_ee63461);
+ dp->~ee63461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63461(Test_ee63461, "ee63461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63461C1Ev();
+extern void _ZN7ee63461D1Ev();
+Name_Map name_map_ee63461[] = {
+ NSPAIR(_ZN7ee63461C1Ev),
+ NSPAIR(_ZN7ee63461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee63461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63461[];
+extern void _ZN7ee634613fooEv();
+extern void _ZN7ee634613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634613fooEv,_ZTv0_n12_N7ee634613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634613fooEv,_ZThn12_N7ee634613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634613barEv,_ZTv0_n16_N7ee634613barEv)();
+extern void ABISELECT(_ZThn16_N7ee634613barEv,_ZThn12_N7ee634613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63461[0]),
+ (VTBL_ENTRY)&_ZN7ee634613fooEv,
+ (VTBL_ENTRY)&_ZN7ee634613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634613fooEv,_ZTv0_n12_N7ee634613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634613barEv,_ZTv0_n16_N7ee634613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee63461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee63461[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee63461[] = {
+ {&(_ZTV7ee63461[3]), 3,11},
+ {&(_tg__ZTV6dd3461__7ee63461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee63461[4]), 4,6},
+ {&(_ZTV7ee63461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63461[];
+extern VTBL_ENTRY _ZTV7ee63461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63461[];
+static VTBL_ENTRY alt_thunk_names714[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn12_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634613barEv,_ZTv0_n16_N7ee634613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634613barEv,_ZThn12_N7ee634613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634613fooEv,_ZTv0_n12_N7ee634613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634613fooEv,_ZThn12_N7ee634613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63461 = { "ee63461", // class name
+ bases_ee63461, 4,
+ &(vtc_ee63461[0]), // expected_vtbl_contents
+ &(vtt_ee63461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63461),4, //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 ee73461 : virtual dd3461 {
+ int e;
+ virtual void foo(); // _ZN7ee734613fooEv
+ virtual void bar(); // _ZN7ee734613barEv
+ ~ee73461(); // tgen
+ ee73461(); // tgen
+};
+//SIG(1 ee73461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73461 ::foo(){vfunc_called(this, "_ZN7ee734613fooEv");}
+void ee73461 ::bar(){vfunc_called(this, "_ZN7ee734613barEv");}
+ee73461 ::~ee73461(){ note_dtor("ee73461", this);} // tgen
+ee73461 ::ee73461(){ note_ctor("ee73461", this);} // tgen
+
+static void Test_ee73461()
+{
+ extern Class_Descriptor cd_ee73461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73461, buf);
+ ee73461 *dp, &lv = *(dp=new (buf) ee73461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee73461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee73461");
+ check_base_class_offset(lv, (cc461*)(dd3461*), ABISELECT(32,16), "ee73461");
+ check_base_class_offset(lv, (dd3461*), ABISELECT(16,8), "ee73461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73461.e");
+ test_class_info(&lv, &cd_ee73461);
+ dp->~ee73461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73461(Test_ee73461, "ee73461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73461C1Ev();
+extern void _ZN7ee73461D1Ev();
+Name_Map name_map_ee73461[] = {
+ NSPAIR(_ZN7ee73461C1Ev),
+ NSPAIR(_ZN7ee73461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd3461;
+extern VTBL_ENTRY _ZTI6dd3461[];
+extern VTBL_ENTRY _ZTV6dd3461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3461[];
+static Base_Class bases_ee73461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd3461, 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 _ZTI7ee73461[];
+extern void _ZN7ee734613fooEv();
+extern void _ZN7ee734613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734613fooEv,_ZTv0_n16_N7ee734613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734613fooEv,_ZThn8_N7ee734613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734613fooEv,_ZTv0_n12_N7ee734613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734613fooEv,_ZThn16_N7ee734613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734613barEv,_ZTv0_n16_N7ee734613barEv)();
+extern void ABISELECT(_ZThn32_N7ee734613barEv,_ZThn16_N7ee734613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73461[0]),
+ (VTBL_ENTRY)&_ZN7ee734613fooEv,
+ (VTBL_ENTRY)&_ZN7ee734613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734613fooEv,_ZTv0_n16_N7ee734613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734613fooEv,_ZTv0_n12_N7ee734613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734613barEv,_ZTv0_n16_N7ee734613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73461[];
+extern void _ZN6dd34613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3461__7ee73461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&_ZN6dd34613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv)() __attribute__((weak));
+extern void _ZN5cc4613barEv();
+static VTBL_ENTRY _tg__ZTV5cc461__6dd3461__7ee73461[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv),
+ (VTBL_ENTRY)&_ZN5cc4613barEv,
+};
+static VTT_ENTRY vtt_ee73461[] = {
+ {&(_ZTV7ee73461[4]), 4,17},
+ {&(_ZTV7ee73461[10]), 10,17},
+ {&(_ZTV7ee73461[15]), 15,17},
+ {&(_tg__ZTV6dd3461__7ee73461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd3461__7ee73461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73461[];
+extern VTBL_ENTRY _ZTV7ee73461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73461[];
+static VTBL_ENTRY alt_thunk_names715[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34613fooEv,_ZTv0_n12_N6dd34613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34613fooEv,_ZThn8_N6dd34613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734613barEv,_ZTv0_n16_N7ee734613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734613barEv,_ZThn16_N7ee734613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734613fooEv,_ZTv0_n12_N7ee734613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734613fooEv,_ZThn16_N7ee734613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734613fooEv,_ZTv0_n16_N7ee734613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734613fooEv,_ZThn8_N7ee734613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73461 = { "ee73461", // class name
+ bases_ee73461, 4,
+ &(vtc_ee73461[0]), // expected_vtbl_contents
+ &(vtt_ee73461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73461),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73461),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names715,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4461 : cc461 {
+ int d;
+ virtual void bar(); // _ZN6dd44613barEv
+ ~dd4461(); // tgen
+ dd4461(); // tgen
+};
+//SIG(-1 dd4461) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4461 ::bar(){vfunc_called(this, "_ZN6dd44613barEv");}
+dd4461 ::~dd4461(){ note_dtor("dd4461", this);} // tgen
+dd4461 ::dd4461(){ note_ctor("dd4461", this);} // tgen
+
+static void Test_dd4461()
+{
+ extern Class_Descriptor cd_dd4461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4461, buf);
+ dd4461 *dp, &lv = *(dp=new (buf) dd4461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), 0, "dd4461");
+ check_base_class_offset(lv, (bb61*)(cc461*), 0, "dd4461");
+ check_base_class_offset(lv, (cc461*), 0, "dd4461");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4461.d");
+ test_class_info(&lv, &cd_dd4461);
+ dp->~dd4461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4461(Test_dd4461, "dd4461", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4461C1Ev();
+extern void _ZN6dd4461D1Ev();
+Name_Map name_map_dd4461[] = {
+ NSPAIR(_ZN6dd4461C1Ev),
+ NSPAIR(_ZN6dd4461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd4461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd44613barEv();
+static VTBL_ENTRY vtc_dd4461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd44613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+Class_Descriptor cd_dd4461 = { "dd4461", // class name
+ bases_dd4461, 3,
+ &(vtc_dd4461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4461),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 ee04461 : dd4461 {
+ int e;
+ ~ee04461(); // tgen
+ ee04461(); // tgen
+};
+//SIG(1 ee04461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04461 ::~ee04461(){ note_dtor("ee04461", this);} // tgen
+ee04461 ::ee04461(){ note_ctor("ee04461", this);} // tgen
+
+static void Test_ee04461()
+{
+ extern Class_Descriptor cd_ee04461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04461, buf);
+ ee04461 *dp, &lv = *(dp=new (buf) ee04461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), 0, "ee04461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), 0, "ee04461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), 0, "ee04461");
+ check_base_class_offset(lv, (dd4461*), 0, "ee04461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04461.e");
+ test_class_info(&lv, &cd_ee04461);
+ dp->~ee04461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04461(Test_ee04461, "ee04461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04461C1Ev();
+extern void _ZN7ee04461D1Ev();
+Name_Map name_map_ee04461[] = {
+ NSPAIR(_ZN7ee04461C1Ev),
+ NSPAIR(_ZN7ee04461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee04461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, 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 _ZTI7ee04461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd44613barEv();
+static VTBL_ENTRY vtc_ee04461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd44613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04461[];
+extern VTBL_ENTRY _ZTV7ee04461[];
+Class_Descriptor cd_ee04461 = { "ee04461", // class name
+ bases_ee04461, 4,
+ &(vtc_ee04461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04461),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 ee14461 : virtual dd4461 {
+ int e;
+ ~ee14461(); // tgen
+ ee14461(); // tgen
+};
+//SIG(1 ee14461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14461 ::~ee14461(){ note_dtor("ee14461", this);} // tgen
+ee14461 ::ee14461(){ note_ctor("ee14461", this);} // tgen
+
+static void Test_ee14461()
+{
+ extern Class_Descriptor cd_ee14461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14461, buf);
+ ee14461 *dp, &lv = *(dp=new (buf) ee14461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee14461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee14461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), ABISELECT(16,8), "ee14461");
+ check_base_class_offset(lv, (dd4461*), ABISELECT(16,8), "ee14461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14461.e");
+ test_class_info(&lv, &cd_ee14461);
+ dp->~ee14461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14461(Test_ee14461, "ee14461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14461C1Ev();
+extern void _ZN7ee14461D1Ev();
+Name_Map name_map_ee14461[] = {
+ NSPAIR(_ZN7ee14461C1Ev),
+ NSPAIR(_ZN7ee14461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee14461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, 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 _ZTI7ee14461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN6dd44613barEv();
+static VTBL_ENTRY vtc_ee14461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN6dd44613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14461[];
+static VTT_ENTRY vtt_ee14461[] = {
+ {&(_ZTV7ee14461[3]), 3,9},
+ {&(_ZTV7ee14461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14461[];
+extern VTBL_ENTRY _ZTV7ee14461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14461[];
+Class_Descriptor cd_ee14461 = { "ee14461", // class name
+ bases_ee14461, 4,
+ &(vtc_ee14461[0]), // expected_vtbl_contents
+ &(vtt_ee14461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14461),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 ee24461 : dd4461 {
+ int e;
+ virtual void foo(); // _ZN7ee244613fooEv
+ ~ee24461(); // tgen
+ ee24461(); // tgen
+};
+//SIG(1 ee24461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24461 ::foo(){vfunc_called(this, "_ZN7ee244613fooEv");}
+ee24461 ::~ee24461(){ note_dtor("ee24461", this);} // tgen
+ee24461 ::ee24461(){ note_ctor("ee24461", this);} // tgen
+
+static void Test_ee24461()
+{
+ extern Class_Descriptor cd_ee24461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24461, buf);
+ ee24461 *dp, &lv = *(dp=new (buf) ee24461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), 0, "ee24461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), 0, "ee24461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), 0, "ee24461");
+ check_base_class_offset(lv, (dd4461*), 0, "ee24461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24461.e");
+ test_class_info(&lv, &cd_ee24461);
+ dp->~ee24461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24461(Test_ee24461, "ee24461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24461C1Ev();
+extern void _ZN7ee24461D1Ev();
+Name_Map name_map_ee24461[] = {
+ NSPAIR(_ZN7ee24461C1Ev),
+ NSPAIR(_ZN7ee24461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee24461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24461[];
+extern void _ZN7ee244613fooEv();
+extern void _ZN6dd44613barEv();
+static VTBL_ENTRY vtc_ee24461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24461[0]),
+ (VTBL_ENTRY)&_ZN7ee244613fooEv,
+ (VTBL_ENTRY)&_ZN6dd44613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24461[];
+extern VTBL_ENTRY _ZTV7ee24461[];
+Class_Descriptor cd_ee24461 = { "ee24461", // class name
+ bases_ee24461, 4,
+ &(vtc_ee24461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24461),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 ee34461 : virtual dd4461 {
+ int e;
+ virtual void foo(); // _ZN7ee344613fooEv
+ ~ee34461(); // tgen
+ ee34461(); // tgen
+};
+//SIG(1 ee34461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34461 ::foo(){vfunc_called(this, "_ZN7ee344613fooEv");}
+ee34461 ::~ee34461(){ note_dtor("ee34461", this);} // tgen
+ee34461 ::ee34461(){ note_ctor("ee34461", this);} // tgen
+
+static void Test_ee34461()
+{
+ extern Class_Descriptor cd_ee34461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34461, buf);
+ ee34461 *dp, &lv = *(dp=new (buf) ee34461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee34461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee34461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), ABISELECT(16,8), "ee34461");
+ check_base_class_offset(lv, (dd4461*), ABISELECT(16,8), "ee34461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34461.e");
+ test_class_info(&lv, &cd_ee34461);
+ dp->~ee34461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34461(Test_ee34461, "ee34461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34461C1Ev();
+extern void _ZN7ee34461D1Ev();
+Name_Map name_map_ee34461[] = {
+ NSPAIR(_ZN7ee34461C1Ev),
+ NSPAIR(_ZN7ee34461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee34461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, ABISELECT(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 _ZTI7ee34461[];
+extern void _ZN7ee344613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344613fooEv,_ZTv0_n12_N7ee344613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344613fooEv,_ZThn8_N7ee344613fooEv)() __attribute__((weak));
+extern void _ZN6dd44613barEv();
+static VTBL_ENTRY vtc_ee34461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34461[0]),
+ (VTBL_ENTRY)&_ZN7ee344613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344613fooEv,_ZTv0_n12_N7ee344613fooEv),
+ (VTBL_ENTRY)&_ZN6dd44613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34461[];
+static VTT_ENTRY vtt_ee34461[] = {
+ {&(_ZTV7ee34461[3]), 3,10},
+ {&(_ZTV7ee34461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34461[];
+extern VTBL_ENTRY _ZTV7ee34461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34461[];
+static VTBL_ENTRY alt_thunk_names716[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344613fooEv,_ZTv0_n12_N7ee344613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344613fooEv,_ZThn8_N7ee344613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34461 = { "ee34461", // class name
+ bases_ee34461, 4,
+ &(vtc_ee34461[0]), // expected_vtbl_contents
+ &(vtt_ee34461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34461),2, //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 ee44461 : dd4461 {
+ int e;
+ virtual void bar(); // _ZN7ee444613barEv
+ ~ee44461(); // tgen
+ ee44461(); // tgen
+};
+//SIG(1 ee44461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44461 ::bar(){vfunc_called(this, "_ZN7ee444613barEv");}
+ee44461 ::~ee44461(){ note_dtor("ee44461", this);} // tgen
+ee44461 ::ee44461(){ note_ctor("ee44461", this);} // tgen
+
+static void Test_ee44461()
+{
+ extern Class_Descriptor cd_ee44461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44461, buf);
+ ee44461 *dp, &lv = *(dp=new (buf) ee44461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), 0, "ee44461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), 0, "ee44461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), 0, "ee44461");
+ check_base_class_offset(lv, (dd4461*), 0, "ee44461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44461.e");
+ test_class_info(&lv, &cd_ee44461);
+ dp->~ee44461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44461(Test_ee44461, "ee44461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44461C1Ev();
+extern void _ZN7ee44461D1Ev();
+Name_Map name_map_ee44461[] = {
+ NSPAIR(_ZN7ee44461C1Ev),
+ NSPAIR(_ZN7ee44461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee44461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44461[];
+extern void _ZN4bb613fooEv();
+extern void _ZN7ee444613barEv();
+static VTBL_ENTRY vtc_ee44461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&_ZN7ee444613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44461[];
+extern VTBL_ENTRY _ZTV7ee44461[];
+Class_Descriptor cd_ee44461 = { "ee44461", // class name
+ bases_ee44461, 4,
+ &(vtc_ee44461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44461),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 ee54461 : virtual dd4461 {
+ int e;
+ virtual void bar(); // _ZN7ee544613barEv
+ ~ee54461(); // tgen
+ ee54461(); // tgen
+};
+//SIG(1 ee54461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54461 ::bar(){vfunc_called(this, "_ZN7ee544613barEv");}
+ee54461 ::~ee54461(){ note_dtor("ee54461", this);} // tgen
+ee54461 ::ee54461(){ note_ctor("ee54461", this);} // tgen
+
+static void Test_ee54461()
+{
+ extern Class_Descriptor cd_ee54461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54461, buf);
+ ee54461 *dp, &lv = *(dp=new (buf) ee54461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee54461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee54461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), ABISELECT(16,8), "ee54461");
+ check_base_class_offset(lv, (dd4461*), ABISELECT(16,8), "ee54461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54461.e");
+ test_class_info(&lv, &cd_ee54461);
+ dp->~ee54461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54461(Test_ee54461, "ee54461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54461C1Ev();
+extern void _ZN7ee54461D1Ev();
+Name_Map name_map_ee54461[] = {
+ NSPAIR(_ZN7ee54461C1Ev),
+ NSPAIR(_ZN7ee54461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee54461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, ABISELECT(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 _ZTI7ee54461[];
+extern void _ZN7ee544613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544613barEv,_ZTv0_n16_N7ee544613barEv)();
+extern void ABISELECT(_ZThn16_N7ee544613barEv,_ZThn8_N7ee544613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54461[0]),
+ (VTBL_ENTRY)&_ZN7ee544613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544613barEv,_ZTv0_n16_N7ee544613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54461[];
+static VTT_ENTRY vtt_ee54461[] = {
+ {&(_ZTV7ee54461[3]), 3,10},
+ {&(_ZTV7ee54461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54461[];
+extern VTBL_ENTRY _ZTV7ee54461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54461[];
+static VTBL_ENTRY alt_thunk_names717[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544613barEv,_ZTv0_n16_N7ee544613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544613barEv,_ZThn8_N7ee544613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54461 = { "ee54461", // class name
+ bases_ee54461, 4,
+ &(vtc_ee54461[0]), // expected_vtbl_contents
+ &(vtt_ee54461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54461),2, //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 ee64461 : dd4461 {
+ int e;
+ virtual void foo(); // _ZN7ee644613fooEv
+ virtual void bar(); // _ZN7ee644613barEv
+ ~ee64461(); // tgen
+ ee64461(); // tgen
+};
+//SIG(1 ee64461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64461 ::foo(){vfunc_called(this, "_ZN7ee644613fooEv");}
+void ee64461 ::bar(){vfunc_called(this, "_ZN7ee644613barEv");}
+ee64461 ::~ee64461(){ note_dtor("ee64461", this);} // tgen
+ee64461 ::ee64461(){ note_ctor("ee64461", this);} // tgen
+
+static void Test_ee64461()
+{
+ extern Class_Descriptor cd_ee64461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64461, buf);
+ ee64461 *dp, &lv = *(dp=new (buf) ee64461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), 0, "ee64461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), 0, "ee64461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), 0, "ee64461");
+ check_base_class_offset(lv, (dd4461*), 0, "ee64461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64461.e");
+ test_class_info(&lv, &cd_ee64461);
+ dp->~ee64461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64461(Test_ee64461, "ee64461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64461C1Ev();
+extern void _ZN7ee64461D1Ev();
+Name_Map name_map_ee64461[] = {
+ NSPAIR(_ZN7ee64461C1Ev),
+ NSPAIR(_ZN7ee64461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee64461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64461[];
+extern void _ZN7ee644613fooEv();
+extern void _ZN7ee644613barEv();
+static VTBL_ENTRY vtc_ee64461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64461[0]),
+ (VTBL_ENTRY)&_ZN7ee644613fooEv,
+ (VTBL_ENTRY)&_ZN7ee644613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64461[];
+extern VTBL_ENTRY _ZTV7ee64461[];
+Class_Descriptor cd_ee64461 = { "ee64461", // class name
+ bases_ee64461, 4,
+ &(vtc_ee64461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64461),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 ee74461 : virtual dd4461 {
+ int e;
+ virtual void foo(); // _ZN7ee744613fooEv
+ virtual void bar(); // _ZN7ee744613barEv
+ ~ee74461(); // tgen
+ ee74461(); // tgen
+};
+//SIG(1 ee74461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74461 ::foo(){vfunc_called(this, "_ZN7ee744613fooEv");}
+void ee74461 ::bar(){vfunc_called(this, "_ZN7ee744613barEv");}
+ee74461 ::~ee74461(){ note_dtor("ee74461", this);} // tgen
+ee74461 ::ee74461(){ note_ctor("ee74461", this);} // tgen
+
+static void Test_ee74461()
+{
+ extern Class_Descriptor cd_ee74461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74461, buf);
+ ee74461 *dp, &lv = *(dp=new (buf) ee74461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee74461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd4461*), ABISELECT(16,8), "ee74461");
+ check_base_class_offset(lv, (cc461*)(dd4461*), ABISELECT(16,8), "ee74461");
+ check_base_class_offset(lv, (dd4461*), ABISELECT(16,8), "ee74461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74461.e");
+ test_class_info(&lv, &cd_ee74461);
+ dp->~ee74461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74461(Test_ee74461, "ee74461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74461C1Ev();
+extern void _ZN7ee74461D1Ev();
+Name_Map name_map_ee74461[] = {
+ NSPAIR(_ZN7ee74461C1Ev),
+ NSPAIR(_ZN7ee74461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd4461;
+extern VTBL_ENTRY _ZTI6dd4461[];
+extern VTBL_ENTRY _ZTV6dd4461[];
+static Base_Class bases_ee74461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4461, ABISELECT(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 _ZTI7ee74461[];
+extern void _ZN7ee744613fooEv();
+extern void _ZN7ee744613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744613fooEv,_ZTv0_n12_N7ee744613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744613fooEv,_ZThn8_N7ee744613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744613barEv,_ZTv0_n16_N7ee744613barEv)();
+extern void ABISELECT(_ZThn16_N7ee744613barEv,_ZThn8_N7ee744613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74461[0]),
+ (VTBL_ENTRY)&_ZN7ee744613fooEv,
+ (VTBL_ENTRY)&_ZN7ee744613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744613fooEv,_ZTv0_n12_N7ee744613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744613barEv,_ZTv0_n16_N7ee744613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74461[];
+static VTT_ENTRY vtt_ee74461[] = {
+ {&(_ZTV7ee74461[3]), 3,11},
+ {&(_ZTV7ee74461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74461[];
+extern VTBL_ENTRY _ZTV7ee74461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74461[];
+static VTBL_ENTRY alt_thunk_names718[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744613barEv,_ZTv0_n16_N7ee744613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744613barEv,_ZThn8_N7ee744613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744613fooEv,_ZTv0_n12_N7ee744613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744613fooEv,_ZThn8_N7ee744613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74461 = { "ee74461", // class name
+ bases_ee74461, 4,
+ &(vtc_ee74461[0]), // expected_vtbl_contents
+ &(vtt_ee74461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74461),2, //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 dd5461 : virtual cc461 {
+ int d;
+ virtual void bar(); // _ZN6dd54613barEv
+ ~dd5461(); // tgen
+ dd5461(); // tgen
+};
+//SIG(-1 dd5461) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5461 ::bar(){vfunc_called(this, "_ZN6dd54613barEv");}
+dd5461 ::~dd5461(){ note_dtor("dd5461", this);} // tgen
+dd5461 ::dd5461(){ note_ctor("dd5461", this);} // tgen
+
+static void Test_dd5461()
+{
+ extern Class_Descriptor cd_dd5461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5461, buf);
+ dd5461 *dp, &lv = *(dp=new (buf) dd5461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,8), "dd5461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,8), "dd5461");
+ check_base_class_offset(lv, (cc461*), ABISELECT(16,8), "dd5461");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5461.d");
+ test_class_info(&lv, &cd_dd5461);
+ dp->~dd5461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5461(Test_dd5461, "dd5461", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5461C1Ev();
+extern void _ZN6dd5461D1Ev();
+Name_Map name_map_dd5461[] = {
+ NSPAIR(_ZN6dd5461C1Ev),
+ NSPAIR(_ZN6dd5461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd5461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(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 _ZTI6dd5461[];
+extern void _ZN6dd54613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5461[];
+static VTT_ENTRY vtt_dd5461[] = {
+ {&(_ZTV6dd5461[3]), 3,10},
+ {&(_ZTV6dd5461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static VTBL_ENTRY alt_thunk_names719[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5461 = { "dd5461", // class name
+ bases_dd5461, 3,
+ &(vtc_dd5461[0]), // expected_vtbl_contents
+ &(vtt_dd5461[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5461),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names719,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05461 : dd5461 {
+ int e;
+ ~ee05461(); // tgen
+ ee05461(); // tgen
+};
+//SIG(1 ee05461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05461 ::~ee05461(){ note_dtor("ee05461", this);} // tgen
+ee05461 ::ee05461(){ note_ctor("ee05461", this);} // tgen
+
+static void Test_ee05461()
+{
+ extern Class_Descriptor cd_ee05461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05461, buf);
+ ee05461 *dp, &lv = *(dp=new (buf) ee05461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee05461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee05461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(16,12), "ee05461");
+ check_base_class_offset(lv, (dd5461*), 0, "ee05461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05461.e");
+ test_class_info(&lv, &cd_ee05461);
+ dp->~ee05461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05461(Test_ee05461, "ee05461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05461C1Ev();
+extern void _ZN7ee05461D1Ev();
+Name_Map name_map_ee05461[] = {
+ NSPAIR(_ZN7ee05461C1Ev),
+ NSPAIR(_ZN7ee05461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee05461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05461[];
+extern void _ZN6dd54613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee05461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee05461[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee05461[] = {
+ {&(_ZTV7ee05461[3]), 3,10},
+ {&(_tg__ZTV6dd5461__7ee05461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee05461[4]), 4,6},
+ {&(_ZTV7ee05461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05461[];
+extern VTBL_ENTRY _ZTV7ee05461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05461[];
+static VTBL_ENTRY alt_thunk_names720[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05461 = { "ee05461", // class name
+ bases_ee05461, 4,
+ &(vtc_ee05461[0]), // expected_vtbl_contents
+ &(vtt_ee05461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05461),4, //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 ee15461 : virtual dd5461 {
+ int e;
+ ~ee15461(); // tgen
+ ee15461(); // tgen
+};
+//SIG(1 ee15461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15461 ::~ee15461(){ note_dtor("ee15461", this);} // tgen
+ee15461 ::ee15461(){ note_ctor("ee15461", this);} // tgen
+
+static void Test_ee15461()
+{
+ extern Class_Descriptor cd_ee15461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15461, buf);
+ ee15461 *dp, &lv = *(dp=new (buf) ee15461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee15461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee15461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(32,16), "ee15461");
+ check_base_class_offset(lv, (dd5461*), ABISELECT(16,8), "ee15461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15461.e");
+ test_class_info(&lv, &cd_ee15461);
+ dp->~ee15461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15461(Test_ee15461, "ee15461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15461C1Ev();
+extern void _ZN7ee15461D1Ev();
+Name_Map name_map_ee15461[] = {
+ NSPAIR(_ZN7ee15461C1Ev),
+ NSPAIR(_ZN7ee15461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee15461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, ABISELECT(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 _ZTI7ee15461[];
+extern void _ZN6dd54613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15461[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee15461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee15461[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee15461[] = {
+ {&(_ZTV7ee15461[4]), 4,15},
+ {&(_ZTV7ee15461[8]), 8,15},
+ {&(_ZTV7ee15461[13]), 13,15},
+ {&(_tg__ZTV6dd5461__7ee15461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee15461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15461[];
+extern VTBL_ENTRY _ZTV7ee15461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15461[];
+static VTBL_ENTRY alt_thunk_names721[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15461 = { "ee15461", // class name
+ bases_ee15461, 4,
+ &(vtc_ee15461[0]), // expected_vtbl_contents
+ &(vtt_ee15461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15461),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15461),5, //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 ee25461 : dd5461 {
+ int e;
+ virtual void foo(); // _ZN7ee254613fooEv
+ ~ee25461(); // tgen
+ ee25461(); // tgen
+};
+//SIG(1 ee25461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25461 ::foo(){vfunc_called(this, "_ZN7ee254613fooEv");}
+ee25461 ::~ee25461(){ note_dtor("ee25461", this);} // tgen
+ee25461 ::ee25461(){ note_ctor("ee25461", this);} // tgen
+
+static void Test_ee25461()
+{
+ extern Class_Descriptor cd_ee25461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25461, buf);
+ ee25461 *dp, &lv = *(dp=new (buf) ee25461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee25461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee25461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(16,12), "ee25461");
+ check_base_class_offset(lv, (dd5461*), 0, "ee25461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25461.e");
+ test_class_info(&lv, &cd_ee25461);
+ dp->~ee25461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25461(Test_ee25461, "ee25461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25461C1Ev();
+extern void _ZN7ee25461D1Ev();
+Name_Map name_map_ee25461[] = {
+ NSPAIR(_ZN7ee25461C1Ev),
+ NSPAIR(_ZN7ee25461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee25461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25461[];
+extern void _ZN6dd54613barEv();
+extern void _ZN7ee254613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254613fooEv,_ZTv0_n12_N7ee254613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254613fooEv,_ZThn12_N7ee254613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+ (VTBL_ENTRY)&_ZN7ee254613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254613fooEv,_ZTv0_n12_N7ee254613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee25461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee25461[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee25461[] = {
+ {&(_ZTV7ee25461[3]), 3,11},
+ {&(_tg__ZTV6dd5461__7ee25461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee25461[4]), 4,6},
+ {&(_ZTV7ee25461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25461[];
+extern VTBL_ENTRY _ZTV7ee25461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25461[];
+static VTBL_ENTRY alt_thunk_names722[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254613fooEv,_ZTv0_n12_N7ee254613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254613fooEv,_ZThn12_N7ee254613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25461 = { "ee25461", // class name
+ bases_ee25461, 4,
+ &(vtc_ee25461[0]), // expected_vtbl_contents
+ &(vtt_ee25461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25461),4, //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 ee35461 : virtual dd5461 {
+ int e;
+ virtual void foo(); // _ZN7ee354613fooEv
+ ~ee35461(); // tgen
+ ee35461(); // tgen
+};
+//SIG(1 ee35461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35461 ::foo(){vfunc_called(this, "_ZN7ee354613fooEv");}
+ee35461 ::~ee35461(){ note_dtor("ee35461", this);} // tgen
+ee35461 ::ee35461(){ note_ctor("ee35461", this);} // tgen
+
+static void Test_ee35461()
+{
+ extern Class_Descriptor cd_ee35461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35461, buf);
+ ee35461 *dp, &lv = *(dp=new (buf) ee35461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee35461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee35461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(32,16), "ee35461");
+ check_base_class_offset(lv, (dd5461*), ABISELECT(16,8), "ee35461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35461.e");
+ test_class_info(&lv, &cd_ee35461);
+ dp->~ee35461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35461(Test_ee35461, "ee35461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35461C1Ev();
+extern void _ZN7ee35461D1Ev();
+Name_Map name_map_ee35461[] = {
+ NSPAIR(_ZN7ee35461C1Ev),
+ NSPAIR(_ZN7ee35461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee35461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, ABISELECT(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 _ZTI7ee35461[];
+extern void _ZN7ee354613fooEv();
+extern void _ZN6dd54613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354613fooEv,_ZTv0_n12_N7ee354613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354613fooEv,_ZThn16_N7ee354613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35461[0]),
+ (VTBL_ENTRY)&_ZN7ee354613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354613fooEv,_ZTv0_n12_N7ee354613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee35461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee35461[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee35461[] = {
+ {&(_ZTV7ee35461[4]), 4,16},
+ {&(_ZTV7ee35461[9]), 9,16},
+ {&(_ZTV7ee35461[14]), 14,16},
+ {&(_tg__ZTV6dd5461__7ee35461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee35461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35461[];
+extern VTBL_ENTRY _ZTV7ee35461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35461[];
+static VTBL_ENTRY alt_thunk_names723[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354613fooEv,_ZTv0_n12_N7ee354613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354613fooEv,_ZThn16_N7ee354613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35461 = { "ee35461", // class name
+ bases_ee35461, 4,
+ &(vtc_ee35461[0]), // expected_vtbl_contents
+ &(vtt_ee35461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35461),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35461),5, //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 ee45461 : dd5461 {
+ int e;
+ virtual void bar(); // _ZN7ee454613barEv
+ ~ee45461(); // tgen
+ ee45461(); // tgen
+};
+//SIG(1 ee45461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45461 ::bar(){vfunc_called(this, "_ZN7ee454613barEv");}
+ee45461 ::~ee45461(){ note_dtor("ee45461", this);} // tgen
+ee45461 ::ee45461(){ note_ctor("ee45461", this);} // tgen
+
+static void Test_ee45461()
+{
+ extern Class_Descriptor cd_ee45461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45461, buf);
+ ee45461 *dp, &lv = *(dp=new (buf) ee45461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee45461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee45461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(16,12), "ee45461");
+ check_base_class_offset(lv, (dd5461*), 0, "ee45461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45461.e");
+ test_class_info(&lv, &cd_ee45461);
+ dp->~ee45461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45461(Test_ee45461, "ee45461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45461C1Ev();
+extern void _ZN7ee45461D1Ev();
+Name_Map name_map_ee45461[] = {
+ NSPAIR(_ZN7ee45461C1Ev),
+ NSPAIR(_ZN7ee45461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee45461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45461[];
+extern void _ZN7ee454613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454613barEv,_ZTv0_n16_N7ee454613barEv)();
+extern void ABISELECT(_ZThn16_N7ee454613barEv,_ZThn12_N7ee454613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45461[0]),
+ (VTBL_ENTRY)&_ZN7ee454613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454613barEv,_ZTv0_n16_N7ee454613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee45461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee45461[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee45461[] = {
+ {&(_ZTV7ee45461[3]), 3,10},
+ {&(_tg__ZTV6dd5461__7ee45461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee45461[4]), 4,6},
+ {&(_ZTV7ee45461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45461[];
+extern VTBL_ENTRY _ZTV7ee45461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45461[];
+static VTBL_ENTRY alt_thunk_names724[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454613barEv,_ZTv0_n16_N7ee454613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454613barEv,_ZThn12_N7ee454613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45461 = { "ee45461", // class name
+ bases_ee45461, 4,
+ &(vtc_ee45461[0]), // expected_vtbl_contents
+ &(vtt_ee45461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45461),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names724,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55461 : virtual dd5461 {
+ int e;
+ virtual void bar(); // _ZN7ee554613barEv
+ ~ee55461(); // tgen
+ ee55461(); // tgen
+};
+//SIG(1 ee55461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55461 ::bar(){vfunc_called(this, "_ZN7ee554613barEv");}
+ee55461 ::~ee55461(){ note_dtor("ee55461", this);} // tgen
+ee55461 ::ee55461(){ note_ctor("ee55461", this);} // tgen
+
+static void Test_ee55461()
+{
+ extern Class_Descriptor cd_ee55461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55461, buf);
+ ee55461 *dp, &lv = *(dp=new (buf) ee55461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee55461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee55461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(32,16), "ee55461");
+ check_base_class_offset(lv, (dd5461*), ABISELECT(16,8), "ee55461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55461.e");
+ test_class_info(&lv, &cd_ee55461);
+ dp->~ee55461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55461(Test_ee55461, "ee55461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55461C1Ev();
+extern void _ZN7ee55461D1Ev();
+Name_Map name_map_ee55461[] = {
+ NSPAIR(_ZN7ee55461C1Ev),
+ NSPAIR(_ZN7ee55461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee55461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, ABISELECT(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 _ZTI7ee55461[];
+extern void _ZN7ee554613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554613barEv,_ZTv0_n16_N7ee554613barEv)();
+extern void ABISELECT(_ZThn16_N7ee554613barEv,_ZThn8_N7ee554613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554613barEv,_ZTv0_n16_N7ee554613barEv)();
+extern void ABISELECT(_ZThn32_N7ee554613barEv,_ZThn16_N7ee554613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55461[0]),
+ (VTBL_ENTRY)&_ZN7ee554613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554613barEv,_ZTv0_n16_N7ee554613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554613barEv,_ZTv0_n16_N7ee554613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee55461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee55461[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee55461[] = {
+ {&(_ZTV7ee55461[4]), 4,16},
+ {&(_ZTV7ee55461[9]), 9,16},
+ {&(_ZTV7ee55461[14]), 14,16},
+ {&(_tg__ZTV6dd5461__7ee55461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee55461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55461[];
+extern VTBL_ENTRY _ZTV7ee55461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55461[];
+static VTBL_ENTRY alt_thunk_names725[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554613barEv,_ZTv0_n16_N7ee554613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554613barEv,_ZThn16_N7ee554613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554613barEv,_ZThn8_N7ee554613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55461 = { "ee55461", // class name
+ bases_ee55461, 4,
+ &(vtc_ee55461[0]), // expected_vtbl_contents
+ &(vtt_ee55461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55461),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55461),5, //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 ee65461 : dd5461 {
+ int e;
+ virtual void foo(); // _ZN7ee654613fooEv
+ virtual void bar(); // _ZN7ee654613barEv
+ ~ee65461(); // tgen
+ ee65461(); // tgen
+};
+//SIG(1 ee65461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65461 ::foo(){vfunc_called(this, "_ZN7ee654613fooEv");}
+void ee65461 ::bar(){vfunc_called(this, "_ZN7ee654613barEv");}
+ee65461 ::~ee65461(){ note_dtor("ee65461", this);} // tgen
+ee65461 ::ee65461(){ note_ctor("ee65461", this);} // tgen
+
+static void Test_ee65461()
+{
+ extern Class_Descriptor cd_ee65461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65461, buf);
+ ee65461 *dp, &lv = *(dp=new (buf) ee65461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee65461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee65461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(16,12), "ee65461");
+ check_base_class_offset(lv, (dd5461*), 0, "ee65461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65461.e");
+ test_class_info(&lv, &cd_ee65461);
+ dp->~ee65461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65461(Test_ee65461, "ee65461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65461C1Ev();
+extern void _ZN7ee65461D1Ev();
+Name_Map name_map_ee65461[] = {
+ NSPAIR(_ZN7ee65461C1Ev),
+ NSPAIR(_ZN7ee65461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee65461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65461[];
+extern void _ZN7ee654613barEv();
+extern void _ZN7ee654613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654613fooEv,_ZTv0_n12_N7ee654613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654613fooEv,_ZThn12_N7ee654613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654613barEv,_ZTv0_n16_N7ee654613barEv)();
+extern void ABISELECT(_ZThn16_N7ee654613barEv,_ZThn12_N7ee654613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65461[0]),
+ (VTBL_ENTRY)&_ZN7ee654613barEv,
+ (VTBL_ENTRY)&_ZN7ee654613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654613fooEv,_ZTv0_n12_N7ee654613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654613barEv,_ZTv0_n16_N7ee654613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee65461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee65461[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee65461[] = {
+ {&(_ZTV7ee65461[3]), 3,11},
+ {&(_tg__ZTV6dd5461__7ee65461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee65461[4]), 4,6},
+ {&(_ZTV7ee65461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65461[];
+extern VTBL_ENTRY _ZTV7ee65461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65461[];
+static VTBL_ENTRY alt_thunk_names726[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn12_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654613barEv,_ZTv0_n16_N7ee654613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654613barEv,_ZThn12_N7ee654613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654613fooEv,_ZTv0_n12_N7ee654613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654613fooEv,_ZThn12_N7ee654613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65461 = { "ee65461", // class name
+ bases_ee65461, 4,
+ &(vtc_ee65461[0]), // expected_vtbl_contents
+ &(vtt_ee65461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65461),4, //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 ee75461 : virtual dd5461 {
+ int e;
+ virtual void foo(); // _ZN7ee754613fooEv
+ virtual void bar(); // _ZN7ee754613barEv
+ ~ee75461(); // tgen
+ ee75461(); // tgen
+};
+//SIG(1 ee75461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75461 ::foo(){vfunc_called(this, "_ZN7ee754613fooEv");}
+void ee75461 ::bar(){vfunc_called(this, "_ZN7ee754613barEv");}
+ee75461 ::~ee75461(){ note_dtor("ee75461", this);} // tgen
+ee75461 ::ee75461(){ note_ctor("ee75461", this);} // tgen
+
+static void Test_ee75461()
+{
+ extern Class_Descriptor cd_ee75461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75461, buf);
+ ee75461 *dp, &lv = *(dp=new (buf) ee75461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee75461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee75461");
+ check_base_class_offset(lv, (cc461*)(dd5461*), ABISELECT(32,16), "ee75461");
+ check_base_class_offset(lv, (dd5461*), ABISELECT(16,8), "ee75461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75461.e");
+ test_class_info(&lv, &cd_ee75461);
+ dp->~ee75461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75461(Test_ee75461, "ee75461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75461C1Ev();
+extern void _ZN7ee75461D1Ev();
+Name_Map name_map_ee75461[] = {
+ NSPAIR(_ZN7ee75461C1Ev),
+ NSPAIR(_ZN7ee75461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd5461;
+extern VTBL_ENTRY _ZTI6dd5461[];
+extern VTBL_ENTRY _ZTV6dd5461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5461[];
+static Base_Class bases_ee75461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd5461, 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 _ZTI7ee75461[];
+extern void _ZN7ee754613fooEv();
+extern void _ZN7ee754613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754613barEv,_ZTv0_n16_N7ee754613barEv)();
+extern void ABISELECT(_ZThn16_N7ee754613barEv,_ZThn8_N7ee754613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754613fooEv,_ZTv0_n12_N7ee754613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754613fooEv,_ZThn16_N7ee754613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754613barEv,_ZTv0_n16_N7ee754613barEv)();
+extern void ABISELECT(_ZThn32_N7ee754613barEv,_ZThn16_N7ee754613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75461[0]),
+ (VTBL_ENTRY)&_ZN7ee754613fooEv,
+ (VTBL_ENTRY)&_ZN7ee754613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754613barEv,_ZTv0_n16_N7ee754613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754613fooEv,_ZTv0_n12_N7ee754613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754613barEv,_ZTv0_n16_N7ee754613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75461[];
+extern void _ZN6dd54613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5461__7ee75461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN6dd54613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv)();
+extern void ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd5461__7ee75461[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5461[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv),
+};
+static VTT_ENTRY vtt_ee75461[] = {
+ {&(_ZTV7ee75461[4]), 4,17},
+ {&(_ZTV7ee75461[10]), 10,17},
+ {&(_ZTV7ee75461[15]), 15,17},
+ {&(_tg__ZTV6dd5461__7ee75461[3]), 3,4},
+ {&(_tg__ZTV5cc461__6dd5461__7ee75461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75461[];
+extern VTBL_ENTRY _ZTV7ee75461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75461[];
+static VTBL_ENTRY alt_thunk_names727[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54613barEv,_ZTv0_n16_N6dd54613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54613barEv,_ZThn8_N6dd54613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754613fooEv,_ZTv0_n12_N7ee754613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754613fooEv,_ZThn16_N7ee754613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754613barEv,_ZTv0_n16_N7ee754613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754613barEv,_ZThn16_N7ee754613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754613barEv,_ZThn8_N7ee754613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75461 = { "ee75461", // class name
+ bases_ee75461, 4,
+ &(vtc_ee75461[0]), // expected_vtbl_contents
+ &(vtt_ee75461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75461),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75461),5, //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 dd6461 : cc461 {
+ int d;
+ virtual void bar(); // _ZN6dd64613barEv
+ virtual void foo(); // _ZN6dd64613fooEv
+ ~dd6461(); // tgen
+ dd6461(); // tgen
+};
+//SIG(-1 dd6461) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6461 ::bar(){vfunc_called(this, "_ZN6dd64613barEv");}
+void dd6461 ::foo(){vfunc_called(this, "_ZN6dd64613fooEv");}
+dd6461 ::~dd6461(){ note_dtor("dd6461", this);} // tgen
+dd6461 ::dd6461(){ note_ctor("dd6461", this);} // tgen
+
+static void Test_dd6461()
+{
+ extern Class_Descriptor cd_dd6461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6461, buf);
+ dd6461 *dp, &lv = *(dp=new (buf) dd6461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), 0, "dd6461");
+ check_base_class_offset(lv, (bb61*)(cc461*), 0, "dd6461");
+ check_base_class_offset(lv, (cc461*), 0, "dd6461");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6461.d");
+ test_class_info(&lv, &cd_dd6461);
+ dp->~dd6461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6461(Test_dd6461, "dd6461", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6461C1Ev();
+extern void _ZN6dd6461D1Ev();
+Name_Map name_map_dd6461[] = {
+ NSPAIR(_ZN6dd6461C1Ev),
+ NSPAIR(_ZN6dd6461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd6461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6461[];
+extern void _ZN6dd64613fooEv();
+extern void _ZN6dd64613barEv();
+static VTBL_ENTRY vtc_dd6461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6461[0]),
+ (VTBL_ENTRY)&_ZN6dd64613fooEv,
+ (VTBL_ENTRY)&_ZN6dd64613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+Class_Descriptor cd_dd6461 = { "dd6461", // class name
+ bases_dd6461, 3,
+ &(vtc_dd6461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6461),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 ee06461 : dd6461 {
+ int e;
+ ~ee06461(); // tgen
+ ee06461(); // tgen
+};
+//SIG(1 ee06461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06461 ::~ee06461(){ note_dtor("ee06461", this);} // tgen
+ee06461 ::ee06461(){ note_ctor("ee06461", this);} // tgen
+
+static void Test_ee06461()
+{
+ extern Class_Descriptor cd_ee06461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06461, buf);
+ ee06461 *dp, &lv = *(dp=new (buf) ee06461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), 0, "ee06461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), 0, "ee06461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), 0, "ee06461");
+ check_base_class_offset(lv, (dd6461*), 0, "ee06461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06461.e");
+ test_class_info(&lv, &cd_ee06461);
+ dp->~ee06461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06461(Test_ee06461, "ee06461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06461C1Ev();
+extern void _ZN7ee06461D1Ev();
+Name_Map name_map_ee06461[] = {
+ NSPAIR(_ZN7ee06461C1Ev),
+ NSPAIR(_ZN7ee06461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee06461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, 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 _ZTI7ee06461[];
+extern void _ZN6dd64613fooEv();
+extern void _ZN6dd64613barEv();
+static VTBL_ENTRY vtc_ee06461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06461[0]),
+ (VTBL_ENTRY)&_ZN6dd64613fooEv,
+ (VTBL_ENTRY)&_ZN6dd64613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06461[];
+extern VTBL_ENTRY _ZTV7ee06461[];
+Class_Descriptor cd_ee06461 = { "ee06461", // class name
+ bases_ee06461, 4,
+ &(vtc_ee06461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06461),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 ee16461 : virtual dd6461 {
+ int e;
+ ~ee16461(); // tgen
+ ee16461(); // tgen
+};
+//SIG(1 ee16461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16461 ::~ee16461(){ note_dtor("ee16461", this);} // tgen
+ee16461 ::ee16461(){ note_ctor("ee16461", this);} // tgen
+
+static void Test_ee16461()
+{
+ extern Class_Descriptor cd_ee16461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16461, buf);
+ ee16461 *dp, &lv = *(dp=new (buf) ee16461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee16461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee16461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), ABISELECT(16,8), "ee16461");
+ check_base_class_offset(lv, (dd6461*), ABISELECT(16,8), "ee16461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16461.e");
+ test_class_info(&lv, &cd_ee16461);
+ dp->~ee16461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16461(Test_ee16461, "ee16461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16461C1Ev();
+extern void _ZN7ee16461D1Ev();
+Name_Map name_map_ee16461[] = {
+ NSPAIR(_ZN7ee16461C1Ev),
+ NSPAIR(_ZN7ee16461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee16461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, 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 _ZTI7ee16461[];
+extern void _ZN6dd64613fooEv();
+extern void _ZN6dd64613barEv();
+static VTBL_ENTRY vtc_ee16461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16461[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16461[0]),
+ (VTBL_ENTRY)&_ZN6dd64613fooEv,
+ (VTBL_ENTRY)&_ZN6dd64613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16461[];
+static VTT_ENTRY vtt_ee16461[] = {
+ {&(_ZTV7ee16461[3]), 3,9},
+ {&(_ZTV7ee16461[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16461[];
+extern VTBL_ENTRY _ZTV7ee16461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16461[];
+Class_Descriptor cd_ee16461 = { "ee16461", // class name
+ bases_ee16461, 4,
+ &(vtc_ee16461[0]), // expected_vtbl_contents
+ &(vtt_ee16461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16461),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16461),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 ee26461 : dd6461 {
+ int e;
+ virtual void foo(); // _ZN7ee264613fooEv
+ ~ee26461(); // tgen
+ ee26461(); // tgen
+};
+//SIG(1 ee26461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26461 ::foo(){vfunc_called(this, "_ZN7ee264613fooEv");}
+ee26461 ::~ee26461(){ note_dtor("ee26461", this);} // tgen
+ee26461 ::ee26461(){ note_ctor("ee26461", this);} // tgen
+
+static void Test_ee26461()
+{
+ extern Class_Descriptor cd_ee26461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26461, buf);
+ ee26461 *dp, &lv = *(dp=new (buf) ee26461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), 0, "ee26461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), 0, "ee26461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), 0, "ee26461");
+ check_base_class_offset(lv, (dd6461*), 0, "ee26461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26461.e");
+ test_class_info(&lv, &cd_ee26461);
+ dp->~ee26461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26461(Test_ee26461, "ee26461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26461C1Ev();
+extern void _ZN7ee26461D1Ev();
+Name_Map name_map_ee26461[] = {
+ NSPAIR(_ZN7ee26461C1Ev),
+ NSPAIR(_ZN7ee26461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee26461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26461[];
+extern void _ZN7ee264613fooEv();
+extern void _ZN6dd64613barEv();
+static VTBL_ENTRY vtc_ee26461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26461[0]),
+ (VTBL_ENTRY)&_ZN7ee264613fooEv,
+ (VTBL_ENTRY)&_ZN6dd64613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26461[];
+extern VTBL_ENTRY _ZTV7ee26461[];
+Class_Descriptor cd_ee26461 = { "ee26461", // class name
+ bases_ee26461, 4,
+ &(vtc_ee26461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26461),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 ee36461 : virtual dd6461 {
+ int e;
+ virtual void foo(); // _ZN7ee364613fooEv
+ ~ee36461(); // tgen
+ ee36461(); // tgen
+};
+//SIG(1 ee36461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36461 ::foo(){vfunc_called(this, "_ZN7ee364613fooEv");}
+ee36461 ::~ee36461(){ note_dtor("ee36461", this);} // tgen
+ee36461 ::ee36461(){ note_ctor("ee36461", this);} // tgen
+
+static void Test_ee36461()
+{
+ extern Class_Descriptor cd_ee36461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36461, buf);
+ ee36461 *dp, &lv = *(dp=new (buf) ee36461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee36461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee36461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), ABISELECT(16,8), "ee36461");
+ check_base_class_offset(lv, (dd6461*), ABISELECT(16,8), "ee36461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36461.e");
+ test_class_info(&lv, &cd_ee36461);
+ dp->~ee36461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36461(Test_ee36461, "ee36461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36461C1Ev();
+extern void _ZN7ee36461D1Ev();
+Name_Map name_map_ee36461[] = {
+ NSPAIR(_ZN7ee36461C1Ev),
+ NSPAIR(_ZN7ee36461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee36461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, ABISELECT(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 _ZTI7ee36461[];
+extern void _ZN7ee364613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364613fooEv,_ZTv0_n12_N7ee364613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364613fooEv,_ZThn8_N7ee364613fooEv)() __attribute__((weak));
+extern void _ZN6dd64613barEv();
+static VTBL_ENTRY vtc_ee36461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36461[0]),
+ (VTBL_ENTRY)&_ZN7ee364613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364613fooEv,_ZTv0_n12_N7ee364613fooEv),
+ (VTBL_ENTRY)&_ZN6dd64613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36461[];
+static VTT_ENTRY vtt_ee36461[] = {
+ {&(_ZTV7ee36461[3]), 3,10},
+ {&(_ZTV7ee36461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36461[];
+extern VTBL_ENTRY _ZTV7ee36461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36461[];
+static VTBL_ENTRY alt_thunk_names728[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364613fooEv,_ZTv0_n12_N7ee364613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364613fooEv,_ZThn8_N7ee364613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36461 = { "ee36461", // class name
+ bases_ee36461, 4,
+ &(vtc_ee36461[0]), // expected_vtbl_contents
+ &(vtt_ee36461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36461),2, //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 ee46461 : dd6461 {
+ int e;
+ virtual void bar(); // _ZN7ee464613barEv
+ ~ee46461(); // tgen
+ ee46461(); // tgen
+};
+//SIG(1 ee46461) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46461 ::bar(){vfunc_called(this, "_ZN7ee464613barEv");}
+ee46461 ::~ee46461(){ note_dtor("ee46461", this);} // tgen
+ee46461 ::ee46461(){ note_ctor("ee46461", this);} // tgen
+
+static void Test_ee46461()
+{
+ extern Class_Descriptor cd_ee46461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46461, buf);
+ ee46461 *dp, &lv = *(dp=new (buf) ee46461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), 0, "ee46461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), 0, "ee46461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), 0, "ee46461");
+ check_base_class_offset(lv, (dd6461*), 0, "ee46461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46461.e");
+ test_class_info(&lv, &cd_ee46461);
+ dp->~ee46461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46461(Test_ee46461, "ee46461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46461C1Ev();
+extern void _ZN7ee46461D1Ev();
+Name_Map name_map_ee46461[] = {
+ NSPAIR(_ZN7ee46461C1Ev),
+ NSPAIR(_ZN7ee46461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee46461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46461[];
+extern void _ZN6dd64613fooEv();
+extern void _ZN7ee464613barEv();
+static VTBL_ENTRY vtc_ee46461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46461[0]),
+ (VTBL_ENTRY)&_ZN6dd64613fooEv,
+ (VTBL_ENTRY)&_ZN7ee464613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46461[];
+extern VTBL_ENTRY _ZTV7ee46461[];
+Class_Descriptor cd_ee46461 = { "ee46461", // class name
+ bases_ee46461, 4,
+ &(vtc_ee46461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46461),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 ee56461 : virtual dd6461 {
+ int e;
+ virtual void bar(); // _ZN7ee564613barEv
+ ~ee56461(); // tgen
+ ee56461(); // tgen
+};
+//SIG(1 ee56461) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56461 ::bar(){vfunc_called(this, "_ZN7ee564613barEv");}
+ee56461 ::~ee56461(){ note_dtor("ee56461", this);} // tgen
+ee56461 ::ee56461(){ note_ctor("ee56461", this);} // tgen
+
+static void Test_ee56461()
+{
+ extern Class_Descriptor cd_ee56461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56461, buf);
+ ee56461 *dp, &lv = *(dp=new (buf) ee56461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee56461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee56461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), ABISELECT(16,8), "ee56461");
+ check_base_class_offset(lv, (dd6461*), ABISELECT(16,8), "ee56461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56461.e");
+ test_class_info(&lv, &cd_ee56461);
+ dp->~ee56461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56461(Test_ee56461, "ee56461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56461C1Ev();
+extern void _ZN7ee56461D1Ev();
+Name_Map name_map_ee56461[] = {
+ NSPAIR(_ZN7ee56461C1Ev),
+ NSPAIR(_ZN7ee56461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee56461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, ABISELECT(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 _ZTI7ee56461[];
+extern void _ZN7ee564613barEv();
+extern void _ZN6dd64613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564613barEv,_ZTv0_n16_N7ee564613barEv)();
+extern void ABISELECT(_ZThn16_N7ee564613barEv,_ZThn8_N7ee564613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56461[0]),
+ (VTBL_ENTRY)&_ZN7ee564613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56461[0]),
+ (VTBL_ENTRY)&_ZN6dd64613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564613barEv,_ZTv0_n16_N7ee564613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56461[];
+static VTT_ENTRY vtt_ee56461[] = {
+ {&(_ZTV7ee56461[3]), 3,10},
+ {&(_ZTV7ee56461[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56461[];
+extern VTBL_ENTRY _ZTV7ee56461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56461[];
+static VTBL_ENTRY alt_thunk_names729[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564613barEv,_ZTv0_n16_N7ee564613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564613barEv,_ZThn8_N7ee564613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56461 = { "ee56461", // class name
+ bases_ee56461, 4,
+ &(vtc_ee56461[0]), // expected_vtbl_contents
+ &(vtt_ee56461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56461),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56461),2, //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 ee66461 : dd6461 {
+ int e;
+ virtual void foo(); // _ZN7ee664613fooEv
+ virtual void bar(); // _ZN7ee664613barEv
+ ~ee66461(); // tgen
+ ee66461(); // tgen
+};
+//SIG(1 ee66461) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66461 ::foo(){vfunc_called(this, "_ZN7ee664613fooEv");}
+void ee66461 ::bar(){vfunc_called(this, "_ZN7ee664613barEv");}
+ee66461 ::~ee66461(){ note_dtor("ee66461", this);} // tgen
+ee66461 ::ee66461(){ note_ctor("ee66461", this);} // tgen
+
+static void Test_ee66461()
+{
+ extern Class_Descriptor cd_ee66461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66461, buf);
+ ee66461 *dp, &lv = *(dp=new (buf) ee66461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), 0, "ee66461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), 0, "ee66461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), 0, "ee66461");
+ check_base_class_offset(lv, (dd6461*), 0, "ee66461");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66461.e");
+ test_class_info(&lv, &cd_ee66461);
+ dp->~ee66461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66461(Test_ee66461, "ee66461", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66461C1Ev();
+extern void _ZN7ee66461D1Ev();
+Name_Map name_map_ee66461[] = {
+ NSPAIR(_ZN7ee66461C1Ev),
+ NSPAIR(_ZN7ee66461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee66461[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66461[];
+extern void _ZN7ee664613fooEv();
+extern void _ZN7ee664613barEv();
+static VTBL_ENTRY vtc_ee66461[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66461[0]),
+ (VTBL_ENTRY)&_ZN7ee664613fooEv,
+ (VTBL_ENTRY)&_ZN7ee664613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66461[];
+extern VTBL_ENTRY _ZTV7ee66461[];
+Class_Descriptor cd_ee66461 = { "ee66461", // class name
+ bases_ee66461, 4,
+ &(vtc_ee66461[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66461),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 ee76461 : virtual dd6461 {
+ int e;
+ virtual void foo(); // _ZN7ee764613fooEv
+ virtual void bar(); // _ZN7ee764613barEv
+ ~ee76461(); // tgen
+ ee76461(); // tgen
+};
+//SIG(1 ee76461) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76461 ::foo(){vfunc_called(this, "_ZN7ee764613fooEv");}
+void ee76461 ::bar(){vfunc_called(this, "_ZN7ee764613barEv");}
+ee76461 ::~ee76461(){ note_dtor("ee76461", this);} // tgen
+ee76461 ::ee76461(){ note_ctor("ee76461", this);} // tgen
+
+static void Test_ee76461()
+{
+ extern Class_Descriptor cd_ee76461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76461, buf);
+ ee76461 *dp, &lv = *(dp=new (buf) ee76461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee76461");
+ check_base_class_offset(lv, (bb61*)(cc461*)(dd6461*), ABISELECT(16,8), "ee76461");
+ check_base_class_offset(lv, (cc461*)(dd6461*), ABISELECT(16,8), "ee76461");
+ check_base_class_offset(lv, (dd6461*), ABISELECT(16,8), "ee76461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76461.e");
+ test_class_info(&lv, &cd_ee76461);
+ dp->~ee76461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76461(Test_ee76461, "ee76461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76461C1Ev();
+extern void _ZN7ee76461D1Ev();
+Name_Map name_map_ee76461[] = {
+ NSPAIR(_ZN7ee76461C1Ev),
+ NSPAIR(_ZN7ee76461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd6461;
+extern VTBL_ENTRY _ZTI6dd6461[];
+extern VTBL_ENTRY _ZTV6dd6461[];
+static Base_Class bases_ee76461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6461, ABISELECT(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 _ZTI7ee76461[];
+extern void _ZN7ee764613fooEv();
+extern void _ZN7ee764613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764613fooEv,_ZTv0_n12_N7ee764613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764613fooEv,_ZThn8_N7ee764613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764613barEv,_ZTv0_n16_N7ee764613barEv)();
+extern void ABISELECT(_ZThn16_N7ee764613barEv,_ZThn8_N7ee764613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76461[0]),
+ (VTBL_ENTRY)&_ZN7ee764613fooEv,
+ (VTBL_ENTRY)&_ZN7ee764613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764613fooEv,_ZTv0_n12_N7ee764613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764613barEv,_ZTv0_n16_N7ee764613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76461[];
+static VTT_ENTRY vtt_ee76461[] = {
+ {&(_ZTV7ee76461[3]), 3,11},
+ {&(_ZTV7ee76461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76461[];
+extern VTBL_ENTRY _ZTV7ee76461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76461[];
+static VTBL_ENTRY alt_thunk_names730[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764613barEv,_ZTv0_n16_N7ee764613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764613barEv,_ZThn8_N7ee764613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764613fooEv,_ZTv0_n12_N7ee764613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764613fooEv,_ZThn8_N7ee764613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76461 = { "ee76461", // class name
+ bases_ee76461, 4,
+ &(vtc_ee76461[0]), // expected_vtbl_contents
+ &(vtt_ee76461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76461),2, //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 dd7461 : virtual cc461 {
+ int d;
+ virtual void bar(); // _ZN6dd74613barEv
+ virtual void foo(); // _ZN6dd74613fooEv
+ ~dd7461(); // tgen
+ dd7461(); // tgen
+};
+//SIG(-1 dd7461) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7461 ::bar(){vfunc_called(this, "_ZN6dd74613barEv");}
+void dd7461 ::foo(){vfunc_called(this, "_ZN6dd74613fooEv");}
+dd7461 ::~dd7461(){ note_dtor("dd7461", this);} // tgen
+dd7461 ::dd7461(){ note_ctor("dd7461", this);} // tgen
+
+static void Test_dd7461()
+{
+ extern Class_Descriptor cd_dd7461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7461, buf);
+ dd7461 *dp, &lv = *(dp=new (buf) dd7461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,8), "dd7461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,8), "dd7461");
+ check_base_class_offset(lv, (cc461*), ABISELECT(16,8), "dd7461");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7461.d");
+ test_class_info(&lv, &cd_dd7461);
+ dp->~dd7461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7461(Test_dd7461, "dd7461", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7461C1Ev();
+extern void _ZN6dd7461D1Ev();
+Name_Map name_map_dd7461[] = {
+ NSPAIR(_ZN6dd7461C1Ev),
+ NSPAIR(_ZN6dd7461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+static Base_Class bases_dd7461[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, ABISELECT(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 _ZTI6dd7461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7461[];
+static VTT_ENTRY vtt_dd7461[] = {
+ {&(_ZTV6dd7461[3]), 3,11},
+ {&(_ZTV6dd7461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static VTBL_ENTRY alt_thunk_names731[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7461 = { "dd7461", // class name
+ bases_dd7461, 3,
+ &(vtc_dd7461[0]), // expected_vtbl_contents
+ &(vtt_dd7461[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7461),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names731,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07461 : dd7461 {
+ int e;
+ ~ee07461(); // tgen
+ ee07461(); // tgen
+};
+//SIG(1 ee07461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07461 ::~ee07461(){ note_dtor("ee07461", this);} // tgen
+ee07461 ::ee07461(){ note_ctor("ee07461", this);} // tgen
+
+static void Test_ee07461()
+{
+ extern Class_Descriptor cd_ee07461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07461, buf);
+ ee07461 *dp, &lv = *(dp=new (buf) ee07461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee07461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee07461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(16,12), "ee07461");
+ check_base_class_offset(lv, (dd7461*), 0, "ee07461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07461.e");
+ test_class_info(&lv, &cd_ee07461);
+ dp->~ee07461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07461(Test_ee07461, "ee07461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07461C1Ev();
+extern void _ZN7ee07461D1Ev();
+Name_Map name_map_ee07461[] = {
+ NSPAIR(_ZN7ee07461C1Ev),
+ NSPAIR(_ZN7ee07461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee07461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee07461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee07461[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee07461[] = {
+ {&(_ZTV7ee07461[3]), 3,11},
+ {&(_tg__ZTV6dd7461__7ee07461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee07461[4]), 4,6},
+ {&(_ZTV7ee07461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07461[];
+extern VTBL_ENTRY _ZTV7ee07461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07461[];
+static VTBL_ENTRY alt_thunk_names732[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07461 = { "ee07461", // class name
+ bases_ee07461, 4,
+ &(vtc_ee07461[0]), // expected_vtbl_contents
+ &(vtt_ee07461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07461),4, //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 ee17461 : virtual dd7461 {
+ int e;
+ ~ee17461(); // tgen
+ ee17461(); // tgen
+};
+//SIG(1 ee17461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17461 ::~ee17461(){ note_dtor("ee17461", this);} // tgen
+ee17461 ::ee17461(){ note_ctor("ee17461", this);} // tgen
+
+static void Test_ee17461()
+{
+ extern Class_Descriptor cd_ee17461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17461, buf);
+ ee17461 *dp, &lv = *(dp=new (buf) ee17461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee17461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee17461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(32,16), "ee17461");
+ check_base_class_offset(lv, (dd7461*), ABISELECT(16,8), "ee17461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17461.e");
+ test_class_info(&lv, &cd_ee17461);
+ dp->~ee17461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17461(Test_ee17461, "ee17461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17461C1Ev();
+extern void _ZN7ee17461D1Ev();
+Name_Map name_map_ee17461[] = {
+ NSPAIR(_ZN7ee17461C1Ev),
+ NSPAIR(_ZN7ee17461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee17461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, 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 _ZTI7ee17461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17461[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee17461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee17461[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee17461[] = {
+ {&(_ZTV7ee17461[4]), 4,17},
+ {&(_ZTV7ee17461[9]), 9,17},
+ {&(_ZTV7ee17461[15]), 15,17},
+ {&(_tg__ZTV6dd7461__7ee17461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee17461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17461[];
+extern VTBL_ENTRY _ZTV7ee17461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17461[];
+static VTBL_ENTRY alt_thunk_names733[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17461 = { "ee17461", // class name
+ bases_ee17461, 4,
+ &(vtc_ee17461[0]), // expected_vtbl_contents
+ &(vtt_ee17461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17461),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17461),5, //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 ee27461 : dd7461 {
+ int e;
+ virtual void foo(); // _ZN7ee274613fooEv
+ ~ee27461(); // tgen
+ ee27461(); // tgen
+};
+//SIG(1 ee27461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27461 ::foo(){vfunc_called(this, "_ZN7ee274613fooEv");}
+ee27461 ::~ee27461(){ note_dtor("ee27461", this);} // tgen
+ee27461 ::ee27461(){ note_ctor("ee27461", this);} // tgen
+
+static void Test_ee27461()
+{
+ extern Class_Descriptor cd_ee27461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27461, buf);
+ ee27461 *dp, &lv = *(dp=new (buf) ee27461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee27461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee27461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(16,12), "ee27461");
+ check_base_class_offset(lv, (dd7461*), 0, "ee27461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27461.e");
+ test_class_info(&lv, &cd_ee27461);
+ dp->~ee27461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27461(Test_ee27461, "ee27461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27461C1Ev();
+extern void _ZN7ee27461D1Ev();
+Name_Map name_map_ee27461[] = {
+ NSPAIR(_ZN7ee27461C1Ev),
+ NSPAIR(_ZN7ee27461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee27461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN7ee274613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274613fooEv,_ZTv0_n12_N7ee274613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274613fooEv,_ZThn12_N7ee274613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN7ee274613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274613fooEv,_ZTv0_n12_N7ee274613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee27461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee27461[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee27461[] = {
+ {&(_ZTV7ee27461[3]), 3,11},
+ {&(_tg__ZTV6dd7461__7ee27461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee27461[4]), 4,6},
+ {&(_ZTV7ee27461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27461[];
+extern VTBL_ENTRY _ZTV7ee27461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27461[];
+static VTBL_ENTRY alt_thunk_names734[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274613fooEv,_ZTv0_n12_N7ee274613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274613fooEv,_ZThn12_N7ee274613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27461 = { "ee27461", // class name
+ bases_ee27461, 4,
+ &(vtc_ee27461[0]), // expected_vtbl_contents
+ &(vtt_ee27461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27461),4, //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 ee37461 : virtual dd7461 {
+ int e;
+ virtual void foo(); // _ZN7ee374613fooEv
+ ~ee37461(); // tgen
+ ee37461(); // tgen
+};
+//SIG(1 ee37461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37461 ::foo(){vfunc_called(this, "_ZN7ee374613fooEv");}
+ee37461 ::~ee37461(){ note_dtor("ee37461", this);} // tgen
+ee37461 ::ee37461(){ note_ctor("ee37461", this);} // tgen
+
+static void Test_ee37461()
+{
+ extern Class_Descriptor cd_ee37461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37461, buf);
+ ee37461 *dp, &lv = *(dp=new (buf) ee37461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee37461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee37461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(32,16), "ee37461");
+ check_base_class_offset(lv, (dd7461*), ABISELECT(16,8), "ee37461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37461.e");
+ test_class_info(&lv, &cd_ee37461);
+ dp->~ee37461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37461(Test_ee37461, "ee37461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37461C1Ev();
+extern void _ZN7ee37461D1Ev();
+Name_Map name_map_ee37461[] = {
+ NSPAIR(_ZN7ee37461C1Ev),
+ NSPAIR(_ZN7ee37461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee37461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, ABISELECT(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 _ZTI7ee37461[];
+extern void _ZN7ee374613fooEv();
+extern void _ZN6dd74613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374613fooEv,_ZTv0_n20_N7ee374613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374613fooEv,_ZThn8_N7ee374613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374613fooEv,_ZTv0_n12_N7ee374613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374613fooEv,_ZThn16_N7ee374613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37461[0]),
+ (VTBL_ENTRY)&_ZN7ee374613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374613fooEv,_ZTv0_n20_N7ee374613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374613fooEv,_ZTv0_n12_N7ee374613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee37461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee37461[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee37461[] = {
+ {&(_ZTV7ee37461[4]), 4,18},
+ {&(_ZTV7ee37461[10]), 10,18},
+ {&(_ZTV7ee37461[16]), 16,18},
+ {&(_tg__ZTV6dd7461__7ee37461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee37461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37461[];
+extern VTBL_ENTRY _ZTV7ee37461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37461[];
+static VTBL_ENTRY alt_thunk_names735[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374613fooEv,_ZTv0_n12_N7ee374613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374613fooEv,_ZThn16_N7ee374613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374613fooEv,_ZTv0_n20_N7ee374613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374613fooEv,_ZThn8_N7ee374613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37461 = { "ee37461", // class name
+ bases_ee37461, 4,
+ &(vtc_ee37461[0]), // expected_vtbl_contents
+ &(vtt_ee37461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37461),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37461),5, //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 ee47461 : dd7461 {
+ int e;
+ virtual void bar(); // _ZN7ee474613barEv
+ ~ee47461(); // tgen
+ ee47461(); // tgen
+};
+//SIG(1 ee47461) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47461 ::bar(){vfunc_called(this, "_ZN7ee474613barEv");}
+ee47461 ::~ee47461(){ note_dtor("ee47461", this);} // tgen
+ee47461 ::ee47461(){ note_ctor("ee47461", this);} // tgen
+
+static void Test_ee47461()
+{
+ extern Class_Descriptor cd_ee47461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47461, buf);
+ ee47461 *dp, &lv = *(dp=new (buf) ee47461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee47461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee47461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(16,12), "ee47461");
+ check_base_class_offset(lv, (dd7461*), 0, "ee47461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47461.e");
+ test_class_info(&lv, &cd_ee47461);
+ dp->~ee47461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47461(Test_ee47461, "ee47461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47461C1Ev();
+extern void _ZN7ee47461D1Ev();
+Name_Map name_map_ee47461[] = {
+ NSPAIR(_ZN7ee47461C1Ev),
+ NSPAIR(_ZN7ee47461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee47461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47461[];
+extern void _ZN7ee474613barEv();
+extern void _ZN6dd74613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474613barEv,_ZTv0_n16_N7ee474613barEv)();
+extern void ABISELECT(_ZThn16_N7ee474613barEv,_ZThn12_N7ee474613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47461[0]),
+ (VTBL_ENTRY)&_ZN7ee474613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474613barEv,_ZTv0_n16_N7ee474613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee47461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee47461[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee47461[] = {
+ {&(_ZTV7ee47461[3]), 3,11},
+ {&(_tg__ZTV6dd7461__7ee47461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee47461[4]), 4,6},
+ {&(_ZTV7ee47461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47461[];
+extern VTBL_ENTRY _ZTV7ee47461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47461[];
+static VTBL_ENTRY alt_thunk_names736[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474613barEv,_ZTv0_n16_N7ee474613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474613barEv,_ZThn12_N7ee474613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47461 = { "ee47461", // class name
+ bases_ee47461, 4,
+ &(vtc_ee47461[0]), // expected_vtbl_contents
+ &(vtt_ee47461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47461),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 ee57461 : virtual dd7461 {
+ int e;
+ virtual void bar(); // _ZN7ee574613barEv
+ ~ee57461(); // tgen
+ ee57461(); // tgen
+};
+//SIG(1 ee57461) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57461 ::bar(){vfunc_called(this, "_ZN7ee574613barEv");}
+ee57461 ::~ee57461(){ note_dtor("ee57461", this);} // tgen
+ee57461 ::ee57461(){ note_ctor("ee57461", this);} // tgen
+
+static void Test_ee57461()
+{
+ extern Class_Descriptor cd_ee57461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57461, buf);
+ ee57461 *dp, &lv = *(dp=new (buf) ee57461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee57461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee57461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(32,16), "ee57461");
+ check_base_class_offset(lv, (dd7461*), ABISELECT(16,8), "ee57461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57461.e");
+ test_class_info(&lv, &cd_ee57461);
+ dp->~ee57461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57461(Test_ee57461, "ee57461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57461C1Ev();
+extern void _ZN7ee57461D1Ev();
+Name_Map name_map_ee57461[] = {
+ NSPAIR(_ZN7ee57461C1Ev),
+ NSPAIR(_ZN7ee57461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee57461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, ABISELECT(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 _ZTI7ee57461[];
+extern void _ZN7ee574613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574613barEv,_ZTv0_n16_N7ee574613barEv)();
+extern void ABISELECT(_ZThn16_N7ee574613barEv,_ZThn8_N7ee574613barEv)() __attribute__((weak));
+extern void _ZN6dd74613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574613barEv,_ZTv0_n16_N7ee574613barEv)();
+extern void ABISELECT(_ZThn32_N7ee574613barEv,_ZThn16_N7ee574613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57461[0]),
+ (VTBL_ENTRY)&_ZN7ee574613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574613barEv,_ZTv0_n16_N7ee574613barEv),
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574613barEv,_ZTv0_n16_N7ee574613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee57461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee57461[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee57461[] = {
+ {&(_ZTV7ee57461[4]), 4,18},
+ {&(_ZTV7ee57461[10]), 10,18},
+ {&(_ZTV7ee57461[16]), 16,18},
+ {&(_tg__ZTV6dd7461__7ee57461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee57461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57461[];
+extern VTBL_ENTRY _ZTV7ee57461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57461[];
+static VTBL_ENTRY alt_thunk_names737[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574613barEv,_ZTv0_n16_N7ee574613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574613barEv,_ZThn16_N7ee574613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574613barEv,_ZThn8_N7ee574613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57461 = { "ee57461", // class name
+ bases_ee57461, 4,
+ &(vtc_ee57461[0]), // expected_vtbl_contents
+ &(vtt_ee57461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57461),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57461),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 ee67461 : dd7461 {
+ int e;
+ virtual void foo(); // _ZN7ee674613fooEv
+ virtual void bar(); // _ZN7ee674613barEv
+ ~ee67461(); // tgen
+ ee67461(); // tgen
+};
+//SIG(1 ee67461) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67461 ::foo(){vfunc_called(this, "_ZN7ee674613fooEv");}
+void ee67461 ::bar(){vfunc_called(this, "_ZN7ee674613barEv");}
+ee67461 ::~ee67461(){ note_dtor("ee67461", this);} // tgen
+ee67461 ::ee67461(){ note_ctor("ee67461", this);} // tgen
+
+static void Test_ee67461()
+{
+ extern Class_Descriptor cd_ee67461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67461, buf);
+ ee67461 *dp, &lv = *(dp=new (buf) ee67461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(16,12), "ee67461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(16,12), "ee67461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(16,12), "ee67461");
+ check_base_class_offset(lv, (dd7461*), 0, "ee67461");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67461.e");
+ test_class_info(&lv, &cd_ee67461);
+ dp->~ee67461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67461(Test_ee67461, "ee67461", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67461C1Ev();
+extern void _ZN7ee67461D1Ev();
+Name_Map name_map_ee67461[] = {
+ NSPAIR(_ZN7ee67461C1Ev),
+ NSPAIR(_ZN7ee67461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee67461[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67461[];
+extern void _ZN7ee674613barEv();
+extern void _ZN7ee674613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674613fooEv,_ZTv0_n12_N7ee674613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674613fooEv,_ZThn12_N7ee674613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674613barEv,_ZTv0_n16_N7ee674613barEv)();
+extern void ABISELECT(_ZThn16_N7ee674613barEv,_ZThn12_N7ee674613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67461[0]),
+ (VTBL_ENTRY)&_ZN7ee674613barEv,
+ (VTBL_ENTRY)&_ZN7ee674613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674613fooEv,_ZTv0_n12_N7ee674613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674613barEv,_ZTv0_n16_N7ee674613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee67461[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee67461[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee67461[] = {
+ {&(_ZTV7ee67461[3]), 3,11},
+ {&(_tg__ZTV6dd7461__7ee67461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee67461[4]), 4,6},
+ {&(_ZTV7ee67461[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67461[];
+extern VTBL_ENTRY _ZTV7ee67461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67461[];
+static VTBL_ENTRY alt_thunk_names738[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn12_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn12_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674613barEv,_ZTv0_n16_N7ee674613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674613barEv,_ZThn12_N7ee674613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674613fooEv,_ZTv0_n12_N7ee674613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674613fooEv,_ZThn12_N7ee674613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67461 = { "ee67461", // class name
+ bases_ee67461, 4,
+ &(vtc_ee67461[0]), // expected_vtbl_contents
+ &(vtt_ee67461[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67461),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67461),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67461),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 ee77461 : virtual dd7461 {
+ int e;
+ virtual void foo(); // _ZN7ee774613fooEv
+ virtual void bar(); // _ZN7ee774613barEv
+ ~ee77461(); // tgen
+ ee77461(); // tgen
+};
+//SIG(1 ee77461) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77461 ::foo(){vfunc_called(this, "_ZN7ee774613fooEv");}
+void ee77461 ::bar(){vfunc_called(this, "_ZN7ee774613barEv");}
+ee77461 ::~ee77461(){ note_dtor("ee77461", this);} // tgen
+ee77461 ::ee77461(){ note_ctor("ee77461", this);} // tgen
+
+static void Test_ee77461()
+{
+ extern Class_Descriptor cd_ee77461;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77461, buf);
+ ee77461 *dp, &lv = *(dp=new (buf) ee77461());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77461)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77461)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc461*), ABISELECT(32,16), "ee77461");
+ check_base_class_offset(lv, (bb61*)(cc461*), ABISELECT(32,16), "ee77461");
+ check_base_class_offset(lv, (cc461*)(dd7461*), ABISELECT(32,16), "ee77461");
+ check_base_class_offset(lv, (dd7461*), ABISELECT(16,8), "ee77461");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77461.e");
+ test_class_info(&lv, &cd_ee77461);
+ dp->~ee77461();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77461(Test_ee77461, "ee77461", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77461C1Ev();
+extern void _ZN7ee77461D1Ev();
+Name_Map name_map_ee77461[] = {
+ NSPAIR(_ZN7ee77461C1Ev),
+ NSPAIR(_ZN7ee77461D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc461;
+extern VTBL_ENTRY _ZTI5cc461[];
+extern VTBL_ENTRY _ZTV5cc461[];
+extern Class_Descriptor cd_dd7461;
+extern VTBL_ENTRY _ZTI6dd7461[];
+extern VTBL_ENTRY _ZTV6dd7461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7461[];
+static Base_Class bases_ee77461[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc461, 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_dd7461, ABISELECT(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 _ZTI7ee77461[];
+extern void _ZN7ee774613fooEv();
+extern void _ZN7ee774613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774613barEv,_ZTv0_n16_N7ee774613barEv)();
+extern void ABISELECT(_ZThn16_N7ee774613barEv,_ZThn8_N7ee774613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774613fooEv,_ZTv0_n20_N7ee774613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774613fooEv,_ZThn8_N7ee774613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774613fooEv,_ZTv0_n12_N7ee774613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774613fooEv,_ZThn16_N7ee774613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774613barEv,_ZTv0_n16_N7ee774613barEv)();
+extern void ABISELECT(_ZThn32_N7ee774613barEv,_ZThn16_N7ee774613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77461[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77461[0]),
+ (VTBL_ENTRY)&_ZN7ee774613fooEv,
+ (VTBL_ENTRY)&_ZN7ee774613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774613barEv,_ZTv0_n16_N7ee774613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774613fooEv,_ZTv0_n20_N7ee774613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774613fooEv,_ZTv0_n12_N7ee774613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774613barEv,_ZTv0_n16_N7ee774613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77461[];
+extern void _ZN6dd74613barEv();
+extern void _ZN6dd74613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7461__7ee77461[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&_ZN6dd74613barEv,
+ (VTBL_ENTRY)&_ZN6dd74613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv)();
+extern void ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc461__6dd7461__7ee77461[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7461[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv),
+};
+static VTT_ENTRY vtt_ee77461[] = {
+ {&(_ZTV7ee77461[4]), 4,19},
+ {&(_ZTV7ee77461[11]), 11,19},
+ {&(_ZTV7ee77461[17]), 17,19},
+ {&(_tg__ZTV6dd7461__7ee77461[3]), 3,5},
+ {&(_tg__ZTV5cc461__6dd7461__7ee77461[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77461[];
+extern VTBL_ENTRY _ZTV7ee77461[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77461[];
+static VTBL_ENTRY alt_thunk_names739[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74613barEv,_ZTv0_n16_N6dd74613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613barEv,_ZThn8_N6dd74613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74613fooEv,_ZTv0_n12_N6dd74613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74613fooEv,_ZThn8_N6dd74613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774613fooEv,_ZTv0_n12_N7ee774613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774613fooEv,_ZThn16_N7ee774613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774613fooEv,_ZTv0_n20_N7ee774613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774613fooEv,_ZThn8_N7ee774613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774613barEv,_ZTv0_n16_N7ee774613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774613barEv,_ZThn16_N7ee774613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774613barEv,_ZThn8_N7ee774613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77461 = { "ee77461", // class name
+ bases_ee77461, 4,
+ &(vtc_ee77461[0]), // expected_vtbl_contents
+ &(vtt_ee77461[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77461),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77461),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77461),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 cc561 : virtual bb61 {
+ int c;
+ virtual void bar(); // _ZN5cc5613barEv
+ ~cc561(); // tgen
+ cc561(); // tgen
+};
+//SIG(-1 cc561) C1{ VBC2{ BC3{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc561 ::bar(){vfunc_called(this, "_ZN5cc5613barEv");}
+cc561 ::~cc561(){ note_dtor("cc561", this);} // tgen
+cc561 ::cc561(){ note_ctor("cc561", this);} // tgen
+
+static void Test_cc561()
+{
+ extern Class_Descriptor cd_cc561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc561, buf);
+ cc561 *dp, &lv = *(dp=new (buf) cc561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,8), "cc561");
+ check_base_class_offset(lv, (bb61*), ABISELECT(16,8), "cc561");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc561.c");
+ test_class_info(&lv, &cd_cc561);
+ dp->~cc561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc561(Test_cc561, "cc561", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc561C1Ev();
+extern void _ZN5cc561D1Ev();
+Name_Map name_map_cc561[] = {
+ NSPAIR(_ZN5cc561C1Ev),
+ NSPAIR(_ZN5cc561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc561[] = {
+ // 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_bb61, ABISELECT(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 _ZTI5cc561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV5cc561[];
+static VTT_ENTRY vtt_cc561[] = {
+ {&(_ZTV5cc561[3]), 3,10},
+ {&(_ZTV5cc561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static VTBL_ENTRY alt_thunk_names740[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc561 = { "cc561", // class name
+ bases_cc561, 2,
+ &(vtc_cc561[0]), // expected_vtbl_contents
+ &(vtt_cc561[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc561),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names740,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0561 : cc561 {
+ int d;
+ ~dd0561(); // tgen
+ dd0561(); // tgen
+};
+//SIG(-1 dd0561) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0561 ::~dd0561(){ note_dtor("dd0561", this);} // tgen
+dd0561 ::dd0561(){ note_ctor("dd0561", this);} // tgen
+
+static void Test_dd0561()
+{
+ extern Class_Descriptor cd_dd0561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0561, buf);
+ dd0561 *dp, &lv = *(dp=new (buf) dd0561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd0561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(16,12), "dd0561");
+ check_base_class_offset(lv, (cc561*), 0, "dd0561");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0561.d");
+ test_class_info(&lv, &cd_dd0561);
+ dp->~dd0561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0561(Test_dd0561, "dd0561", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0561C1Ev();
+extern void _ZN6dd0561D1Ev();
+Name_Map name_map_dd0561[] = {
+ NSPAIR(_ZN6dd0561C1Ev),
+ NSPAIR(_ZN6dd0561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd0561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd0561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd0561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd0561[] = {
+ {&(_ZTV6dd0561[3]), 3,10},
+ {&(_tg__ZTV5cc561__6dd0561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd0561[4]), 4,6},
+ {&(_ZTV6dd0561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static VTBL_ENTRY alt_thunk_names741[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0561 = { "dd0561", // class name
+ bases_dd0561, 3,
+ &(vtc_dd0561[0]), // expected_vtbl_contents
+ &(vtt_dd0561[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0561),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names741,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00561 : dd0561 {
+ int e;
+ ~ee00561(); // tgen
+ ee00561(); // tgen
+};
+//SIG(1 ee00561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00561 ::~ee00561(){ note_dtor("ee00561", this);} // tgen
+ee00561 ::ee00561(){ note_ctor("ee00561", this);} // tgen
+
+static void Test_ee00561()
+{
+ extern Class_Descriptor cd_ee00561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00561, buf);
+ ee00561 *dp, &lv = *(dp=new (buf) ee00561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee00561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(24,16), "ee00561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), 0, "ee00561");
+ check_base_class_offset(lv, (dd0561*), 0, "ee00561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00561.e");
+ test_class_info(&lv, &cd_ee00561);
+ dp->~ee00561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00561(Test_ee00561, "ee00561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00561C1Ev();
+extern void _ZN7ee00561D1Ev();
+Name_Map name_map_ee00561[] = {
+ NSPAIR(_ZN7ee00561C1Ev),
+ NSPAIR(_ZN7ee00561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee00561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee00561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee00561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee00561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee00561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee00561[] = {
+ {&(_ZTV7ee00561[3]), 3,10},
+ {&(_tg__ZTV6dd0561__7ee00561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee00561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee00561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee00561[4]), 4,6},
+ {&(_ZTV7ee00561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00561[];
+extern VTBL_ENTRY _ZTV7ee00561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00561[];
+static VTBL_ENTRY alt_thunk_names742[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00561 = { "ee00561", // class name
+ bases_ee00561, 4,
+ &(vtc_ee00561[0]), // expected_vtbl_contents
+ &(vtt_ee00561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00561),6, //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 ee10561 : virtual dd0561 {
+ int e;
+ ~ee10561(); // tgen
+ ee10561(); // tgen
+};
+//SIG(1 ee10561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10561 ::~ee10561(){ note_dtor("ee10561", this);} // tgen
+ee10561 ::ee10561(){ note_ctor("ee10561", this);} // tgen
+
+static void Test_ee10561()
+{
+ extern Class_Descriptor cd_ee10561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10561, buf);
+ ee10561 *dp, &lv = *(dp=new (buf) ee10561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee10561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(32,20), "ee10561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), ABISELECT(16,8), "ee10561");
+ check_base_class_offset(lv, (dd0561*), ABISELECT(16,8), "ee10561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10561.e");
+ test_class_info(&lv, &cd_ee10561);
+ dp->~ee10561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10561(Test_ee10561, "ee10561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10561C1Ev();
+extern void _ZN7ee10561D1Ev();
+Name_Map name_map_ee10561[] = {
+ NSPAIR(_ZN7ee10561C1Ev),
+ NSPAIR(_ZN7ee10561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee10561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, ABISELECT(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 _ZTI7ee10561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10561[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee10561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee10561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee10561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee10561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee10561[] = {
+ {&(_ZTV7ee10561[4]), 4,15},
+ {&(_ZTV7ee10561[8]), 8,15},
+ {&(_ZTV7ee10561[13]), 13,15},
+ {&(_tg__ZTV6dd0561__7ee10561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee10561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee10561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee10561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10561[];
+extern VTBL_ENTRY _ZTV7ee10561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10561[];
+static VTBL_ENTRY alt_thunk_names743[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10561 = { "ee10561", // class name
+ bases_ee10561, 4,
+ &(vtc_ee10561[0]), // expected_vtbl_contents
+ &(vtt_ee10561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10561),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10561),7, //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 ee20561 : dd0561 {
+ int e;
+ virtual void foo(); // _ZN7ee205613fooEv
+ ~ee20561(); // tgen
+ ee20561(); // tgen
+};
+//SIG(1 ee20561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20561 ::foo(){vfunc_called(this, "_ZN7ee205613fooEv");}
+ee20561 ::~ee20561(){ note_dtor("ee20561", this);} // tgen
+ee20561 ::ee20561(){ note_ctor("ee20561", this);} // tgen
+
+static void Test_ee20561()
+{
+ extern Class_Descriptor cd_ee20561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20561, buf);
+ ee20561 *dp, &lv = *(dp=new (buf) ee20561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee20561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(24,16), "ee20561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), 0, "ee20561");
+ check_base_class_offset(lv, (dd0561*), 0, "ee20561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20561.e");
+ test_class_info(&lv, &cd_ee20561);
+ dp->~ee20561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20561(Test_ee20561, "ee20561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20561C1Ev();
+extern void _ZN7ee20561D1Ev();
+Name_Map name_map_ee20561[] = {
+ NSPAIR(_ZN7ee20561C1Ev),
+ NSPAIR(_ZN7ee20561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee20561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN7ee205613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205613fooEv,_ZTv0_n12_N7ee205613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205613fooEv,_ZThn16_N7ee205613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN7ee205613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205613fooEv,_ZTv0_n12_N7ee205613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee20561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee20561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee20561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee20561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee20561[] = {
+ {&(_ZTV7ee20561[3]), 3,11},
+ {&(_tg__ZTV6dd0561__7ee20561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee20561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee20561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee20561[4]), 4,6},
+ {&(_ZTV7ee20561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20561[];
+extern VTBL_ENTRY _ZTV7ee20561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20561[];
+static VTBL_ENTRY alt_thunk_names744[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205613fooEv,_ZTv0_n12_N7ee205613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205613fooEv,_ZThn16_N7ee205613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20561 = { "ee20561", // class name
+ bases_ee20561, 4,
+ &(vtc_ee20561[0]), // expected_vtbl_contents
+ &(vtt_ee20561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20561),6, //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 ee30561 : virtual dd0561 {
+ int e;
+ virtual void foo(); // _ZN7ee305613fooEv
+ ~ee30561(); // tgen
+ ee30561(); // tgen
+};
+//SIG(1 ee30561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30561 ::foo(){vfunc_called(this, "_ZN7ee305613fooEv");}
+ee30561 ::~ee30561(){ note_dtor("ee30561", this);} // tgen
+ee30561 ::ee30561(){ note_ctor("ee30561", this);} // tgen
+
+static void Test_ee30561()
+{
+ extern Class_Descriptor cd_ee30561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30561, buf);
+ ee30561 *dp, &lv = *(dp=new (buf) ee30561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee30561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(32,20), "ee30561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), ABISELECT(16,8), "ee30561");
+ check_base_class_offset(lv, (dd0561*), ABISELECT(16,8), "ee30561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30561.e");
+ test_class_info(&lv, &cd_ee30561);
+ dp->~ee30561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30561(Test_ee30561, "ee30561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30561C1Ev();
+extern void _ZN7ee30561D1Ev();
+Name_Map name_map_ee30561[] = {
+ NSPAIR(_ZN7ee30561C1Ev),
+ NSPAIR(_ZN7ee30561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee30561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, ABISELECT(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 _ZTI7ee30561[];
+extern void _ZN7ee305613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305613fooEv,_ZTv0_n12_N7ee305613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305613fooEv,_ZThn20_N7ee305613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30561[0]),
+ (VTBL_ENTRY)&_ZN7ee305613fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305613fooEv,_ZTv0_n12_N7ee305613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee30561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee30561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee30561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee30561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee30561[] = {
+ {&(_ZTV7ee30561[4]), 4,16},
+ {&(_ZTV7ee30561[9]), 9,16},
+ {&(_ZTV7ee30561[14]), 14,16},
+ {&(_tg__ZTV6dd0561__7ee30561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee30561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee30561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee30561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30561[];
+extern VTBL_ENTRY _ZTV7ee30561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30561[];
+static VTBL_ENTRY alt_thunk_names745[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305613fooEv,_ZTv0_n12_N7ee305613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305613fooEv,_ZThn20_N7ee305613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30561 = { "ee30561", // class name
+ bases_ee30561, 4,
+ &(vtc_ee30561[0]), // expected_vtbl_contents
+ &(vtt_ee30561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30561),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names745,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40561 : dd0561 {
+ int e;
+ virtual void bar(); // _ZN7ee405613barEv
+ ~ee40561(); // tgen
+ ee40561(); // tgen
+};
+//SIG(1 ee40561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40561 ::bar(){vfunc_called(this, "_ZN7ee405613barEv");}
+ee40561 ::~ee40561(){ note_dtor("ee40561", this);} // tgen
+ee40561 ::ee40561(){ note_ctor("ee40561", this);} // tgen
+
+static void Test_ee40561()
+{
+ extern Class_Descriptor cd_ee40561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40561, buf);
+ ee40561 *dp, &lv = *(dp=new (buf) ee40561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee40561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(24,16), "ee40561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), 0, "ee40561");
+ check_base_class_offset(lv, (dd0561*), 0, "ee40561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40561.e");
+ test_class_info(&lv, &cd_ee40561);
+ dp->~ee40561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40561(Test_ee40561, "ee40561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40561C1Ev();
+extern void _ZN7ee40561D1Ev();
+Name_Map name_map_ee40561[] = {
+ NSPAIR(_ZN7ee40561C1Ev),
+ NSPAIR(_ZN7ee40561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee40561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40561[];
+extern void _ZN7ee405613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405613barEv,_ZTv0_n16_N7ee405613barEv)();
+extern void ABISELECT(_ZThn24_N7ee405613barEv,_ZThn16_N7ee405613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40561[0]),
+ (VTBL_ENTRY)&_ZN7ee405613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405613barEv,_ZTv0_n16_N7ee405613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee40561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee40561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee40561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee40561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee40561[] = {
+ {&(_ZTV7ee40561[3]), 3,10},
+ {&(_tg__ZTV6dd0561__7ee40561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee40561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee40561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee40561[4]), 4,6},
+ {&(_ZTV7ee40561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40561[];
+extern VTBL_ENTRY _ZTV7ee40561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40561[];
+static VTBL_ENTRY alt_thunk_names746[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405613barEv,_ZTv0_n16_N7ee405613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405613barEv,_ZThn16_N7ee405613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40561 = { "ee40561", // class name
+ bases_ee40561, 4,
+ &(vtc_ee40561[0]), // expected_vtbl_contents
+ &(vtt_ee40561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40561),6, //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 ee50561 : virtual dd0561 {
+ int e;
+ virtual void bar(); // _ZN7ee505613barEv
+ ~ee50561(); // tgen
+ ee50561(); // tgen
+};
+//SIG(1 ee50561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50561 ::bar(){vfunc_called(this, "_ZN7ee505613barEv");}
+ee50561 ::~ee50561(){ note_dtor("ee50561", this);} // tgen
+ee50561 ::ee50561(){ note_ctor("ee50561", this);} // tgen
+
+static void Test_ee50561()
+{
+ extern Class_Descriptor cd_ee50561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50561, buf);
+ ee50561 *dp, &lv = *(dp=new (buf) ee50561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee50561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(32,20), "ee50561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), ABISELECT(16,8), "ee50561");
+ check_base_class_offset(lv, (dd0561*), ABISELECT(16,8), "ee50561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50561.e");
+ test_class_info(&lv, &cd_ee50561);
+ dp->~ee50561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50561(Test_ee50561, "ee50561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50561C1Ev();
+extern void _ZN7ee50561D1Ev();
+Name_Map name_map_ee50561[] = {
+ NSPAIR(_ZN7ee50561C1Ev),
+ NSPAIR(_ZN7ee50561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee50561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, ABISELECT(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 _ZTI7ee50561[];
+extern void _ZN7ee505613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505613barEv,_ZTv0_n16_N7ee505613barEv)();
+extern void ABISELECT(_ZThn16_N7ee505613barEv,_ZThn8_N7ee505613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505613barEv,_ZTv0_n16_N7ee505613barEv)();
+extern void ABISELECT(_ZThn32_N7ee505613barEv,_ZThn20_N7ee505613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50561[0]),
+ (VTBL_ENTRY)&_ZN7ee505613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505613barEv,_ZTv0_n16_N7ee505613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505613barEv,_ZTv0_n16_N7ee505613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee50561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee50561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee50561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee50561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee50561[] = {
+ {&(_ZTV7ee50561[4]), 4,16},
+ {&(_ZTV7ee50561[9]), 9,16},
+ {&(_ZTV7ee50561[14]), 14,16},
+ {&(_tg__ZTV6dd0561__7ee50561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee50561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee50561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee50561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50561[];
+extern VTBL_ENTRY _ZTV7ee50561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50561[];
+static VTBL_ENTRY alt_thunk_names747[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505613barEv,_ZTv0_n16_N7ee505613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505613barEv,_ZThn20_N7ee505613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505613barEv,_ZThn8_N7ee505613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50561 = { "ee50561", // class name
+ bases_ee50561, 4,
+ &(vtc_ee50561[0]), // expected_vtbl_contents
+ &(vtt_ee50561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50561),7, //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 ee60561 : dd0561 {
+ int e;
+ virtual void foo(); // _ZN7ee605613fooEv
+ virtual void bar(); // _ZN7ee605613barEv
+ ~ee60561(); // tgen
+ ee60561(); // tgen
+};
+//SIG(1 ee60561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60561 ::foo(){vfunc_called(this, "_ZN7ee605613fooEv");}
+void ee60561 ::bar(){vfunc_called(this, "_ZN7ee605613barEv");}
+ee60561 ::~ee60561(){ note_dtor("ee60561", this);} // tgen
+ee60561 ::ee60561(){ note_ctor("ee60561", this);} // tgen
+
+static void Test_ee60561()
+{
+ extern Class_Descriptor cd_ee60561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60561, buf);
+ ee60561 *dp, &lv = *(dp=new (buf) ee60561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee60561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(24,16), "ee60561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), 0, "ee60561");
+ check_base_class_offset(lv, (dd0561*), 0, "ee60561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60561.e");
+ test_class_info(&lv, &cd_ee60561);
+ dp->~ee60561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60561(Test_ee60561, "ee60561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60561C1Ev();
+extern void _ZN7ee60561D1Ev();
+Name_Map name_map_ee60561[] = {
+ NSPAIR(_ZN7ee60561C1Ev),
+ NSPAIR(_ZN7ee60561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee60561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60561[];
+extern void _ZN7ee605613barEv();
+extern void _ZN7ee605613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605613fooEv,_ZTv0_n12_N7ee605613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605613fooEv,_ZThn16_N7ee605613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605613barEv,_ZTv0_n16_N7ee605613barEv)();
+extern void ABISELECT(_ZThn24_N7ee605613barEv,_ZThn16_N7ee605613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60561[0]),
+ (VTBL_ENTRY)&_ZN7ee605613barEv,
+ (VTBL_ENTRY)&_ZN7ee605613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605613fooEv,_ZTv0_n12_N7ee605613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605613barEv,_ZTv0_n16_N7ee605613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee60561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee60561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee60561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee60561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee60561[] = {
+ {&(_ZTV7ee60561[3]), 3,11},
+ {&(_tg__ZTV6dd0561__7ee60561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee60561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee60561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee60561[4]), 4,6},
+ {&(_ZTV7ee60561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60561[];
+extern VTBL_ENTRY _ZTV7ee60561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60561[];
+static VTBL_ENTRY alt_thunk_names748[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605613barEv,_ZTv0_n16_N7ee605613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605613barEv,_ZThn16_N7ee605613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605613fooEv,_ZTv0_n12_N7ee605613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605613fooEv,_ZThn16_N7ee605613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60561 = { "ee60561", // class name
+ bases_ee60561, 4,
+ &(vtc_ee60561[0]), // expected_vtbl_contents
+ &(vtt_ee60561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60561),6, //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 ee70561 : virtual dd0561 {
+ int e;
+ virtual void foo(); // _ZN7ee705613fooEv
+ virtual void bar(); // _ZN7ee705613barEv
+ ~ee70561(); // tgen
+ ee70561(); // tgen
+};
+//SIG(1 ee70561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70561 ::foo(){vfunc_called(this, "_ZN7ee705613fooEv");}
+void ee70561 ::bar(){vfunc_called(this, "_ZN7ee705613barEv");}
+ee70561 ::~ee70561(){ note_dtor("ee70561", this);} // tgen
+ee70561 ::ee70561(){ note_ctor("ee70561", this);} // tgen
+
+static void Test_ee70561()
+{
+ extern Class_Descriptor cd_ee70561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70561, buf);
+ ee70561 *dp, &lv = *(dp=new (buf) ee70561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee70561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd0561*), ABISELECT(32,20), "ee70561");
+ check_base_class_offset(lv, (cc561*)(dd0561*), ABISELECT(16,8), "ee70561");
+ check_base_class_offset(lv, (dd0561*), ABISELECT(16,8), "ee70561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70561.e");
+ test_class_info(&lv, &cd_ee70561);
+ dp->~ee70561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70561(Test_ee70561, "ee70561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70561C1Ev();
+extern void _ZN7ee70561D1Ev();
+Name_Map name_map_ee70561[] = {
+ NSPAIR(_ZN7ee70561C1Ev),
+ NSPAIR(_ZN7ee70561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd0561;
+extern VTBL_ENTRY _ZTI6dd0561[];
+extern VTBL_ENTRY _ZTV6dd0561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0561[];
+static Base_Class bases_ee70561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0561, 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 _ZTI7ee70561[];
+extern void _ZN7ee705613fooEv();
+extern void _ZN7ee705613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705613barEv,_ZTv0_n16_N7ee705613barEv)();
+extern void ABISELECT(_ZThn16_N7ee705613barEv,_ZThn8_N7ee705613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705613fooEv,_ZTv0_n12_N7ee705613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705613fooEv,_ZThn20_N7ee705613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705613barEv,_ZTv0_n16_N7ee705613barEv)();
+extern void ABISELECT(_ZThn32_N7ee705613barEv,_ZThn20_N7ee705613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70561[0]),
+ (VTBL_ENTRY)&_ZN7ee705613fooEv,
+ (VTBL_ENTRY)&_ZN7ee705613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705613barEv,_ZTv0_n16_N7ee705613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705613fooEv,_ZTv0_n12_N7ee705613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705613barEv,_ZTv0_n16_N7ee705613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0561__7ee70561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd0561__7ee70561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd0561__7ee70561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0561__7ee70561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee70561[] = {
+ {&(_ZTV7ee70561[4]), 4,17},
+ {&(_ZTV7ee70561[10]), 10,17},
+ {&(_ZTV7ee70561[15]), 15,17},
+ {&(_tg__ZTV6dd0561__7ee70561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd0561__7ee70561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd0561__7ee70561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0561__7ee70561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70561[];
+extern VTBL_ENTRY _ZTV7ee70561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70561[];
+static VTBL_ENTRY alt_thunk_names749[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705613fooEv,_ZTv0_n12_N7ee705613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705613fooEv,_ZThn20_N7ee705613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705613barEv,_ZTv0_n16_N7ee705613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705613barEv,_ZThn20_N7ee705613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705613barEv,_ZThn8_N7ee705613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70561 = { "ee70561", // class name
+ bases_ee70561, 4,
+ &(vtc_ee70561[0]), // expected_vtbl_contents
+ &(vtt_ee70561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70561),7, //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 dd1561 : virtual cc561 {
+ int d;
+ ~dd1561(); // tgen
+ dd1561(); // tgen
+};
+//SIG(-1 dd1561) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1561 ::~dd1561(){ note_dtor("dd1561", this);} // tgen
+dd1561 ::dd1561(){ note_ctor("dd1561", this);} // tgen
+
+static void Test_dd1561()
+{
+ extern Class_Descriptor cd_dd1561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1561, buf);
+ dd1561 *dp, &lv = *(dp=new (buf) dd1561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd1561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,16), "dd1561");
+ check_base_class_offset(lv, (cc561*), ABISELECT(16,8), "dd1561");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1561.d");
+ test_class_info(&lv, &cd_dd1561);
+ dp->~dd1561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1561(Test_dd1561, "dd1561", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1561C1Ev();
+extern void _ZN6dd1561D1Ev();
+Name_Map name_map_dd1561[] = {
+ NSPAIR(_ZN6dd1561C1Ev),
+ NSPAIR(_ZN6dd1561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd1561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(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 _ZTI6dd1561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd1561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd1561[] = {
+ {&(_ZTV6dd1561[4]), 4,15},
+ {&(_ZTV6dd1561[8]), 8,15},
+ {&(_ZTV6dd1561[13]), 13,15},
+ {&(_tg__ZTV5cc561__6dd1561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd1561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static VTBL_ENTRY alt_thunk_names750[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1561 = { "dd1561", // class name
+ bases_dd1561, 3,
+ &(vtc_dd1561[0]), // expected_vtbl_contents
+ &(vtt_dd1561[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1561),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1561),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names750,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01561 : dd1561 {
+ int e;
+ ~ee01561(); // tgen
+ ee01561(); // tgen
+};
+//SIG(1 ee01561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01561 ::~ee01561(){ note_dtor("ee01561", this);} // tgen
+ee01561 ::ee01561(){ note_ctor("ee01561", this);} // tgen
+
+static void Test_ee01561()
+{
+ extern Class_Descriptor cd_ee01561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01561, buf);
+ ee01561 *dp, &lv = *(dp=new (buf) ee01561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee01561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee01561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(16,12), "ee01561");
+ check_base_class_offset(lv, (dd1561*), 0, "ee01561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01561.e");
+ test_class_info(&lv, &cd_ee01561);
+ dp->~ee01561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01561(Test_ee01561, "ee01561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01561C1Ev();
+extern void _ZN7ee01561D1Ev();
+Name_Map name_map_ee01561[] = {
+ NSPAIR(_ZN7ee01561C1Ev),
+ NSPAIR(_ZN7ee01561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee01561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01561[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee01561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee01561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee01561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee01561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee01561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee01561[] = {
+ {&(_ZTV7ee01561[4]), 4,15},
+ {&(_tg__ZTV6dd1561__7ee01561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee01561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee01561[4]), 4,6},
+ {&(_ZTV7ee01561[8]), 8,15},
+ {&(_ZTV7ee01561[13]), 13,15},
+ {&(_tg__ZTV5cc561__7ee01561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee01561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01561[];
+extern VTBL_ENTRY _ZTV7ee01561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01561[];
+static VTBL_ENTRY alt_thunk_names751[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01561 = { "ee01561", // class name
+ bases_ee01561, 4,
+ &(vtc_ee01561[0]), // expected_vtbl_contents
+ &(vtt_ee01561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01561),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01561),8, //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 ee11561 : virtual dd1561 {
+ int e;
+ ~ee11561(); // tgen
+ ee11561(); // tgen
+};
+//SIG(1 ee11561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11561 ::~ee11561(){ note_dtor("ee11561", this);} // tgen
+ee11561 ::ee11561(){ note_ctor("ee11561", this);} // tgen
+
+static void Test_ee11561()
+{
+ extern Class_Descriptor cd_ee11561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11561, buf);
+ ee11561 *dp, &lv = *(dp=new (buf) ee11561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee11561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee11561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(32,16), "ee11561");
+ check_base_class_offset(lv, (dd1561*), ABISELECT(16,8), "ee11561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11561.e");
+ test_class_info(&lv, &cd_ee11561);
+ dp->~ee11561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11561(Test_ee11561, "ee11561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11561C1Ev();
+extern void _ZN7ee11561D1Ev();
+Name_Map name_map_ee11561[] = {
+ NSPAIR(_ZN7ee11561C1Ev),
+ NSPAIR(_ZN7ee11561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee11561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, ABISELECT(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 _ZTI7ee11561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11561[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11561[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee11561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee11561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee11561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee11561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee11561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee11561[] = {
+ {&(_ZTV7ee11561[5]), 5,20},
+ {&(_ZTV7ee11561[9]), 9,20},
+ {&(_ZTV7ee11561[13]), 13,20},
+ {&(_ZTV7ee11561[18]), 18,20},
+ {&(_tg__ZTV6dd1561__7ee11561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee11561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee11561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee11561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee11561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11561[];
+extern VTBL_ENTRY _ZTV7ee11561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11561[];
+static VTBL_ENTRY alt_thunk_names752[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11561 = { "ee11561", // class name
+ bases_ee11561, 4,
+ &(vtc_ee11561[0]), // expected_vtbl_contents
+ &(vtt_ee11561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11561),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11561),9, //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 ee21561 : dd1561 {
+ int e;
+ virtual void foo(); // _ZN7ee215613fooEv
+ ~ee21561(); // tgen
+ ee21561(); // tgen
+};
+//SIG(1 ee21561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21561 ::foo(){vfunc_called(this, "_ZN7ee215613fooEv");}
+ee21561 ::~ee21561(){ note_dtor("ee21561", this);} // tgen
+ee21561 ::ee21561(){ note_ctor("ee21561", this);} // tgen
+
+static void Test_ee21561()
+{
+ extern Class_Descriptor cd_ee21561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21561, buf);
+ ee21561 *dp, &lv = *(dp=new (buf) ee21561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee21561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee21561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(16,12), "ee21561");
+ check_base_class_offset(lv, (dd1561*), 0, "ee21561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21561.e");
+ test_class_info(&lv, &cd_ee21561);
+ dp->~ee21561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21561(Test_ee21561, "ee21561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21561C1Ev();
+extern void _ZN7ee21561D1Ev();
+Name_Map name_map_ee21561[] = {
+ NSPAIR(_ZN7ee21561C1Ev),
+ NSPAIR(_ZN7ee21561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee21561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21561[];
+extern void _ZN7ee215613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215613fooEv,_ZTv0_n12_N7ee215613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215613fooEv,_ZThn20_N7ee215613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21561[0]),
+ (VTBL_ENTRY)&_ZN7ee215613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215613fooEv,_ZTv0_n12_N7ee215613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee21561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee21561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee21561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee21561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee21561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee21561[] = {
+ {&(_ZTV7ee21561[4]), 4,16},
+ {&(_tg__ZTV6dd1561__7ee21561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee21561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee21561[4]), 4,6},
+ {&(_ZTV7ee21561[9]), 9,16},
+ {&(_ZTV7ee21561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee21561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee21561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21561[];
+extern VTBL_ENTRY _ZTV7ee21561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21561[];
+static VTBL_ENTRY alt_thunk_names753[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215613fooEv,_ZTv0_n12_N7ee215613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215613fooEv,_ZThn20_N7ee215613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21561 = { "ee21561", // class name
+ bases_ee21561, 4,
+ &(vtc_ee21561[0]), // expected_vtbl_contents
+ &(vtt_ee21561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21561),8, //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 ee31561 : virtual dd1561 {
+ int e;
+ virtual void foo(); // _ZN7ee315613fooEv
+ ~ee31561(); // tgen
+ ee31561(); // tgen
+};
+//SIG(1 ee31561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31561 ::foo(){vfunc_called(this, "_ZN7ee315613fooEv");}
+ee31561 ::~ee31561(){ note_dtor("ee31561", this);} // tgen
+ee31561 ::ee31561(){ note_ctor("ee31561", this);} // tgen
+
+static void Test_ee31561()
+{
+ extern Class_Descriptor cd_ee31561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31561, buf);
+ ee31561 *dp, &lv = *(dp=new (buf) ee31561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee31561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee31561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(32,16), "ee31561");
+ check_base_class_offset(lv, (dd1561*), ABISELECT(16,8), "ee31561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31561.e");
+ test_class_info(&lv, &cd_ee31561);
+ dp->~ee31561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31561(Test_ee31561, "ee31561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31561C1Ev();
+extern void _ZN7ee31561D1Ev();
+Name_Map name_map_ee31561[] = {
+ NSPAIR(_ZN7ee31561C1Ev),
+ NSPAIR(_ZN7ee31561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee31561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 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 _ZTI7ee31561[];
+extern void _ZN7ee315613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315613fooEv,_ZTv0_n12_N7ee315613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315613fooEv,_ZThn24_N7ee315613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31561[0]),
+ (VTBL_ENTRY)&_ZN7ee315613fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31561[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315613fooEv,_ZTv0_n12_N7ee315613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee31561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee31561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee31561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee31561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee31561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee31561[] = {
+ {&(_ZTV7ee31561[5]), 5,21},
+ {&(_ZTV7ee31561[10]), 10,21},
+ {&(_ZTV7ee31561[14]), 14,21},
+ {&(_ZTV7ee31561[19]), 19,21},
+ {&(_tg__ZTV6dd1561__7ee31561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee31561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee31561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee31561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee31561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31561[];
+extern VTBL_ENTRY _ZTV7ee31561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31561[];
+static VTBL_ENTRY alt_thunk_names754[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315613fooEv,_ZTv0_n12_N7ee315613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315613fooEv,_ZThn24_N7ee315613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31561 = { "ee31561", // class name
+ bases_ee31561, 4,
+ &(vtc_ee31561[0]), // expected_vtbl_contents
+ &(vtt_ee31561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31561),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31561),9, //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 ee41561 : dd1561 {
+ int e;
+ virtual void bar(); // _ZN7ee415613barEv
+ ~ee41561(); // tgen
+ ee41561(); // tgen
+};
+//SIG(1 ee41561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41561 ::bar(){vfunc_called(this, "_ZN7ee415613barEv");}
+ee41561 ::~ee41561(){ note_dtor("ee41561", this);} // tgen
+ee41561 ::ee41561(){ note_ctor("ee41561", this);} // tgen
+
+static void Test_ee41561()
+{
+ extern Class_Descriptor cd_ee41561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41561, buf);
+ ee41561 *dp, &lv = *(dp=new (buf) ee41561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee41561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee41561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(16,12), "ee41561");
+ check_base_class_offset(lv, (dd1561*), 0, "ee41561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41561.e");
+ test_class_info(&lv, &cd_ee41561);
+ dp->~ee41561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41561(Test_ee41561, "ee41561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41561C1Ev();
+extern void _ZN7ee41561D1Ev();
+Name_Map name_map_ee41561[] = {
+ NSPAIR(_ZN7ee41561C1Ev),
+ NSPAIR(_ZN7ee41561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee41561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41561[];
+extern void _ZN7ee415613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415613barEv,_ZTv0_n16_N7ee415613barEv)();
+extern void ABISELECT(_ZThn16_N7ee415613barEv,_ZThn12_N7ee415613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415613barEv,_ZTv0_n16_N7ee415613barEv)();
+extern void ABISELECT(_ZThn32_N7ee415613barEv,_ZThn20_N7ee415613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41561[0]),
+ (VTBL_ENTRY)&_ZN7ee415613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415613barEv,_ZTv0_n16_N7ee415613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415613barEv,_ZTv0_n16_N7ee415613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee41561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee41561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee41561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee41561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee41561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee41561[] = {
+ {&(_ZTV7ee41561[4]), 4,16},
+ {&(_tg__ZTV6dd1561__7ee41561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee41561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee41561[4]), 4,6},
+ {&(_ZTV7ee41561[9]), 9,16},
+ {&(_ZTV7ee41561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee41561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee41561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41561[];
+extern VTBL_ENTRY _ZTV7ee41561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41561[];
+static VTBL_ENTRY alt_thunk_names755[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415613barEv,_ZTv0_n16_N7ee415613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415613barEv,_ZThn20_N7ee415613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415613barEv,_ZThn12_N7ee415613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41561 = { "ee41561", // class name
+ bases_ee41561, 4,
+ &(vtc_ee41561[0]), // expected_vtbl_contents
+ &(vtt_ee41561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41561),8, //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 ee51561 : virtual dd1561 {
+ int e;
+ virtual void bar(); // _ZN7ee515613barEv
+ ~ee51561(); // tgen
+ ee51561(); // tgen
+};
+//SIG(1 ee51561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51561 ::bar(){vfunc_called(this, "_ZN7ee515613barEv");}
+ee51561 ::~ee51561(){ note_dtor("ee51561", this);} // tgen
+ee51561 ::ee51561(){ note_ctor("ee51561", this);} // tgen
+
+static void Test_ee51561()
+{
+ extern Class_Descriptor cd_ee51561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51561, buf);
+ ee51561 *dp, &lv = *(dp=new (buf) ee51561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee51561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee51561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(32,16), "ee51561");
+ check_base_class_offset(lv, (dd1561*), ABISELECT(16,8), "ee51561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51561.e");
+ test_class_info(&lv, &cd_ee51561);
+ dp->~ee51561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51561(Test_ee51561, "ee51561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51561C1Ev();
+extern void _ZN7ee51561D1Ev();
+Name_Map name_map_ee51561[] = {
+ NSPAIR(_ZN7ee51561C1Ev),
+ NSPAIR(_ZN7ee51561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee51561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 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 _ZTI7ee51561[];
+extern void _ZN7ee515613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515613barEv,_ZTv0_n16_N7ee515613barEv)();
+extern void ABISELECT(_ZThn32_N7ee515613barEv,_ZThn16_N7ee515613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515613barEv,_ZTv0_n16_N7ee515613barEv)();
+extern void ABISELECT(_ZThn48_N7ee515613barEv,_ZThn24_N7ee515613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51561[0]),
+ (VTBL_ENTRY)&_ZN7ee515613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51561[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515613barEv,_ZTv0_n16_N7ee515613barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515613barEv,_ZTv0_n16_N7ee515613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee51561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee51561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee51561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee51561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee51561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee51561[] = {
+ {&(_ZTV7ee51561[5]), 5,21},
+ {&(_ZTV7ee51561[10]), 10,21},
+ {&(_ZTV7ee51561[14]), 14,21},
+ {&(_ZTV7ee51561[19]), 19,21},
+ {&(_tg__ZTV6dd1561__7ee51561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee51561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee51561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee51561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee51561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51561[];
+extern VTBL_ENTRY _ZTV7ee51561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51561[];
+static VTBL_ENTRY alt_thunk_names756[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515613barEv,_ZTv0_n16_N7ee515613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515613barEv,_ZThn24_N7ee515613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515613barEv,_ZThn16_N7ee515613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51561 = { "ee51561", // class name
+ bases_ee51561, 4,
+ &(vtc_ee51561[0]), // expected_vtbl_contents
+ &(vtt_ee51561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51561),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51561),9, //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 ee61561 : dd1561 {
+ int e;
+ virtual void foo(); // _ZN7ee615613fooEv
+ virtual void bar(); // _ZN7ee615613barEv
+ ~ee61561(); // tgen
+ ee61561(); // tgen
+};
+//SIG(1 ee61561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61561 ::foo(){vfunc_called(this, "_ZN7ee615613fooEv");}
+void ee61561 ::bar(){vfunc_called(this, "_ZN7ee615613barEv");}
+ee61561 ::~ee61561(){ note_dtor("ee61561", this);} // tgen
+ee61561 ::ee61561(){ note_ctor("ee61561", this);} // tgen
+
+static void Test_ee61561()
+{
+ extern Class_Descriptor cd_ee61561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61561, buf);
+ ee61561 *dp, &lv = *(dp=new (buf) ee61561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee61561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee61561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(16,12), "ee61561");
+ check_base_class_offset(lv, (dd1561*), 0, "ee61561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61561.e");
+ test_class_info(&lv, &cd_ee61561);
+ dp->~ee61561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61561(Test_ee61561, "ee61561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61561C1Ev();
+extern void _ZN7ee61561D1Ev();
+Name_Map name_map_ee61561[] = {
+ NSPAIR(_ZN7ee61561C1Ev),
+ NSPAIR(_ZN7ee61561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee61561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61561[];
+extern void _ZN7ee615613fooEv();
+extern void _ZN7ee615613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615613barEv,_ZTv0_n16_N7ee615613barEv)();
+extern void ABISELECT(_ZThn16_N7ee615613barEv,_ZThn12_N7ee615613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615613fooEv,_ZTv0_n12_N7ee615613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615613fooEv,_ZThn20_N7ee615613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615613barEv,_ZTv0_n16_N7ee615613barEv)();
+extern void ABISELECT(_ZThn32_N7ee615613barEv,_ZThn20_N7ee615613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61561[0]),
+ (VTBL_ENTRY)&_ZN7ee615613fooEv,
+ (VTBL_ENTRY)&_ZN7ee615613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615613barEv,_ZTv0_n16_N7ee615613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615613fooEv,_ZTv0_n12_N7ee615613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615613barEv,_ZTv0_n16_N7ee615613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee61561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee61561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee61561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee61561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee61561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee61561[] = {
+ {&(_ZTV7ee61561[4]), 4,17},
+ {&(_tg__ZTV6dd1561__7ee61561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee61561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee61561[4]), 4,6},
+ {&(_ZTV7ee61561[10]), 10,17},
+ {&(_ZTV7ee61561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee61561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee61561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61561[];
+extern VTBL_ENTRY _ZTV7ee61561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61561[];
+static VTBL_ENTRY alt_thunk_names757[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615613fooEv,_ZTv0_n12_N7ee615613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615613fooEv,_ZThn20_N7ee615613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615613barEv,_ZTv0_n16_N7ee615613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615613barEv,_ZThn20_N7ee615613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615613barEv,_ZThn12_N7ee615613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61561 = { "ee61561", // class name
+ bases_ee61561, 4,
+ &(vtc_ee61561[0]), // expected_vtbl_contents
+ &(vtt_ee61561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61561),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names757,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71561 : virtual dd1561 {
+ int e;
+ virtual void foo(); // _ZN7ee715613fooEv
+ virtual void bar(); // _ZN7ee715613barEv
+ ~ee71561(); // tgen
+ ee71561(); // tgen
+};
+//SIG(1 ee71561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71561 ::foo(){vfunc_called(this, "_ZN7ee715613fooEv");}
+void ee71561 ::bar(){vfunc_called(this, "_ZN7ee715613barEv");}
+ee71561 ::~ee71561(){ note_dtor("ee71561", this);} // tgen
+ee71561 ::ee71561(){ note_ctor("ee71561", this);} // tgen
+
+static void Test_ee71561()
+{
+ extern Class_Descriptor cd_ee71561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71561, buf);
+ ee71561 *dp, &lv = *(dp=new (buf) ee71561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee71561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee71561");
+ check_base_class_offset(lv, (cc561*)(dd1561*), ABISELECT(32,16), "ee71561");
+ check_base_class_offset(lv, (dd1561*), ABISELECT(16,8), "ee71561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71561.e");
+ test_class_info(&lv, &cd_ee71561);
+ dp->~ee71561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71561(Test_ee71561, "ee71561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71561C1Ev();
+extern void _ZN7ee71561D1Ev();
+Name_Map name_map_ee71561[] = {
+ NSPAIR(_ZN7ee71561C1Ev),
+ NSPAIR(_ZN7ee71561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd1561;
+extern VTBL_ENTRY _ZTI6dd1561[];
+extern VTBL_ENTRY _ZTV6dd1561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1561[];
+static Base_Class bases_ee71561[] = {
+ // 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_bb61, 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_cc561, 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_dd1561, 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 _ZTI7ee71561[];
+extern void _ZN7ee715613fooEv();
+extern void _ZN7ee715613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715613barEv,_ZTv0_n16_N7ee715613barEv)();
+extern void ABISELECT(_ZThn32_N7ee715613barEv,_ZThn16_N7ee715613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715613fooEv,_ZTv0_n12_N7ee715613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715613fooEv,_ZThn24_N7ee715613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715613barEv,_ZTv0_n16_N7ee715613barEv)();
+extern void ABISELECT(_ZThn48_N7ee715613barEv,_ZThn24_N7ee715613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71561[0]),
+ (VTBL_ENTRY)&_ZN7ee715613fooEv,
+ (VTBL_ENTRY)&_ZN7ee715613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71561[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715613barEv,_ZTv0_n16_N7ee715613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715613fooEv,_ZTv0_n12_N7ee715613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715613barEv,_ZTv0_n16_N7ee715613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71561[];
+static VTBL_ENTRY _tg__ZTV6dd1561__7ee71561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd1561__7ee71561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1561__7ee71561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee71561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee71561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee71561[] = {
+ {&(_ZTV7ee71561[5]), 5,22},
+ {&(_ZTV7ee71561[11]), 11,22},
+ {&(_ZTV7ee71561[15]), 15,22},
+ {&(_ZTV7ee71561[20]), 20,22},
+ {&(_tg__ZTV6dd1561__7ee71561[4]), 4,4},
+ {&(_tg__ZTV5cc561__6dd1561__7ee71561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd1561__7ee71561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee71561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee71561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71561[];
+extern VTBL_ENTRY _ZTV7ee71561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71561[];
+static VTBL_ENTRY alt_thunk_names758[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715613fooEv,_ZTv0_n12_N7ee715613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715613fooEv,_ZThn24_N7ee715613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715613barEv,_ZTv0_n16_N7ee715613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715613barEv,_ZThn24_N7ee715613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715613barEv,_ZThn16_N7ee715613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71561 = { "ee71561", // class name
+ bases_ee71561, 4,
+ &(vtc_ee71561[0]), // expected_vtbl_contents
+ &(vtt_ee71561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71561),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71561),9, //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 dd2561 : cc561 {
+ int d;
+ virtual void foo(); // _ZN6dd25613fooEv
+ ~dd2561(); // tgen
+ dd2561(); // tgen
+};
+//SIG(-1 dd2561) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2561 ::foo(){vfunc_called(this, "_ZN6dd25613fooEv");}
+dd2561 ::~dd2561(){ note_dtor("dd2561", this);} // tgen
+dd2561 ::dd2561(){ note_ctor("dd2561", this);} // tgen
+
+static void Test_dd2561()
+{
+ extern Class_Descriptor cd_dd2561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2561, buf);
+ dd2561 *dp, &lv = *(dp=new (buf) dd2561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd2561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(16,12), "dd2561");
+ check_base_class_offset(lv, (cc561*), 0, "dd2561");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2561.d");
+ test_class_info(&lv, &cd_dd2561);
+ dp->~dd2561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2561(Test_dd2561, "dd2561", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2561C1Ev();
+extern void _ZN6dd2561D1Ev();
+Name_Map name_map_dd2561[] = {
+ NSPAIR(_ZN6dd2561C1Ev),
+ NSPAIR(_ZN6dd2561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd2561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd2561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd2561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd2561[] = {
+ {&(_ZTV6dd2561[3]), 3,11},
+ {&(_tg__ZTV5cc561__6dd2561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd2561[4]), 4,6},
+ {&(_ZTV6dd2561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static VTBL_ENTRY alt_thunk_names759[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2561 = { "dd2561", // class name
+ bases_dd2561, 3,
+ &(vtc_dd2561[0]), // expected_vtbl_contents
+ &(vtt_dd2561[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2561),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names759,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02561 : dd2561 {
+ int e;
+ ~ee02561(); // tgen
+ ee02561(); // tgen
+};
+//SIG(1 ee02561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02561 ::~ee02561(){ note_dtor("ee02561", this);} // tgen
+ee02561 ::ee02561(){ note_ctor("ee02561", this);} // tgen
+
+static void Test_ee02561()
+{
+ extern Class_Descriptor cd_ee02561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02561, buf);
+ ee02561 *dp, &lv = *(dp=new (buf) ee02561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee02561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(24,16), "ee02561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), 0, "ee02561");
+ check_base_class_offset(lv, (dd2561*), 0, "ee02561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02561.e");
+ test_class_info(&lv, &cd_ee02561);
+ dp->~ee02561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02561(Test_ee02561, "ee02561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02561C1Ev();
+extern void _ZN7ee02561D1Ev();
+Name_Map name_map_ee02561[] = {
+ NSPAIR(_ZN7ee02561C1Ev),
+ NSPAIR(_ZN7ee02561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee02561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee02561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee02561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee02561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee02561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee02561[] = {
+ {&(_ZTV7ee02561[3]), 3,11},
+ {&(_tg__ZTV6dd2561__7ee02561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee02561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee02561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee02561[4]), 4,6},
+ {&(_ZTV7ee02561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02561[];
+extern VTBL_ENTRY _ZTV7ee02561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02561[];
+static VTBL_ENTRY alt_thunk_names760[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02561 = { "ee02561", // class name
+ bases_ee02561, 4,
+ &(vtc_ee02561[0]), // expected_vtbl_contents
+ &(vtt_ee02561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02561),6, //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 ee12561 : virtual dd2561 {
+ int e;
+ ~ee12561(); // tgen
+ ee12561(); // tgen
+};
+//SIG(1 ee12561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12561 ::~ee12561(){ note_dtor("ee12561", this);} // tgen
+ee12561 ::ee12561(){ note_ctor("ee12561", this);} // tgen
+
+static void Test_ee12561()
+{
+ extern Class_Descriptor cd_ee12561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12561, buf);
+ ee12561 *dp, &lv = *(dp=new (buf) ee12561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee12561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(32,20), "ee12561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), ABISELECT(16,8), "ee12561");
+ check_base_class_offset(lv, (dd2561*), ABISELECT(16,8), "ee12561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12561.e");
+ test_class_info(&lv, &cd_ee12561);
+ dp->~ee12561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12561(Test_ee12561, "ee12561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12561C1Ev();
+extern void _ZN7ee12561D1Ev();
+Name_Map name_map_ee12561[] = {
+ NSPAIR(_ZN7ee12561C1Ev),
+ NSPAIR(_ZN7ee12561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee12561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, 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 _ZTI7ee12561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12561[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee12561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee12561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee12561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee12561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee12561[] = {
+ {&(_ZTV7ee12561[4]), 4,17},
+ {&(_ZTV7ee12561[9]), 9,17},
+ {&(_ZTV7ee12561[15]), 15,17},
+ {&(_tg__ZTV6dd2561__7ee12561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee12561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee12561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee12561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12561[];
+extern VTBL_ENTRY _ZTV7ee12561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12561[];
+static VTBL_ENTRY alt_thunk_names761[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12561 = { "ee12561", // class name
+ bases_ee12561, 4,
+ &(vtc_ee12561[0]), // expected_vtbl_contents
+ &(vtt_ee12561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12561),7, //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 ee22561 : dd2561 {
+ int e;
+ virtual void foo(); // _ZN7ee225613fooEv
+ ~ee22561(); // tgen
+ ee22561(); // tgen
+};
+//SIG(1 ee22561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22561 ::foo(){vfunc_called(this, "_ZN7ee225613fooEv");}
+ee22561 ::~ee22561(){ note_dtor("ee22561", this);} // tgen
+ee22561 ::ee22561(){ note_ctor("ee22561", this);} // tgen
+
+static void Test_ee22561()
+{
+ extern Class_Descriptor cd_ee22561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22561, buf);
+ ee22561 *dp, &lv = *(dp=new (buf) ee22561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee22561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(24,16), "ee22561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), 0, "ee22561");
+ check_base_class_offset(lv, (dd2561*), 0, "ee22561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22561.e");
+ test_class_info(&lv, &cd_ee22561);
+ dp->~ee22561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22561(Test_ee22561, "ee22561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22561C1Ev();
+extern void _ZN7ee22561D1Ev();
+Name_Map name_map_ee22561[] = {
+ NSPAIR(_ZN7ee22561C1Ev),
+ NSPAIR(_ZN7ee22561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee22561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN7ee225613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225613fooEv,_ZTv0_n12_N7ee225613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225613fooEv,_ZThn16_N7ee225613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN7ee225613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225613fooEv,_ZTv0_n12_N7ee225613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee22561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee22561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee22561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee22561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee22561[] = {
+ {&(_ZTV7ee22561[3]), 3,11},
+ {&(_tg__ZTV6dd2561__7ee22561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee22561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee22561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee22561[4]), 4,6},
+ {&(_ZTV7ee22561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22561[];
+extern VTBL_ENTRY _ZTV7ee22561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22561[];
+static VTBL_ENTRY alt_thunk_names762[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225613fooEv,_ZTv0_n12_N7ee225613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225613fooEv,_ZThn16_N7ee225613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22561 = { "ee22561", // class name
+ bases_ee22561, 4,
+ &(vtc_ee22561[0]), // expected_vtbl_contents
+ &(vtt_ee22561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22561),6, //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 ee32561 : virtual dd2561 {
+ int e;
+ virtual void foo(); // _ZN7ee325613fooEv
+ ~ee32561(); // tgen
+ ee32561(); // tgen
+};
+//SIG(1 ee32561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32561 ::foo(){vfunc_called(this, "_ZN7ee325613fooEv");}
+ee32561 ::~ee32561(){ note_dtor("ee32561", this);} // tgen
+ee32561 ::ee32561(){ note_ctor("ee32561", this);} // tgen
+
+static void Test_ee32561()
+{
+ extern Class_Descriptor cd_ee32561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32561, buf);
+ ee32561 *dp, &lv = *(dp=new (buf) ee32561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee32561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(32,20), "ee32561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), ABISELECT(16,8), "ee32561");
+ check_base_class_offset(lv, (dd2561*), ABISELECT(16,8), "ee32561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32561.e");
+ test_class_info(&lv, &cd_ee32561);
+ dp->~ee32561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32561(Test_ee32561, "ee32561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32561C1Ev();
+extern void _ZN7ee32561D1Ev();
+Name_Map name_map_ee32561[] = {
+ NSPAIR(_ZN7ee32561C1Ev),
+ NSPAIR(_ZN7ee32561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee32561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, ABISELECT(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 _ZTI7ee32561[];
+extern void _ZN7ee325613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325613fooEv,_ZTv0_n20_N7ee325613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325613fooEv,_ZThn8_N7ee325613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325613fooEv,_ZTv0_n12_N7ee325613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325613fooEv,_ZThn20_N7ee325613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32561[0]),
+ (VTBL_ENTRY)&_ZN7ee325613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325613fooEv,_ZTv0_n20_N7ee325613fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325613fooEv,_ZTv0_n12_N7ee325613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee32561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee32561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee32561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee32561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee32561[] = {
+ {&(_ZTV7ee32561[4]), 4,18},
+ {&(_ZTV7ee32561[10]), 10,18},
+ {&(_ZTV7ee32561[16]), 16,18},
+ {&(_tg__ZTV6dd2561__7ee32561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee32561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee32561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee32561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32561[];
+extern VTBL_ENTRY _ZTV7ee32561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32561[];
+static VTBL_ENTRY alt_thunk_names763[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325613fooEv,_ZTv0_n12_N7ee325613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325613fooEv,_ZThn20_N7ee325613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325613fooEv,_ZTv0_n20_N7ee325613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325613fooEv,_ZThn8_N7ee325613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32561 = { "ee32561", // class name
+ bases_ee32561, 4,
+ &(vtc_ee32561[0]), // expected_vtbl_contents
+ &(vtt_ee32561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32561),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32561),7, //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 ee42561 : dd2561 {
+ int e;
+ virtual void bar(); // _ZN7ee425613barEv
+ ~ee42561(); // tgen
+ ee42561(); // tgen
+};
+//SIG(1 ee42561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42561 ::bar(){vfunc_called(this, "_ZN7ee425613barEv");}
+ee42561 ::~ee42561(){ note_dtor("ee42561", this);} // tgen
+ee42561 ::ee42561(){ note_ctor("ee42561", this);} // tgen
+
+static void Test_ee42561()
+{
+ extern Class_Descriptor cd_ee42561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42561, buf);
+ ee42561 *dp, &lv = *(dp=new (buf) ee42561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee42561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(24,16), "ee42561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), 0, "ee42561");
+ check_base_class_offset(lv, (dd2561*), 0, "ee42561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42561.e");
+ test_class_info(&lv, &cd_ee42561);
+ dp->~ee42561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42561(Test_ee42561, "ee42561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42561C1Ev();
+extern void _ZN7ee42561D1Ev();
+Name_Map name_map_ee42561[] = {
+ NSPAIR(_ZN7ee42561C1Ev),
+ NSPAIR(_ZN7ee42561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee42561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42561[];
+extern void _ZN7ee425613barEv();
+extern void _ZN6dd25613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee425613barEv,_ZTv0_n16_N7ee425613barEv)();
+extern void ABISELECT(_ZThn24_N7ee425613barEv,_ZThn16_N7ee425613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42561[0]),
+ (VTBL_ENTRY)&_ZN7ee425613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425613barEv,_ZTv0_n16_N7ee425613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee42561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee42561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee42561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee42561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee42561[] = {
+ {&(_ZTV7ee42561[3]), 3,11},
+ {&(_tg__ZTV6dd2561__7ee42561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee42561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee42561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee42561[4]), 4,6},
+ {&(_ZTV7ee42561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42561[];
+extern VTBL_ENTRY _ZTV7ee42561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42561[];
+static VTBL_ENTRY alt_thunk_names764[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425613barEv,_ZTv0_n16_N7ee425613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425613barEv,_ZThn16_N7ee425613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42561 = { "ee42561", // class name
+ bases_ee42561, 4,
+ &(vtc_ee42561[0]), // expected_vtbl_contents
+ &(vtt_ee42561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42561),6, //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 ee52561 : virtual dd2561 {
+ int e;
+ virtual void bar(); // _ZN7ee525613barEv
+ ~ee52561(); // tgen
+ ee52561(); // tgen
+};
+//SIG(1 ee52561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52561 ::bar(){vfunc_called(this, "_ZN7ee525613barEv");}
+ee52561 ::~ee52561(){ note_dtor("ee52561", this);} // tgen
+ee52561 ::ee52561(){ note_ctor("ee52561", this);} // tgen
+
+static void Test_ee52561()
+{
+ extern Class_Descriptor cd_ee52561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52561, buf);
+ ee52561 *dp, &lv = *(dp=new (buf) ee52561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee52561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(32,20), "ee52561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), ABISELECT(16,8), "ee52561");
+ check_base_class_offset(lv, (dd2561*), ABISELECT(16,8), "ee52561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52561.e");
+ test_class_info(&lv, &cd_ee52561);
+ dp->~ee52561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52561(Test_ee52561, "ee52561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52561C1Ev();
+extern void _ZN7ee52561D1Ev();
+Name_Map name_map_ee52561[] = {
+ NSPAIR(_ZN7ee52561C1Ev),
+ NSPAIR(_ZN7ee52561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee52561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, ABISELECT(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 _ZTI7ee52561[];
+extern void _ZN7ee525613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525613barEv,_ZTv0_n16_N7ee525613barEv)();
+extern void ABISELECT(_ZThn16_N7ee525613barEv,_ZThn8_N7ee525613barEv)() __attribute__((weak));
+extern void _ZN6dd25613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee525613barEv,_ZTv0_n16_N7ee525613barEv)();
+extern void ABISELECT(_ZThn32_N7ee525613barEv,_ZThn20_N7ee525613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52561[0]),
+ (VTBL_ENTRY)&_ZN7ee525613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525613barEv,_ZTv0_n16_N7ee525613barEv),
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525613barEv,_ZTv0_n16_N7ee525613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee52561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee52561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee52561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee52561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee52561[] = {
+ {&(_ZTV7ee52561[4]), 4,18},
+ {&(_ZTV7ee52561[10]), 10,18},
+ {&(_ZTV7ee52561[16]), 16,18},
+ {&(_tg__ZTV6dd2561__7ee52561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee52561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee52561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee52561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52561[];
+extern VTBL_ENTRY _ZTV7ee52561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52561[];
+static VTBL_ENTRY alt_thunk_names765[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525613barEv,_ZTv0_n16_N7ee525613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525613barEv,_ZThn20_N7ee525613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525613barEv,_ZThn8_N7ee525613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52561 = { "ee52561", // class name
+ bases_ee52561, 4,
+ &(vtc_ee52561[0]), // expected_vtbl_contents
+ &(vtt_ee52561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52561),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52561),7, //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 ee62561 : dd2561 {
+ int e;
+ virtual void foo(); // _ZN7ee625613fooEv
+ virtual void bar(); // _ZN7ee625613barEv
+ ~ee62561(); // tgen
+ ee62561(); // tgen
+};
+//SIG(1 ee62561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62561 ::foo(){vfunc_called(this, "_ZN7ee625613fooEv");}
+void ee62561 ::bar(){vfunc_called(this, "_ZN7ee625613barEv");}
+ee62561 ::~ee62561(){ note_dtor("ee62561", this);} // tgen
+ee62561 ::ee62561(){ note_ctor("ee62561", this);} // tgen
+
+static void Test_ee62561()
+{
+ extern Class_Descriptor cd_ee62561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62561, buf);
+ ee62561 *dp, &lv = *(dp=new (buf) ee62561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee62561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(24,16), "ee62561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), 0, "ee62561");
+ check_base_class_offset(lv, (dd2561*), 0, "ee62561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62561.e");
+ test_class_info(&lv, &cd_ee62561);
+ dp->~ee62561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62561(Test_ee62561, "ee62561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62561C1Ev();
+extern void _ZN7ee62561D1Ev();
+Name_Map name_map_ee62561[] = {
+ NSPAIR(_ZN7ee62561C1Ev),
+ NSPAIR(_ZN7ee62561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee62561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62561[];
+extern void _ZN7ee625613barEv();
+extern void _ZN7ee625613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625613fooEv,_ZTv0_n12_N7ee625613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625613fooEv,_ZThn16_N7ee625613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625613barEv,_ZTv0_n16_N7ee625613barEv)();
+extern void ABISELECT(_ZThn24_N7ee625613barEv,_ZThn16_N7ee625613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62561[0]),
+ (VTBL_ENTRY)&_ZN7ee625613barEv,
+ (VTBL_ENTRY)&_ZN7ee625613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625613fooEv,_ZTv0_n12_N7ee625613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625613barEv,_ZTv0_n16_N7ee625613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee62561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee62561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee62561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee62561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee62561[] = {
+ {&(_ZTV7ee62561[3]), 3,11},
+ {&(_tg__ZTV6dd2561__7ee62561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee62561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee62561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee62561[4]), 4,6},
+ {&(_ZTV7ee62561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62561[];
+extern VTBL_ENTRY _ZTV7ee62561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62561[];
+static VTBL_ENTRY alt_thunk_names766[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25613fooEv,_ZThn16_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625613barEv,_ZTv0_n16_N7ee625613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625613barEv,_ZThn16_N7ee625613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625613fooEv,_ZTv0_n12_N7ee625613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625613fooEv,_ZThn16_N7ee625613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62561 = { "ee62561", // class name
+ bases_ee62561, 4,
+ &(vtc_ee62561[0]), // expected_vtbl_contents
+ &(vtt_ee62561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62561),6, //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 ee72561 : virtual dd2561 {
+ int e;
+ virtual void foo(); // _ZN7ee725613fooEv
+ virtual void bar(); // _ZN7ee725613barEv
+ ~ee72561(); // tgen
+ ee72561(); // tgen
+};
+//SIG(1 ee72561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72561 ::foo(){vfunc_called(this, "_ZN7ee725613fooEv");}
+void ee72561 ::bar(){vfunc_called(this, "_ZN7ee725613barEv");}
+ee72561 ::~ee72561(){ note_dtor("ee72561", this);} // tgen
+ee72561 ::ee72561(){ note_ctor("ee72561", this);} // tgen
+
+static void Test_ee72561()
+{
+ extern Class_Descriptor cd_ee72561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72561, buf);
+ ee72561 *dp, &lv = *(dp=new (buf) ee72561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee72561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd2561*), ABISELECT(32,20), "ee72561");
+ check_base_class_offset(lv, (cc561*)(dd2561*), ABISELECT(16,8), "ee72561");
+ check_base_class_offset(lv, (dd2561*), ABISELECT(16,8), "ee72561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72561.e");
+ test_class_info(&lv, &cd_ee72561);
+ dp->~ee72561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72561(Test_ee72561, "ee72561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72561C1Ev();
+extern void _ZN7ee72561D1Ev();
+Name_Map name_map_ee72561[] = {
+ NSPAIR(_ZN7ee72561C1Ev),
+ NSPAIR(_ZN7ee72561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd2561;
+extern VTBL_ENTRY _ZTI6dd2561[];
+extern VTBL_ENTRY _ZTV6dd2561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2561[];
+static Base_Class bases_ee72561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2561, ABISELECT(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 _ZTI7ee72561[];
+extern void _ZN7ee725613fooEv();
+extern void _ZN7ee725613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725613barEv,_ZTv0_n16_N7ee725613barEv)();
+extern void ABISELECT(_ZThn16_N7ee725613barEv,_ZThn8_N7ee725613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725613fooEv,_ZTv0_n20_N7ee725613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725613fooEv,_ZThn8_N7ee725613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725613fooEv,_ZTv0_n12_N7ee725613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725613fooEv,_ZThn20_N7ee725613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725613barEv,_ZTv0_n16_N7ee725613barEv)();
+extern void ABISELECT(_ZThn32_N7ee725613barEv,_ZThn20_N7ee725613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72561[0]),
+ (VTBL_ENTRY)&_ZN7ee725613fooEv,
+ (VTBL_ENTRY)&_ZN7ee725613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725613barEv,_ZTv0_n16_N7ee725613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725613fooEv,_ZTv0_n20_N7ee725613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725613fooEv,_ZTv0_n12_N7ee725613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725613barEv,_ZTv0_n16_N7ee725613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72561[];
+extern void _ZN5cc5613barEv();
+extern void _ZN6dd25613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2561__7ee72561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ (VTBL_ENTRY)&_ZN6dd25613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd2561__7ee72561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd2561__7ee72561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2561__7ee72561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee72561[] = {
+ {&(_ZTV7ee72561[4]), 4,19},
+ {&(_ZTV7ee72561[11]), 11,19},
+ {&(_ZTV7ee72561[17]), 17,19},
+ {&(_tg__ZTV6dd2561__7ee72561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd2561__7ee72561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd2561__7ee72561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2561__7ee72561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72561[];
+extern VTBL_ENTRY _ZTV7ee72561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72561[];
+static VTBL_ENTRY alt_thunk_names767[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25613fooEv,_ZTv0_n12_N6dd25613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25613fooEv,_ZThn12_N6dd25613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725613fooEv,_ZTv0_n12_N7ee725613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725613fooEv,_ZThn20_N7ee725613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725613fooEv,_ZTv0_n20_N7ee725613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725613fooEv,_ZThn8_N7ee725613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725613barEv,_ZTv0_n16_N7ee725613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725613barEv,_ZThn20_N7ee725613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725613barEv,_ZThn8_N7ee725613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72561 = { "ee72561", // class name
+ bases_ee72561, 4,
+ &(vtc_ee72561[0]), // expected_vtbl_contents
+ &(vtt_ee72561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72561),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72561),7, //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 dd3561 : virtual cc561 {
+ int d;
+ virtual void foo(); // _ZN6dd35613fooEv
+ ~dd3561(); // tgen
+ dd3561(); // tgen
+};
+//SIG(-1 dd3561) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3561 ::foo(){vfunc_called(this, "_ZN6dd35613fooEv");}
+dd3561 ::~dd3561(){ note_dtor("dd3561", this);} // tgen
+dd3561 ::dd3561(){ note_ctor("dd3561", this);} // tgen
+
+static void Test_dd3561()
+{
+ extern Class_Descriptor cd_dd3561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3561, buf);
+ dd3561 *dp, &lv = *(dp=new (buf) dd3561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd3561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,16), "dd3561");
+ check_base_class_offset(lv, (cc561*), ABISELECT(16,8), "dd3561");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3561.d");
+ test_class_info(&lv, &cd_dd3561);
+ dp->~dd3561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3561(Test_dd3561, "dd3561", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3561C1Ev();
+extern void _ZN6dd3561D1Ev();
+Name_Map name_map_dd3561[] = {
+ NSPAIR(_ZN6dd3561C1Ev),
+ NSPAIR(_ZN6dd3561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd3561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(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 _ZTI6dd3561[];
+extern void _ZN6dd35613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd3561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd3561[] = {
+ {&(_ZTV6dd3561[4]), 4,16},
+ {&(_ZTV6dd3561[9]), 9,16},
+ {&(_ZTV6dd3561[14]), 14,16},
+ {&(_tg__ZTV5cc561__6dd3561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd3561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static VTBL_ENTRY alt_thunk_names768[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3561 = { "dd3561", // class name
+ bases_dd3561, 3,
+ &(vtc_dd3561[0]), // expected_vtbl_contents
+ &(vtt_dd3561[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3561),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names768,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03561 : dd3561 {
+ int e;
+ ~ee03561(); // tgen
+ ee03561(); // tgen
+};
+//SIG(1 ee03561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03561 ::~ee03561(){ note_dtor("ee03561", this);} // tgen
+ee03561 ::ee03561(){ note_ctor("ee03561", this);} // tgen
+
+static void Test_ee03561()
+{
+ extern Class_Descriptor cd_ee03561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03561, buf);
+ ee03561 *dp, &lv = *(dp=new (buf) ee03561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee03561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee03561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(16,12), "ee03561");
+ check_base_class_offset(lv, (dd3561*), 0, "ee03561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03561.e");
+ test_class_info(&lv, &cd_ee03561);
+ dp->~ee03561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03561(Test_ee03561, "ee03561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03561C1Ev();
+extern void _ZN7ee03561D1Ev();
+Name_Map name_map_ee03561[] = {
+ NSPAIR(_ZN7ee03561C1Ev),
+ NSPAIR(_ZN7ee03561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee03561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03561[];
+extern void _ZN6dd35613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee03561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee03561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee03561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee03561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee03561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee03561[] = {
+ {&(_ZTV7ee03561[4]), 4,16},
+ {&(_tg__ZTV6dd3561__7ee03561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee03561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee03561[4]), 4,6},
+ {&(_ZTV7ee03561[9]), 9,16},
+ {&(_ZTV7ee03561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee03561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee03561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03561[];
+extern VTBL_ENTRY _ZTV7ee03561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03561[];
+static VTBL_ENTRY alt_thunk_names769[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03561 = { "ee03561", // class name
+ bases_ee03561, 4,
+ &(vtc_ee03561[0]), // expected_vtbl_contents
+ &(vtt_ee03561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03561),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names769,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13561 : virtual dd3561 {
+ int e;
+ ~ee13561(); // tgen
+ ee13561(); // tgen
+};
+//SIG(1 ee13561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13561 ::~ee13561(){ note_dtor("ee13561", this);} // tgen
+ee13561 ::ee13561(){ note_ctor("ee13561", this);} // tgen
+
+static void Test_ee13561()
+{
+ extern Class_Descriptor cd_ee13561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13561, buf);
+ ee13561 *dp, &lv = *(dp=new (buf) ee13561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee13561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee13561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(32,16), "ee13561");
+ check_base_class_offset(lv, (dd3561*), ABISELECT(16,8), "ee13561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13561.e");
+ test_class_info(&lv, &cd_ee13561);
+ dp->~ee13561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13561(Test_ee13561, "ee13561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13561C1Ev();
+extern void _ZN7ee13561D1Ev();
+Name_Map name_map_ee13561[] = {
+ NSPAIR(_ZN7ee13561C1Ev),
+ NSPAIR(_ZN7ee13561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee13561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, ABISELECT(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 _ZTI7ee13561[];
+extern void _ZN6dd35613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13561[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee13561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee13561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee13561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee13561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee13561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee13561[] = {
+ {&(_ZTV7ee13561[5]), 5,22},
+ {&(_ZTV7ee13561[10]), 10,22},
+ {&(_ZTV7ee13561[15]), 15,22},
+ {&(_ZTV7ee13561[20]), 20,22},
+ {&(_tg__ZTV6dd3561__7ee13561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee13561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee13561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee13561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee13561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13561[];
+extern VTBL_ENTRY _ZTV7ee13561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13561[];
+static VTBL_ENTRY alt_thunk_names770[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13561 = { "ee13561", // class name
+ bases_ee13561, 4,
+ &(vtc_ee13561[0]), // expected_vtbl_contents
+ &(vtt_ee13561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13561),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13561),9, //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 ee23561 : dd3561 {
+ int e;
+ virtual void foo(); // _ZN7ee235613fooEv
+ ~ee23561(); // tgen
+ ee23561(); // tgen
+};
+//SIG(1 ee23561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23561 ::foo(){vfunc_called(this, "_ZN7ee235613fooEv");}
+ee23561 ::~ee23561(){ note_dtor("ee23561", this);} // tgen
+ee23561 ::ee23561(){ note_ctor("ee23561", this);} // tgen
+
+static void Test_ee23561()
+{
+ extern Class_Descriptor cd_ee23561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23561, buf);
+ ee23561 *dp, &lv = *(dp=new (buf) ee23561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee23561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee23561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(16,12), "ee23561");
+ check_base_class_offset(lv, (dd3561*), 0, "ee23561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23561.e");
+ test_class_info(&lv, &cd_ee23561);
+ dp->~ee23561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23561(Test_ee23561, "ee23561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23561C1Ev();
+extern void _ZN7ee23561D1Ev();
+Name_Map name_map_ee23561[] = {
+ NSPAIR(_ZN7ee23561C1Ev),
+ NSPAIR(_ZN7ee23561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee23561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23561[];
+extern void _ZN7ee235613fooEv();
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235613fooEv,_ZTv0_n12_N7ee235613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235613fooEv,_ZThn20_N7ee235613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23561[0]),
+ (VTBL_ENTRY)&_ZN7ee235613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235613fooEv,_ZTv0_n12_N7ee235613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee23561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee23561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee23561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee23561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee23561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee23561[] = {
+ {&(_ZTV7ee23561[4]), 4,16},
+ {&(_tg__ZTV6dd3561__7ee23561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee23561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee23561[4]), 4,6},
+ {&(_ZTV7ee23561[9]), 9,16},
+ {&(_ZTV7ee23561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee23561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee23561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23561[];
+extern VTBL_ENTRY _ZTV7ee23561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23561[];
+static VTBL_ENTRY alt_thunk_names771[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235613fooEv,_ZTv0_n12_N7ee235613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235613fooEv,_ZThn20_N7ee235613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23561 = { "ee23561", // class name
+ bases_ee23561, 4,
+ &(vtc_ee23561[0]), // expected_vtbl_contents
+ &(vtt_ee23561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23561),8, //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 ee33561 : virtual dd3561 {
+ int e;
+ virtual void foo(); // _ZN7ee335613fooEv
+ ~ee33561(); // tgen
+ ee33561(); // tgen
+};
+//SIG(1 ee33561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33561 ::foo(){vfunc_called(this, "_ZN7ee335613fooEv");}
+ee33561 ::~ee33561(){ note_dtor("ee33561", this);} // tgen
+ee33561 ::ee33561(){ note_ctor("ee33561", this);} // tgen
+
+static void Test_ee33561()
+{
+ extern Class_Descriptor cd_ee33561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33561, buf);
+ ee33561 *dp, &lv = *(dp=new (buf) ee33561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee33561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee33561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(32,16), "ee33561");
+ check_base_class_offset(lv, (dd3561*), ABISELECT(16,8), "ee33561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33561.e");
+ test_class_info(&lv, &cd_ee33561);
+ dp->~ee33561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33561(Test_ee33561, "ee33561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33561C1Ev();
+extern void _ZN7ee33561D1Ev();
+Name_Map name_map_ee33561[] = {
+ NSPAIR(_ZN7ee33561C1Ev),
+ NSPAIR(_ZN7ee33561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee33561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, ABISELECT(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 _ZTI7ee33561[];
+extern void _ZN7ee335613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335613fooEv,_ZTv0_n20_N7ee335613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335613fooEv,_ZThn8_N7ee335613fooEv)() __attribute__((weak));
+extern void _ZN5cc5613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335613fooEv,_ZTv0_n12_N7ee335613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335613fooEv,_ZThn24_N7ee335613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33561[0]),
+ (VTBL_ENTRY)&_ZN7ee335613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335613fooEv,_ZTv0_n20_N7ee335613fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335613fooEv,_ZTv0_n12_N7ee335613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee33561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee33561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee33561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee33561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee33561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee33561[] = {
+ {&(_ZTV7ee33561[5]), 5,23},
+ {&(_ZTV7ee33561[11]), 11,23},
+ {&(_ZTV7ee33561[16]), 16,23},
+ {&(_ZTV7ee33561[21]), 21,23},
+ {&(_tg__ZTV6dd3561__7ee33561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee33561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee33561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee33561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee33561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33561[];
+extern VTBL_ENTRY _ZTV7ee33561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33561[];
+static VTBL_ENTRY alt_thunk_names772[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335613fooEv,_ZTv0_n12_N7ee335613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335613fooEv,_ZThn24_N7ee335613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335613fooEv,_ZTv0_n20_N7ee335613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335613fooEv,_ZThn8_N7ee335613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33561 = { "ee33561", // class name
+ bases_ee33561, 4,
+ &(vtc_ee33561[0]), // expected_vtbl_contents
+ &(vtt_ee33561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33561),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33561),9, //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 ee43561 : dd3561 {
+ int e;
+ virtual void bar(); // _ZN7ee435613barEv
+ ~ee43561(); // tgen
+ ee43561(); // tgen
+};
+//SIG(1 ee43561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43561 ::bar(){vfunc_called(this, "_ZN7ee435613barEv");}
+ee43561 ::~ee43561(){ note_dtor("ee43561", this);} // tgen
+ee43561 ::ee43561(){ note_ctor("ee43561", this);} // tgen
+
+static void Test_ee43561()
+{
+ extern Class_Descriptor cd_ee43561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43561, buf);
+ ee43561 *dp, &lv = *(dp=new (buf) ee43561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee43561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee43561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(16,12), "ee43561");
+ check_base_class_offset(lv, (dd3561*), 0, "ee43561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43561.e");
+ test_class_info(&lv, &cd_ee43561);
+ dp->~ee43561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43561(Test_ee43561, "ee43561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43561C1Ev();
+extern void _ZN7ee43561D1Ev();
+Name_Map name_map_ee43561[] = {
+ NSPAIR(_ZN7ee43561C1Ev),
+ NSPAIR(_ZN7ee43561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee43561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43561[];
+extern void _ZN6dd35613fooEv();
+extern void _ZN7ee435613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435613barEv,_ZTv0_n16_N7ee435613barEv)();
+extern void ABISELECT(_ZThn16_N7ee435613barEv,_ZThn12_N7ee435613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435613barEv,_ZTv0_n16_N7ee435613barEv)();
+extern void ABISELECT(_ZThn32_N7ee435613barEv,_ZThn20_N7ee435613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+ (VTBL_ENTRY)&_ZN7ee435613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435613barEv,_ZTv0_n16_N7ee435613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435613barEv,_ZTv0_n16_N7ee435613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee43561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee43561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee43561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee43561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee43561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee43561[] = {
+ {&(_ZTV7ee43561[4]), 4,17},
+ {&(_tg__ZTV6dd3561__7ee43561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee43561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee43561[4]), 4,6},
+ {&(_ZTV7ee43561[10]), 10,17},
+ {&(_ZTV7ee43561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee43561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee43561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43561[];
+extern VTBL_ENTRY _ZTV7ee43561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43561[];
+static VTBL_ENTRY alt_thunk_names773[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435613barEv,_ZTv0_n16_N7ee435613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435613barEv,_ZThn20_N7ee435613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435613barEv,_ZThn12_N7ee435613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43561 = { "ee43561", // class name
+ bases_ee43561, 4,
+ &(vtc_ee43561[0]), // expected_vtbl_contents
+ &(vtt_ee43561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43561),8, //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 ee53561 : virtual dd3561 {
+ int e;
+ virtual void bar(); // _ZN7ee535613barEv
+ ~ee53561(); // tgen
+ ee53561(); // tgen
+};
+//SIG(1 ee53561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53561 ::bar(){vfunc_called(this, "_ZN7ee535613barEv");}
+ee53561 ::~ee53561(){ note_dtor("ee53561", this);} // tgen
+ee53561 ::ee53561(){ note_ctor("ee53561", this);} // tgen
+
+static void Test_ee53561()
+{
+ extern Class_Descriptor cd_ee53561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53561, buf);
+ ee53561 *dp, &lv = *(dp=new (buf) ee53561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee53561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee53561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(32,16), "ee53561");
+ check_base_class_offset(lv, (dd3561*), ABISELECT(16,8), "ee53561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53561.e");
+ test_class_info(&lv, &cd_ee53561);
+ dp->~ee53561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53561(Test_ee53561, "ee53561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53561C1Ev();
+extern void _ZN7ee53561D1Ev();
+Name_Map name_map_ee53561[] = {
+ NSPAIR(_ZN7ee53561C1Ev),
+ NSPAIR(_ZN7ee53561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee53561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, ABISELECT(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 _ZTI7ee53561[];
+extern void _ZN7ee535613barEv();
+extern void _ZN6dd35613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535613barEv,_ZTv0_n16_N7ee535613barEv)();
+extern void ABISELECT(_ZThn32_N7ee535613barEv,_ZThn16_N7ee535613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535613barEv,_ZTv0_n16_N7ee535613barEv)();
+extern void ABISELECT(_ZThn48_N7ee535613barEv,_ZThn24_N7ee535613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53561[0]),
+ (VTBL_ENTRY)&_ZN7ee535613barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535613barEv,_ZTv0_n16_N7ee535613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535613barEv,_ZTv0_n16_N7ee535613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee53561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee53561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee53561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee53561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee53561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee53561[] = {
+ {&(_ZTV7ee53561[5]), 5,23},
+ {&(_ZTV7ee53561[11]), 11,23},
+ {&(_ZTV7ee53561[16]), 16,23},
+ {&(_ZTV7ee53561[21]), 21,23},
+ {&(_tg__ZTV6dd3561__7ee53561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee53561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee53561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee53561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee53561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53561[];
+extern VTBL_ENTRY _ZTV7ee53561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53561[];
+static VTBL_ENTRY alt_thunk_names774[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535613barEv,_ZTv0_n16_N7ee535613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535613barEv,_ZThn24_N7ee535613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535613barEv,_ZThn16_N7ee535613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53561 = { "ee53561", // class name
+ bases_ee53561, 4,
+ &(vtc_ee53561[0]), // expected_vtbl_contents
+ &(vtt_ee53561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53561),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53561),9, //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 ee63561 : dd3561 {
+ int e;
+ virtual void foo(); // _ZN7ee635613fooEv
+ virtual void bar(); // _ZN7ee635613barEv
+ ~ee63561(); // tgen
+ ee63561(); // tgen
+};
+//SIG(1 ee63561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63561 ::foo(){vfunc_called(this, "_ZN7ee635613fooEv");}
+void ee63561 ::bar(){vfunc_called(this, "_ZN7ee635613barEv");}
+ee63561 ::~ee63561(){ note_dtor("ee63561", this);} // tgen
+ee63561 ::ee63561(){ note_ctor("ee63561", this);} // tgen
+
+static void Test_ee63561()
+{
+ extern Class_Descriptor cd_ee63561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63561, buf);
+ ee63561 *dp, &lv = *(dp=new (buf) ee63561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee63561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee63561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(16,12), "ee63561");
+ check_base_class_offset(lv, (dd3561*), 0, "ee63561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63561.e");
+ test_class_info(&lv, &cd_ee63561);
+ dp->~ee63561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63561(Test_ee63561, "ee63561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63561C1Ev();
+extern void _ZN7ee63561D1Ev();
+Name_Map name_map_ee63561[] = {
+ NSPAIR(_ZN7ee63561C1Ev),
+ NSPAIR(_ZN7ee63561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee63561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63561[];
+extern void _ZN7ee635613fooEv();
+extern void _ZN7ee635613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635613barEv,_ZTv0_n16_N7ee635613barEv)();
+extern void ABISELECT(_ZThn16_N7ee635613barEv,_ZThn12_N7ee635613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635613fooEv,_ZTv0_n12_N7ee635613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635613fooEv,_ZThn20_N7ee635613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635613barEv,_ZTv0_n16_N7ee635613barEv)();
+extern void ABISELECT(_ZThn32_N7ee635613barEv,_ZThn20_N7ee635613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63561[0]),
+ (VTBL_ENTRY)&_ZN7ee635613fooEv,
+ (VTBL_ENTRY)&_ZN7ee635613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635613barEv,_ZTv0_n16_N7ee635613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635613fooEv,_ZTv0_n12_N7ee635613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635613barEv,_ZTv0_n16_N7ee635613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee63561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee63561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee63561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee63561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee63561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee63561[] = {
+ {&(_ZTV7ee63561[4]), 4,17},
+ {&(_tg__ZTV6dd3561__7ee63561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee63561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee63561[4]), 4,6},
+ {&(_ZTV7ee63561[10]), 10,17},
+ {&(_ZTV7ee63561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee63561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee63561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63561[];
+extern VTBL_ENTRY _ZTV7ee63561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63561[];
+static VTBL_ENTRY alt_thunk_names775[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn20_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635613fooEv,_ZTv0_n12_N7ee635613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635613fooEv,_ZThn20_N7ee635613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635613barEv,_ZTv0_n16_N7ee635613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635613barEv,_ZThn20_N7ee635613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635613barEv,_ZThn12_N7ee635613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63561 = { "ee63561", // class name
+ bases_ee63561, 4,
+ &(vtc_ee63561[0]), // expected_vtbl_contents
+ &(vtt_ee63561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63561),8, //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 ee73561 : virtual dd3561 {
+ int e;
+ virtual void foo(); // _ZN7ee735613fooEv
+ virtual void bar(); // _ZN7ee735613barEv
+ ~ee73561(); // tgen
+ ee73561(); // tgen
+};
+//SIG(1 ee73561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73561 ::foo(){vfunc_called(this, "_ZN7ee735613fooEv");}
+void ee73561 ::bar(){vfunc_called(this, "_ZN7ee735613barEv");}
+ee73561 ::~ee73561(){ note_dtor("ee73561", this);} // tgen
+ee73561 ::ee73561(){ note_ctor("ee73561", this);} // tgen
+
+static void Test_ee73561()
+{
+ extern Class_Descriptor cd_ee73561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73561, buf);
+ ee73561 *dp, &lv = *(dp=new (buf) ee73561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee73561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee73561");
+ check_base_class_offset(lv, (cc561*)(dd3561*), ABISELECT(32,16), "ee73561");
+ check_base_class_offset(lv, (dd3561*), ABISELECT(16,8), "ee73561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73561.e");
+ test_class_info(&lv, &cd_ee73561);
+ dp->~ee73561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73561(Test_ee73561, "ee73561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73561C1Ev();
+extern void _ZN7ee73561D1Ev();
+Name_Map name_map_ee73561[] = {
+ NSPAIR(_ZN7ee73561C1Ev),
+ NSPAIR(_ZN7ee73561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd3561;
+extern VTBL_ENTRY _ZTI6dd3561[];
+extern VTBL_ENTRY _ZTV6dd3561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3561[];
+static Base_Class bases_ee73561[] = {
+ // 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_bb61, 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_cc561, 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_dd3561, 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 _ZTI7ee73561[];
+extern void _ZN7ee735613fooEv();
+extern void _ZN7ee735613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735613fooEv,_ZTv0_n20_N7ee735613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735613fooEv,_ZThn8_N7ee735613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735613barEv,_ZTv0_n16_N7ee735613barEv)();
+extern void ABISELECT(_ZThn32_N7ee735613barEv,_ZThn16_N7ee735613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735613fooEv,_ZTv0_n12_N7ee735613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735613fooEv,_ZThn24_N7ee735613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735613barEv,_ZTv0_n16_N7ee735613barEv)();
+extern void ABISELECT(_ZThn48_N7ee735613barEv,_ZThn24_N7ee735613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73561[0]),
+ (VTBL_ENTRY)&_ZN7ee735613fooEv,
+ (VTBL_ENTRY)&_ZN7ee735613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735613fooEv,_ZTv0_n20_N7ee735613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735613barEv,_ZTv0_n16_N7ee735613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735613fooEv,_ZTv0_n12_N7ee735613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735613barEv,_ZTv0_n16_N7ee735613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73561[];
+extern void _ZN6dd35613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3561__7ee73561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN6dd35613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd3561__7ee73561[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3561__7ee73561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee73561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee73561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee73561[] = {
+ {&(_ZTV7ee73561[5]), 5,24},
+ {&(_ZTV7ee73561[12]), 12,24},
+ {&(_ZTV7ee73561[17]), 17,24},
+ {&(_ZTV7ee73561[22]), 22,24},
+ {&(_tg__ZTV6dd3561__7ee73561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd3561__7ee73561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd3561__7ee73561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee73561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee73561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73561[];
+extern VTBL_ENTRY _ZTV7ee73561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73561[];
+static VTBL_ENTRY alt_thunk_names776[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35613fooEv,_ZTv0_n12_N6dd35613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35613fooEv,_ZThn16_N6dd35613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735613fooEv,_ZTv0_n12_N7ee735613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735613fooEv,_ZThn24_N7ee735613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735613barEv,_ZTv0_n16_N7ee735613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735613barEv,_ZThn24_N7ee735613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735613barEv,_ZThn16_N7ee735613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735613fooEv,_ZTv0_n20_N7ee735613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735613fooEv,_ZThn8_N7ee735613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73561 = { "ee73561", // class name
+ bases_ee73561, 4,
+ &(vtc_ee73561[0]), // expected_vtbl_contents
+ &(vtt_ee73561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73561),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73561),9, //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 dd4561 : cc561 {
+ int d;
+ virtual void bar(); // _ZN6dd45613barEv
+ ~dd4561(); // tgen
+ dd4561(); // tgen
+};
+//SIG(-1 dd4561) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4561 ::bar(){vfunc_called(this, "_ZN6dd45613barEv");}
+dd4561 ::~dd4561(){ note_dtor("dd4561", this);} // tgen
+dd4561 ::dd4561(){ note_ctor("dd4561", this);} // tgen
+
+static void Test_dd4561()
+{
+ extern Class_Descriptor cd_dd4561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4561, buf);
+ dd4561 *dp, &lv = *(dp=new (buf) dd4561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd4561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(16,12), "dd4561");
+ check_base_class_offset(lv, (cc561*), 0, "dd4561");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4561.d");
+ test_class_info(&lv, &cd_dd4561);
+ dp->~dd4561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4561(Test_dd4561, "dd4561", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4561C1Ev();
+extern void _ZN6dd4561D1Ev();
+Name_Map name_map_dd4561[] = {
+ NSPAIR(_ZN6dd4561C1Ev),
+ NSPAIR(_ZN6dd4561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd4561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern void _ZN6dd45613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd4561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd4561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd4561[] = {
+ {&(_ZTV6dd4561[3]), 3,10},
+ {&(_tg__ZTV5cc561__6dd4561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd4561[4]), 4,6},
+ {&(_ZTV6dd4561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static VTBL_ENTRY alt_thunk_names777[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4561 = { "dd4561", // class name
+ bases_dd4561, 3,
+ &(vtc_dd4561[0]), // expected_vtbl_contents
+ &(vtt_dd4561[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4561),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names777,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04561 : dd4561 {
+ int e;
+ ~ee04561(); // tgen
+ ee04561(); // tgen
+};
+//SIG(1 ee04561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04561 ::~ee04561(){ note_dtor("ee04561", this);} // tgen
+ee04561 ::ee04561(){ note_ctor("ee04561", this);} // tgen
+
+static void Test_ee04561()
+{
+ extern Class_Descriptor cd_ee04561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04561, buf);
+ ee04561 *dp, &lv = *(dp=new (buf) ee04561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee04561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(24,16), "ee04561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), 0, "ee04561");
+ check_base_class_offset(lv, (dd4561*), 0, "ee04561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04561.e");
+ test_class_info(&lv, &cd_ee04561);
+ dp->~ee04561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04561(Test_ee04561, "ee04561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04561C1Ev();
+extern void _ZN7ee04561D1Ev();
+Name_Map name_map_ee04561[] = {
+ NSPAIR(_ZN7ee04561C1Ev),
+ NSPAIR(_ZN7ee04561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee04561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04561[];
+extern void _ZN6dd45613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee04561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee04561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee04561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee04561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee04561[] = {
+ {&(_ZTV7ee04561[3]), 3,10},
+ {&(_tg__ZTV6dd4561__7ee04561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee04561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee04561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee04561[4]), 4,6},
+ {&(_ZTV7ee04561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04561[];
+extern VTBL_ENTRY _ZTV7ee04561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04561[];
+static VTBL_ENTRY alt_thunk_names778[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04561 = { "ee04561", // class name
+ bases_ee04561, 4,
+ &(vtc_ee04561[0]), // expected_vtbl_contents
+ &(vtt_ee04561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04561),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names778,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14561 : virtual dd4561 {
+ int e;
+ ~ee14561(); // tgen
+ ee14561(); // tgen
+};
+//SIG(1 ee14561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14561 ::~ee14561(){ note_dtor("ee14561", this);} // tgen
+ee14561 ::ee14561(){ note_ctor("ee14561", this);} // tgen
+
+static void Test_ee14561()
+{
+ extern Class_Descriptor cd_ee14561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14561, buf);
+ ee14561 *dp, &lv = *(dp=new (buf) ee14561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee14561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(32,20), "ee14561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), ABISELECT(16,8), "ee14561");
+ check_base_class_offset(lv, (dd4561*), ABISELECT(16,8), "ee14561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14561.e");
+ test_class_info(&lv, &cd_ee14561);
+ dp->~ee14561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14561(Test_ee14561, "ee14561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14561C1Ev();
+extern void _ZN7ee14561D1Ev();
+Name_Map name_map_ee14561[] = {
+ NSPAIR(_ZN7ee14561C1Ev),
+ NSPAIR(_ZN7ee14561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee14561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, ABISELECT(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 _ZTI7ee14561[];
+extern void _ZN6dd45613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14561[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee14561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee14561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee14561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee14561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee14561[] = {
+ {&(_ZTV7ee14561[4]), 4,15},
+ {&(_ZTV7ee14561[8]), 8,15},
+ {&(_ZTV7ee14561[13]), 13,15},
+ {&(_tg__ZTV6dd4561__7ee14561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee14561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee14561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee14561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14561[];
+extern VTBL_ENTRY _ZTV7ee14561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14561[];
+static VTBL_ENTRY alt_thunk_names779[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14561 = { "ee14561", // class name
+ bases_ee14561, 4,
+ &(vtc_ee14561[0]), // expected_vtbl_contents
+ &(vtt_ee14561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14561),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14561),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names779,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24561 : dd4561 {
+ int e;
+ virtual void foo(); // _ZN7ee245613fooEv
+ ~ee24561(); // tgen
+ ee24561(); // tgen
+};
+//SIG(1 ee24561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24561 ::foo(){vfunc_called(this, "_ZN7ee245613fooEv");}
+ee24561 ::~ee24561(){ note_dtor("ee24561", this);} // tgen
+ee24561 ::ee24561(){ note_ctor("ee24561", this);} // tgen
+
+static void Test_ee24561()
+{
+ extern Class_Descriptor cd_ee24561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24561, buf);
+ ee24561 *dp, &lv = *(dp=new (buf) ee24561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee24561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(24,16), "ee24561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), 0, "ee24561");
+ check_base_class_offset(lv, (dd4561*), 0, "ee24561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24561.e");
+ test_class_info(&lv, &cd_ee24561);
+ dp->~ee24561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24561(Test_ee24561, "ee24561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24561C1Ev();
+extern void _ZN7ee24561D1Ev();
+Name_Map name_map_ee24561[] = {
+ NSPAIR(_ZN7ee24561C1Ev),
+ NSPAIR(_ZN7ee24561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee24561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24561[];
+extern void _ZN6dd45613barEv();
+extern void _ZN7ee245613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245613fooEv,_ZTv0_n12_N7ee245613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245613fooEv,_ZThn16_N7ee245613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+ (VTBL_ENTRY)&_ZN7ee245613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245613fooEv,_ZTv0_n12_N7ee245613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee24561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee24561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee24561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee24561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee24561[] = {
+ {&(_ZTV7ee24561[3]), 3,11},
+ {&(_tg__ZTV6dd4561__7ee24561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee24561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee24561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee24561[4]), 4,6},
+ {&(_ZTV7ee24561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24561[];
+extern VTBL_ENTRY _ZTV7ee24561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24561[];
+static VTBL_ENTRY alt_thunk_names780[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245613fooEv,_ZTv0_n12_N7ee245613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245613fooEv,_ZThn16_N7ee245613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24561 = { "ee24561", // class name
+ bases_ee24561, 4,
+ &(vtc_ee24561[0]), // expected_vtbl_contents
+ &(vtt_ee24561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24561),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 ee34561 : virtual dd4561 {
+ int e;
+ virtual void foo(); // _ZN7ee345613fooEv
+ ~ee34561(); // tgen
+ ee34561(); // tgen
+};
+//SIG(1 ee34561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34561 ::foo(){vfunc_called(this, "_ZN7ee345613fooEv");}
+ee34561 ::~ee34561(){ note_dtor("ee34561", this);} // tgen
+ee34561 ::ee34561(){ note_ctor("ee34561", this);} // tgen
+
+static void Test_ee34561()
+{
+ extern Class_Descriptor cd_ee34561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34561, buf);
+ ee34561 *dp, &lv = *(dp=new (buf) ee34561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee34561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(32,20), "ee34561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), ABISELECT(16,8), "ee34561");
+ check_base_class_offset(lv, (dd4561*), ABISELECT(16,8), "ee34561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34561.e");
+ test_class_info(&lv, &cd_ee34561);
+ dp->~ee34561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34561(Test_ee34561, "ee34561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34561C1Ev();
+extern void _ZN7ee34561D1Ev();
+Name_Map name_map_ee34561[] = {
+ NSPAIR(_ZN7ee34561C1Ev),
+ NSPAIR(_ZN7ee34561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee34561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, ABISELECT(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 _ZTI7ee34561[];
+extern void _ZN7ee345613fooEv();
+extern void _ZN6dd45613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345613fooEv,_ZTv0_n12_N7ee345613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345613fooEv,_ZThn20_N7ee345613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34561[0]),
+ (VTBL_ENTRY)&_ZN7ee345613fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345613fooEv,_ZTv0_n12_N7ee345613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee34561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee34561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee34561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee34561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee34561[] = {
+ {&(_ZTV7ee34561[4]), 4,16},
+ {&(_ZTV7ee34561[9]), 9,16},
+ {&(_ZTV7ee34561[14]), 14,16},
+ {&(_tg__ZTV6dd4561__7ee34561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee34561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee34561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee34561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34561[];
+extern VTBL_ENTRY _ZTV7ee34561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34561[];
+static VTBL_ENTRY alt_thunk_names781[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345613fooEv,_ZTv0_n12_N7ee345613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345613fooEv,_ZThn20_N7ee345613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34561 = { "ee34561", // class name
+ bases_ee34561, 4,
+ &(vtc_ee34561[0]), // expected_vtbl_contents
+ &(vtt_ee34561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34561),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 ee44561 : dd4561 {
+ int e;
+ virtual void bar(); // _ZN7ee445613barEv
+ ~ee44561(); // tgen
+ ee44561(); // tgen
+};
+//SIG(1 ee44561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44561 ::bar(){vfunc_called(this, "_ZN7ee445613barEv");}
+ee44561 ::~ee44561(){ note_dtor("ee44561", this);} // tgen
+ee44561 ::ee44561(){ note_ctor("ee44561", this);} // tgen
+
+static void Test_ee44561()
+{
+ extern Class_Descriptor cd_ee44561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44561, buf);
+ ee44561 *dp, &lv = *(dp=new (buf) ee44561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee44561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(24,16), "ee44561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), 0, "ee44561");
+ check_base_class_offset(lv, (dd4561*), 0, "ee44561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44561.e");
+ test_class_info(&lv, &cd_ee44561);
+ dp->~ee44561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44561(Test_ee44561, "ee44561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44561C1Ev();
+extern void _ZN7ee44561D1Ev();
+Name_Map name_map_ee44561[] = {
+ NSPAIR(_ZN7ee44561C1Ev),
+ NSPAIR(_ZN7ee44561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee44561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44561[];
+extern void _ZN7ee445613barEv();
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445613barEv,_ZTv0_n16_N7ee445613barEv)();
+extern void ABISELECT(_ZThn24_N7ee445613barEv,_ZThn16_N7ee445613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44561[0]),
+ (VTBL_ENTRY)&_ZN7ee445613barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445613barEv,_ZTv0_n16_N7ee445613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee44561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee44561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee44561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee44561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee44561[] = {
+ {&(_ZTV7ee44561[3]), 3,10},
+ {&(_tg__ZTV6dd4561__7ee44561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee44561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee44561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee44561[4]), 4,6},
+ {&(_ZTV7ee44561[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44561[];
+extern VTBL_ENTRY _ZTV7ee44561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44561[];
+static VTBL_ENTRY alt_thunk_names782[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445613barEv,_ZTv0_n16_N7ee445613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445613barEv,_ZThn16_N7ee445613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44561 = { "ee44561", // class name
+ bases_ee44561, 4,
+ &(vtc_ee44561[0]), // expected_vtbl_contents
+ &(vtt_ee44561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44561),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44561),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 ee54561 : virtual dd4561 {
+ int e;
+ virtual void bar(); // _ZN7ee545613barEv
+ ~ee54561(); // tgen
+ ee54561(); // tgen
+};
+//SIG(1 ee54561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54561 ::bar(){vfunc_called(this, "_ZN7ee545613barEv");}
+ee54561 ::~ee54561(){ note_dtor("ee54561", this);} // tgen
+ee54561 ::ee54561(){ note_ctor("ee54561", this);} // tgen
+
+static void Test_ee54561()
+{
+ extern Class_Descriptor cd_ee54561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54561, buf);
+ ee54561 *dp, &lv = *(dp=new (buf) ee54561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee54561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(32,20), "ee54561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), ABISELECT(16,8), "ee54561");
+ check_base_class_offset(lv, (dd4561*), ABISELECT(16,8), "ee54561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54561.e");
+ test_class_info(&lv, &cd_ee54561);
+ dp->~ee54561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54561(Test_ee54561, "ee54561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54561C1Ev();
+extern void _ZN7ee54561D1Ev();
+Name_Map name_map_ee54561[] = {
+ NSPAIR(_ZN7ee54561C1Ev),
+ NSPAIR(_ZN7ee54561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee54561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, ABISELECT(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 _ZTI7ee54561[];
+extern void _ZN7ee545613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545613barEv,_ZTv0_n16_N7ee545613barEv)();
+extern void ABISELECT(_ZThn16_N7ee545613barEv,_ZThn8_N7ee545613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545613barEv,_ZTv0_n16_N7ee545613barEv)();
+extern void ABISELECT(_ZThn32_N7ee545613barEv,_ZThn20_N7ee545613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54561[0]),
+ (VTBL_ENTRY)&_ZN7ee545613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545613barEv,_ZTv0_n16_N7ee545613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545613barEv,_ZTv0_n16_N7ee545613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee54561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee54561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee54561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee54561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee54561[] = {
+ {&(_ZTV7ee54561[4]), 4,16},
+ {&(_ZTV7ee54561[9]), 9,16},
+ {&(_ZTV7ee54561[14]), 14,16},
+ {&(_tg__ZTV6dd4561__7ee54561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee54561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee54561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee54561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54561[];
+extern VTBL_ENTRY _ZTV7ee54561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54561[];
+static VTBL_ENTRY alt_thunk_names783[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545613barEv,_ZTv0_n16_N7ee545613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545613barEv,_ZThn20_N7ee545613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545613barEv,_ZThn8_N7ee545613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54561 = { "ee54561", // class name
+ bases_ee54561, 4,
+ &(vtc_ee54561[0]), // expected_vtbl_contents
+ &(vtt_ee54561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54561),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 ee64561 : dd4561 {
+ int e;
+ virtual void foo(); // _ZN7ee645613fooEv
+ virtual void bar(); // _ZN7ee645613barEv
+ ~ee64561(); // tgen
+ ee64561(); // tgen
+};
+//SIG(1 ee64561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64561 ::foo(){vfunc_called(this, "_ZN7ee645613fooEv");}
+void ee64561 ::bar(){vfunc_called(this, "_ZN7ee645613barEv");}
+ee64561 ::~ee64561(){ note_dtor("ee64561", this);} // tgen
+ee64561 ::ee64561(){ note_ctor("ee64561", this);} // tgen
+
+static void Test_ee64561()
+{
+ extern Class_Descriptor cd_ee64561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64561, buf);
+ ee64561 *dp, &lv = *(dp=new (buf) ee64561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee64561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(24,16), "ee64561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), 0, "ee64561");
+ check_base_class_offset(lv, (dd4561*), 0, "ee64561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64561.e");
+ test_class_info(&lv, &cd_ee64561);
+ dp->~ee64561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64561(Test_ee64561, "ee64561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64561C1Ev();
+extern void _ZN7ee64561D1Ev();
+Name_Map name_map_ee64561[] = {
+ NSPAIR(_ZN7ee64561C1Ev),
+ NSPAIR(_ZN7ee64561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee64561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64561[];
+extern void _ZN7ee645613barEv();
+extern void _ZN7ee645613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645613fooEv,_ZTv0_n12_N7ee645613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645613fooEv,_ZThn16_N7ee645613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645613barEv,_ZTv0_n16_N7ee645613barEv)();
+extern void ABISELECT(_ZThn24_N7ee645613barEv,_ZThn16_N7ee645613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64561[0]),
+ (VTBL_ENTRY)&_ZN7ee645613barEv,
+ (VTBL_ENTRY)&_ZN7ee645613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645613fooEv,_ZTv0_n12_N7ee645613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645613barEv,_ZTv0_n16_N7ee645613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee64561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee64561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee64561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee64561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee64561[] = {
+ {&(_ZTV7ee64561[3]), 3,11},
+ {&(_tg__ZTV6dd4561__7ee64561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee64561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee64561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee64561[4]), 4,6},
+ {&(_ZTV7ee64561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64561[];
+extern VTBL_ENTRY _ZTV7ee64561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64561[];
+static VTBL_ENTRY alt_thunk_names784[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45613barEv,_ZThn16_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645613barEv,_ZTv0_n16_N7ee645613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645613barEv,_ZThn16_N7ee645613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645613fooEv,_ZTv0_n12_N7ee645613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645613fooEv,_ZThn16_N7ee645613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64561 = { "ee64561", // class name
+ bases_ee64561, 4,
+ &(vtc_ee64561[0]), // expected_vtbl_contents
+ &(vtt_ee64561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64561),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 ee74561 : virtual dd4561 {
+ int e;
+ virtual void foo(); // _ZN7ee745613fooEv
+ virtual void bar(); // _ZN7ee745613barEv
+ ~ee74561(); // tgen
+ ee74561(); // tgen
+};
+//SIG(1 ee74561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74561 ::foo(){vfunc_called(this, "_ZN7ee745613fooEv");}
+void ee74561 ::bar(){vfunc_called(this, "_ZN7ee745613barEv");}
+ee74561 ::~ee74561(){ note_dtor("ee74561", this);} // tgen
+ee74561 ::ee74561(){ note_ctor("ee74561", this);} // tgen
+
+static void Test_ee74561()
+{
+ extern Class_Descriptor cd_ee74561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74561, buf);
+ ee74561 *dp, &lv = *(dp=new (buf) ee74561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee74561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd4561*), ABISELECT(32,20), "ee74561");
+ check_base_class_offset(lv, (cc561*)(dd4561*), ABISELECT(16,8), "ee74561");
+ check_base_class_offset(lv, (dd4561*), ABISELECT(16,8), "ee74561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74561.e");
+ test_class_info(&lv, &cd_ee74561);
+ dp->~ee74561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74561(Test_ee74561, "ee74561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74561C1Ev();
+extern void _ZN7ee74561D1Ev();
+Name_Map name_map_ee74561[] = {
+ NSPAIR(_ZN7ee74561C1Ev),
+ NSPAIR(_ZN7ee74561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd4561;
+extern VTBL_ENTRY _ZTI6dd4561[];
+extern VTBL_ENTRY _ZTV6dd4561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4561[];
+static Base_Class bases_ee74561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4561, 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 _ZTI7ee74561[];
+extern void _ZN7ee745613fooEv();
+extern void _ZN7ee745613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745613barEv,_ZTv0_n16_N7ee745613barEv)();
+extern void ABISELECT(_ZThn16_N7ee745613barEv,_ZThn8_N7ee745613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745613fooEv,_ZTv0_n12_N7ee745613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745613fooEv,_ZThn20_N7ee745613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745613barEv,_ZTv0_n16_N7ee745613barEv)();
+extern void ABISELECT(_ZThn32_N7ee745613barEv,_ZThn20_N7ee745613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74561[0]),
+ (VTBL_ENTRY)&_ZN7ee745613fooEv,
+ (VTBL_ENTRY)&_ZN7ee745613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745613barEv,_ZTv0_n16_N7ee745613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745613fooEv,_ZTv0_n12_N7ee745613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745613barEv,_ZTv0_n16_N7ee745613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74561[];
+extern void _ZN6dd45613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4561__7ee74561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN6dd45613barEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd4561__7ee74561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd4561__7ee74561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv)();
+extern void ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4561__7ee74561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv),
+};
+static VTT_ENTRY vtt_ee74561[] = {
+ {&(_ZTV7ee74561[4]), 4,17},
+ {&(_ZTV7ee74561[10]), 10,17},
+ {&(_ZTV7ee74561[15]), 15,17},
+ {&(_tg__ZTV6dd4561__7ee74561[3]), 3,4},
+ {&(_tg__ZTV5cc5616dd4561__7ee74561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd4561__7ee74561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4561__7ee74561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74561[];
+extern VTBL_ENTRY _ZTV7ee74561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74561[];
+static VTBL_ENTRY alt_thunk_names785[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45613barEv,_ZTv0_n16_N6dd45613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45613barEv,_ZThn12_N6dd45613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745613fooEv,_ZTv0_n12_N7ee745613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745613fooEv,_ZThn20_N7ee745613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745613barEv,_ZTv0_n16_N7ee745613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745613barEv,_ZThn20_N7ee745613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745613barEv,_ZThn8_N7ee745613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74561 = { "ee74561", // class name
+ bases_ee74561, 4,
+ &(vtc_ee74561[0]), // expected_vtbl_contents
+ &(vtt_ee74561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74561),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 dd5561 : virtual cc561 {
+ int d;
+ virtual void bar(); // _ZN6dd55613barEv
+ ~dd5561(); // tgen
+ dd5561(); // tgen
+};
+//SIG(-1 dd5561) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5561 ::bar(){vfunc_called(this, "_ZN6dd55613barEv");}
+dd5561 ::~dd5561(){ note_dtor("dd5561", this);} // tgen
+dd5561 ::dd5561(){ note_ctor("dd5561", this);} // tgen
+
+static void Test_dd5561()
+{
+ extern Class_Descriptor cd_dd5561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5561, buf);
+ dd5561 *dp, &lv = *(dp=new (buf) dd5561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd5561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,16), "dd5561");
+ check_base_class_offset(lv, (cc561*), ABISELECT(16,8), "dd5561");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5561.d");
+ test_class_info(&lv, &cd_dd5561);
+ dp->~dd5561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5561(Test_dd5561, "dd5561", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5561C1Ev();
+extern void _ZN6dd5561D1Ev();
+Name_Map name_map_dd5561[] = {
+ NSPAIR(_ZN6dd5561C1Ev),
+ NSPAIR(_ZN6dd5561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd5561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(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 _ZTI6dd5561[];
+extern void _ZN6dd55613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd5561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd5561[] = {
+ {&(_ZTV6dd5561[4]), 4,16},
+ {&(_ZTV6dd5561[9]), 9,16},
+ {&(_ZTV6dd5561[14]), 14,16},
+ {&(_tg__ZTV5cc561__6dd5561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd5561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static VTBL_ENTRY alt_thunk_names786[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5561 = { "dd5561", // class name
+ bases_dd5561, 3,
+ &(vtc_dd5561[0]), // expected_vtbl_contents
+ &(vtt_dd5561[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5561),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names786,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05561 : dd5561 {
+ int e;
+ ~ee05561(); // tgen
+ ee05561(); // tgen
+};
+//SIG(1 ee05561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05561 ::~ee05561(){ note_dtor("ee05561", this);} // tgen
+ee05561 ::ee05561(){ note_ctor("ee05561", this);} // tgen
+
+static void Test_ee05561()
+{
+ extern Class_Descriptor cd_ee05561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05561, buf);
+ ee05561 *dp, &lv = *(dp=new (buf) ee05561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee05561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee05561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(16,12), "ee05561");
+ check_base_class_offset(lv, (dd5561*), 0, "ee05561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05561.e");
+ test_class_info(&lv, &cd_ee05561);
+ dp->~ee05561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05561(Test_ee05561, "ee05561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05561C1Ev();
+extern void _ZN7ee05561D1Ev();
+Name_Map name_map_ee05561[] = {
+ NSPAIR(_ZN7ee05561C1Ev),
+ NSPAIR(_ZN7ee05561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee05561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05561[];
+extern void _ZN6dd55613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee05561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee05561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee05561[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee05561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee05561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee05561[] = {
+ {&(_ZTV7ee05561[4]), 4,16},
+ {&(_tg__ZTV6dd5561__7ee05561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee05561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee05561[4]), 4,6},
+ {&(_ZTV7ee05561[9]), 9,16},
+ {&(_ZTV7ee05561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee05561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee05561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05561[];
+extern VTBL_ENTRY _ZTV7ee05561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05561[];
+static VTBL_ENTRY alt_thunk_names787[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05561 = { "ee05561", // class name
+ bases_ee05561, 4,
+ &(vtc_ee05561[0]), // expected_vtbl_contents
+ &(vtt_ee05561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05561),8, //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 ee15561 : virtual dd5561 {
+ int e;
+ ~ee15561(); // tgen
+ ee15561(); // tgen
+};
+//SIG(1 ee15561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15561 ::~ee15561(){ note_dtor("ee15561", this);} // tgen
+ee15561 ::ee15561(){ note_ctor("ee15561", this);} // tgen
+
+static void Test_ee15561()
+{
+ extern Class_Descriptor cd_ee15561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15561, buf);
+ ee15561 *dp, &lv = *(dp=new (buf) ee15561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee15561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee15561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(32,16), "ee15561");
+ check_base_class_offset(lv, (dd5561*), ABISELECT(16,8), "ee15561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15561.e");
+ test_class_info(&lv, &cd_ee15561);
+ dp->~ee15561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15561(Test_ee15561, "ee15561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15561C1Ev();
+extern void _ZN7ee15561D1Ev();
+Name_Map name_map_ee15561[] = {
+ NSPAIR(_ZN7ee15561C1Ev),
+ NSPAIR(_ZN7ee15561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee15561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, ABISELECT(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 _ZTI7ee15561[];
+extern void _ZN6dd55613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15561[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee15561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee15561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee15561[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee15561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee15561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee15561[] = {
+ {&(_ZTV7ee15561[5]), 5,22},
+ {&(_ZTV7ee15561[10]), 10,22},
+ {&(_ZTV7ee15561[15]), 15,22},
+ {&(_ZTV7ee15561[20]), 20,22},
+ {&(_tg__ZTV6dd5561__7ee15561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee15561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee15561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee15561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee15561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15561[];
+extern VTBL_ENTRY _ZTV7ee15561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15561[];
+static VTBL_ENTRY alt_thunk_names788[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15561 = { "ee15561", // class name
+ bases_ee15561, 4,
+ &(vtc_ee15561[0]), // expected_vtbl_contents
+ &(vtt_ee15561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15561),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15561),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names788,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25561 : dd5561 {
+ int e;
+ virtual void foo(); // _ZN7ee255613fooEv
+ ~ee25561(); // tgen
+ ee25561(); // tgen
+};
+//SIG(1 ee25561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25561 ::foo(){vfunc_called(this, "_ZN7ee255613fooEv");}
+ee25561 ::~ee25561(){ note_dtor("ee25561", this);} // tgen
+ee25561 ::ee25561(){ note_ctor("ee25561", this);} // tgen
+
+static void Test_ee25561()
+{
+ extern Class_Descriptor cd_ee25561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25561, buf);
+ ee25561 *dp, &lv = *(dp=new (buf) ee25561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee25561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee25561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(16,12), "ee25561");
+ check_base_class_offset(lv, (dd5561*), 0, "ee25561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25561.e");
+ test_class_info(&lv, &cd_ee25561);
+ dp->~ee25561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25561(Test_ee25561, "ee25561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25561C1Ev();
+extern void _ZN7ee25561D1Ev();
+Name_Map name_map_ee25561[] = {
+ NSPAIR(_ZN7ee25561C1Ev),
+ NSPAIR(_ZN7ee25561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee25561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25561[];
+extern void _ZN6dd55613barEv();
+extern void _ZN7ee255613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255613fooEv,_ZTv0_n12_N7ee255613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255613fooEv,_ZThn20_N7ee255613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+ (VTBL_ENTRY)&_ZN7ee255613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255613fooEv,_ZTv0_n12_N7ee255613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee25561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee25561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee25561[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee25561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee25561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee25561[] = {
+ {&(_ZTV7ee25561[4]), 4,17},
+ {&(_tg__ZTV6dd5561__7ee25561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee25561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee25561[4]), 4,6},
+ {&(_ZTV7ee25561[10]), 10,17},
+ {&(_ZTV7ee25561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee25561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee25561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25561[];
+extern VTBL_ENTRY _ZTV7ee25561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25561[];
+static VTBL_ENTRY alt_thunk_names789[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255613fooEv,_ZTv0_n12_N7ee255613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255613fooEv,_ZThn20_N7ee255613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25561 = { "ee25561", // class name
+ bases_ee25561, 4,
+ &(vtc_ee25561[0]), // expected_vtbl_contents
+ &(vtt_ee25561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25561),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 ee35561 : virtual dd5561 {
+ int e;
+ virtual void foo(); // _ZN7ee355613fooEv
+ ~ee35561(); // tgen
+ ee35561(); // tgen
+};
+//SIG(1 ee35561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35561 ::foo(){vfunc_called(this, "_ZN7ee355613fooEv");}
+ee35561 ::~ee35561(){ note_dtor("ee35561", this);} // tgen
+ee35561 ::ee35561(){ note_ctor("ee35561", this);} // tgen
+
+static void Test_ee35561()
+{
+ extern Class_Descriptor cd_ee35561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35561, buf);
+ ee35561 *dp, &lv = *(dp=new (buf) ee35561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee35561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee35561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(32,16), "ee35561");
+ check_base_class_offset(lv, (dd5561*), ABISELECT(16,8), "ee35561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35561.e");
+ test_class_info(&lv, &cd_ee35561);
+ dp->~ee35561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35561(Test_ee35561, "ee35561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35561C1Ev();
+extern void _ZN7ee35561D1Ev();
+Name_Map name_map_ee35561[] = {
+ NSPAIR(_ZN7ee35561C1Ev),
+ NSPAIR(_ZN7ee35561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee35561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, ABISELECT(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 _ZTI7ee35561[];
+extern void _ZN7ee355613fooEv();
+extern void _ZN6dd55613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355613fooEv,_ZTv0_n12_N7ee355613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355613fooEv,_ZThn24_N7ee355613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35561[0]),
+ (VTBL_ENTRY)&_ZN7ee355613fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355613fooEv,_ZTv0_n12_N7ee355613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee35561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee35561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee35561[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee35561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee35561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee35561[] = {
+ {&(_ZTV7ee35561[5]), 5,23},
+ {&(_ZTV7ee35561[11]), 11,23},
+ {&(_ZTV7ee35561[16]), 16,23},
+ {&(_ZTV7ee35561[21]), 21,23},
+ {&(_tg__ZTV6dd5561__7ee35561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee35561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee35561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee35561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee35561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35561[];
+extern VTBL_ENTRY _ZTV7ee35561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35561[];
+static VTBL_ENTRY alt_thunk_names790[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355613fooEv,_ZTv0_n12_N7ee355613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355613fooEv,_ZThn24_N7ee355613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35561 = { "ee35561", // class name
+ bases_ee35561, 4,
+ &(vtc_ee35561[0]), // expected_vtbl_contents
+ &(vtt_ee35561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35561),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35561),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 ee45561 : dd5561 {
+ int e;
+ virtual void bar(); // _ZN7ee455613barEv
+ ~ee45561(); // tgen
+ ee45561(); // tgen
+};
+//SIG(1 ee45561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45561 ::bar(){vfunc_called(this, "_ZN7ee455613barEv");}
+ee45561 ::~ee45561(){ note_dtor("ee45561", this);} // tgen
+ee45561 ::ee45561(){ note_ctor("ee45561", this);} // tgen
+
+static void Test_ee45561()
+{
+ extern Class_Descriptor cd_ee45561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45561, buf);
+ ee45561 *dp, &lv = *(dp=new (buf) ee45561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee45561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee45561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(16,12), "ee45561");
+ check_base_class_offset(lv, (dd5561*), 0, "ee45561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45561.e");
+ test_class_info(&lv, &cd_ee45561);
+ dp->~ee45561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45561(Test_ee45561, "ee45561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45561C1Ev();
+extern void _ZN7ee45561D1Ev();
+Name_Map name_map_ee45561[] = {
+ NSPAIR(_ZN7ee45561C1Ev),
+ NSPAIR(_ZN7ee45561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee45561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45561[];
+extern void _ZN7ee455613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455613barEv,_ZTv0_n16_N7ee455613barEv)();
+extern void ABISELECT(_ZThn16_N7ee455613barEv,_ZThn12_N7ee455613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455613barEv,_ZTv0_n16_N7ee455613barEv)();
+extern void ABISELECT(_ZThn32_N7ee455613barEv,_ZThn20_N7ee455613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45561[0]),
+ (VTBL_ENTRY)&_ZN7ee455613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455613barEv,_ZTv0_n16_N7ee455613barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455613barEv,_ZTv0_n16_N7ee455613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee45561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee45561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee45561[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee45561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee45561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee45561[] = {
+ {&(_ZTV7ee45561[4]), 4,16},
+ {&(_tg__ZTV6dd5561__7ee45561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee45561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee45561[4]), 4,6},
+ {&(_ZTV7ee45561[9]), 9,16},
+ {&(_ZTV7ee45561[14]), 14,16},
+ {&(_tg__ZTV5cc561__7ee45561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee45561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45561[];
+extern VTBL_ENTRY _ZTV7ee45561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45561[];
+static VTBL_ENTRY alt_thunk_names791[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455613barEv,_ZTv0_n16_N7ee455613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455613barEv,_ZThn20_N7ee455613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455613barEv,_ZThn12_N7ee455613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45561 = { "ee45561", // class name
+ bases_ee45561, 4,
+ &(vtc_ee45561[0]), // expected_vtbl_contents
+ &(vtt_ee45561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45561),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45561),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 ee55561 : virtual dd5561 {
+ int e;
+ virtual void bar(); // _ZN7ee555613barEv
+ ~ee55561(); // tgen
+ ee55561(); // tgen
+};
+//SIG(1 ee55561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55561 ::bar(){vfunc_called(this, "_ZN7ee555613barEv");}
+ee55561 ::~ee55561(){ note_dtor("ee55561", this);} // tgen
+ee55561 ::ee55561(){ note_ctor("ee55561", this);} // tgen
+
+static void Test_ee55561()
+{
+ extern Class_Descriptor cd_ee55561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55561, buf);
+ ee55561 *dp, &lv = *(dp=new (buf) ee55561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee55561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee55561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(32,16), "ee55561");
+ check_base_class_offset(lv, (dd5561*), ABISELECT(16,8), "ee55561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55561.e");
+ test_class_info(&lv, &cd_ee55561);
+ dp->~ee55561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55561(Test_ee55561, "ee55561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55561C1Ev();
+extern void _ZN7ee55561D1Ev();
+Name_Map name_map_ee55561[] = {
+ NSPAIR(_ZN7ee55561C1Ev),
+ NSPAIR(_ZN7ee55561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee55561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, ABISELECT(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 _ZTI7ee55561[];
+extern void _ZN7ee555613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555613barEv,_ZTv0_n20_N7ee555613barEv)();
+extern void ABISELECT(_ZThn16_N7ee555613barEv,_ZThn8_N7ee555613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555613barEv,_ZTv0_n16_N7ee555613barEv)();
+extern void ABISELECT(_ZThn32_N7ee555613barEv,_ZThn16_N7ee555613barEv)() __attribute__((weak));
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee555613barEv,_ZTv0_n16_N7ee555613barEv)();
+extern void ABISELECT(_ZThn48_N7ee555613barEv,_ZThn24_N7ee555613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55561[0]),
+ (VTBL_ENTRY)&_ZN7ee555613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555613barEv,_ZTv0_n20_N7ee555613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555613barEv,_ZTv0_n16_N7ee555613barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555613barEv,_ZTv0_n16_N7ee555613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee55561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee55561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee55561[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee55561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee55561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee55561[] = {
+ {&(_ZTV7ee55561[5]), 5,23},
+ {&(_ZTV7ee55561[11]), 11,23},
+ {&(_ZTV7ee55561[16]), 16,23},
+ {&(_ZTV7ee55561[21]), 21,23},
+ {&(_tg__ZTV6dd5561__7ee55561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee55561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee55561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee55561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee55561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55561[];
+extern VTBL_ENTRY _ZTV7ee55561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55561[];
+static VTBL_ENTRY alt_thunk_names792[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555613barEv,_ZTv0_n16_N7ee555613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555613barEv,_ZThn24_N7ee555613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555613barEv,_ZThn16_N7ee555613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555613barEv,_ZTv0_n20_N7ee555613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555613barEv,_ZThn8_N7ee555613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55561 = { "ee55561", // class name
+ bases_ee55561, 4,
+ &(vtc_ee55561[0]), // expected_vtbl_contents
+ &(vtt_ee55561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55561),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55561),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 ee65561 : dd5561 {
+ int e;
+ virtual void foo(); // _ZN7ee655613fooEv
+ virtual void bar(); // _ZN7ee655613barEv
+ ~ee65561(); // tgen
+ ee65561(); // tgen
+};
+//SIG(1 ee65561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65561 ::foo(){vfunc_called(this, "_ZN7ee655613fooEv");}
+void ee65561 ::bar(){vfunc_called(this, "_ZN7ee655613barEv");}
+ee65561 ::~ee65561(){ note_dtor("ee65561", this);} // tgen
+ee65561 ::ee65561(){ note_ctor("ee65561", this);} // tgen
+
+static void Test_ee65561()
+{
+ extern Class_Descriptor cd_ee65561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65561, buf);
+ ee65561 *dp, &lv = *(dp=new (buf) ee65561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee65561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee65561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(16,12), "ee65561");
+ check_base_class_offset(lv, (dd5561*), 0, "ee65561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65561.e");
+ test_class_info(&lv, &cd_ee65561);
+ dp->~ee65561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65561(Test_ee65561, "ee65561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65561C1Ev();
+extern void _ZN7ee65561D1Ev();
+Name_Map name_map_ee65561[] = {
+ NSPAIR(_ZN7ee65561C1Ev),
+ NSPAIR(_ZN7ee65561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee65561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65561[];
+extern void _ZN7ee655613barEv();
+extern void _ZN7ee655613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655613barEv,_ZTv0_n16_N7ee655613barEv)();
+extern void ABISELECT(_ZThn16_N7ee655613barEv,_ZThn12_N7ee655613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655613fooEv,_ZTv0_n12_N7ee655613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655613fooEv,_ZThn20_N7ee655613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655613barEv,_ZTv0_n16_N7ee655613barEv)();
+extern void ABISELECT(_ZThn32_N7ee655613barEv,_ZThn20_N7ee655613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65561[0]),
+ (VTBL_ENTRY)&_ZN7ee655613barEv,
+ (VTBL_ENTRY)&_ZN7ee655613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655613barEv,_ZTv0_n16_N7ee655613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655613fooEv,_ZTv0_n12_N7ee655613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655613barEv,_ZTv0_n16_N7ee655613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee65561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee65561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee65561[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee65561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee65561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee65561[] = {
+ {&(_ZTV7ee65561[4]), 4,17},
+ {&(_tg__ZTV6dd5561__7ee65561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee65561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee65561[4]), 4,6},
+ {&(_ZTV7ee65561[10]), 10,17},
+ {&(_ZTV7ee65561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee65561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee65561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65561[];
+extern VTBL_ENTRY _ZTV7ee65561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65561[];
+static VTBL_ENTRY alt_thunk_names793[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn20_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn12_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655613fooEv,_ZTv0_n12_N7ee655613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655613fooEv,_ZThn20_N7ee655613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655613barEv,_ZTv0_n16_N7ee655613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655613barEv,_ZThn20_N7ee655613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655613barEv,_ZThn12_N7ee655613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65561 = { "ee65561", // class name
+ bases_ee65561, 4,
+ &(vtc_ee65561[0]), // expected_vtbl_contents
+ &(vtt_ee65561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65561),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 ee75561 : virtual dd5561 {
+ int e;
+ virtual void foo(); // _ZN7ee755613fooEv
+ virtual void bar(); // _ZN7ee755613barEv
+ ~ee75561(); // tgen
+ ee75561(); // tgen
+};
+//SIG(1 ee75561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75561 ::foo(){vfunc_called(this, "_ZN7ee755613fooEv");}
+void ee75561 ::bar(){vfunc_called(this, "_ZN7ee755613barEv");}
+ee75561 ::~ee75561(){ note_dtor("ee75561", this);} // tgen
+ee75561 ::ee75561(){ note_ctor("ee75561", this);} // tgen
+
+static void Test_ee75561()
+{
+ extern Class_Descriptor cd_ee75561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75561, buf);
+ ee75561 *dp, &lv = *(dp=new (buf) ee75561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee75561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee75561");
+ check_base_class_offset(lv, (cc561*)(dd5561*), ABISELECT(32,16), "ee75561");
+ check_base_class_offset(lv, (dd5561*), ABISELECT(16,8), "ee75561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75561.e");
+ test_class_info(&lv, &cd_ee75561);
+ dp->~ee75561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75561(Test_ee75561, "ee75561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75561C1Ev();
+extern void _ZN7ee75561D1Ev();
+Name_Map name_map_ee75561[] = {
+ NSPAIR(_ZN7ee75561C1Ev),
+ NSPAIR(_ZN7ee75561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd5561;
+extern VTBL_ENTRY _ZTI6dd5561[];
+extern VTBL_ENTRY _ZTV6dd5561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5561[];
+static Base_Class bases_ee75561[] = {
+ // 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_bb61, 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_cc561, 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_dd5561, 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 _ZTI7ee75561[];
+extern void _ZN7ee755613fooEv();
+extern void _ZN7ee755613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755613barEv,_ZTv0_n20_N7ee755613barEv)();
+extern void ABISELECT(_ZThn16_N7ee755613barEv,_ZThn8_N7ee755613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755613barEv,_ZTv0_n16_N7ee755613barEv)();
+extern void ABISELECT(_ZThn32_N7ee755613barEv,_ZThn16_N7ee755613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755613fooEv,_ZTv0_n12_N7ee755613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755613fooEv,_ZThn24_N7ee755613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755613barEv,_ZTv0_n16_N7ee755613barEv)();
+extern void ABISELECT(_ZThn48_N7ee755613barEv,_ZThn24_N7ee755613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75561[0]),
+ (VTBL_ENTRY)&_ZN7ee755613fooEv,
+ (VTBL_ENTRY)&_ZN7ee755613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755613barEv,_ZTv0_n20_N7ee755613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755613barEv,_ZTv0_n16_N7ee755613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755613fooEv,_ZTv0_n12_N7ee755613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755613barEv,_ZTv0_n16_N7ee755613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75561[];
+extern void _ZN6dd55613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5561__7ee75561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN6dd55613barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd5561__7ee75561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv)();
+extern void ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5561__7ee75561[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee75561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee75561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee75561[] = {
+ {&(_ZTV7ee75561[5]), 5,24},
+ {&(_ZTV7ee75561[12]), 12,24},
+ {&(_ZTV7ee75561[17]), 17,24},
+ {&(_ZTV7ee75561[22]), 22,24},
+ {&(_tg__ZTV6dd5561__7ee75561[4]), 4,5},
+ {&(_tg__ZTV5cc561__6dd5561__7ee75561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd5561__7ee75561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee75561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee75561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75561[];
+extern VTBL_ENTRY _ZTV7ee75561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75561[];
+static VTBL_ENTRY alt_thunk_names794[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55613barEv,_ZTv0_n16_N6dd55613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55613barEv,_ZThn16_N6dd55613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55613barEv,_ZThn8_N6dd55613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755613fooEv,_ZTv0_n12_N7ee755613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755613fooEv,_ZThn24_N7ee755613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755613barEv,_ZTv0_n16_N7ee755613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755613barEv,_ZThn24_N7ee755613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755613barEv,_ZThn16_N7ee755613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755613barEv,_ZTv0_n20_N7ee755613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755613barEv,_ZThn8_N7ee755613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75561 = { "ee75561", // class name
+ bases_ee75561, 4,
+ &(vtc_ee75561[0]), // expected_vtbl_contents
+ &(vtt_ee75561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75561),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75561),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 dd6561 : cc561 {
+ int d;
+ virtual void bar(); // _ZN6dd65613barEv
+ virtual void foo(); // _ZN6dd65613fooEv
+ ~dd6561(); // tgen
+ dd6561(); // tgen
+};
+//SIG(-1 dd6561) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6561 ::bar(){vfunc_called(this, "_ZN6dd65613barEv");}
+void dd6561 ::foo(){vfunc_called(this, "_ZN6dd65613fooEv");}
+dd6561 ::~dd6561(){ note_dtor("dd6561", this);} // tgen
+dd6561 ::dd6561(){ note_ctor("dd6561", this);} // tgen
+
+static void Test_dd6561()
+{
+ extern Class_Descriptor cd_dd6561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6561, buf);
+ dd6561 *dp, &lv = *(dp=new (buf) dd6561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd6561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(16,12), "dd6561");
+ check_base_class_offset(lv, (cc561*), 0, "dd6561");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6561.d");
+ test_class_info(&lv, &cd_dd6561);
+ dp->~dd6561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6561(Test_dd6561, "dd6561", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6561C1Ev();
+extern void _ZN6dd6561D1Ev();
+Name_Map name_map_dd6561[] = {
+ NSPAIR(_ZN6dd6561C1Ev),
+ NSPAIR(_ZN6dd6561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd6561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd6561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd6561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd6561[] = {
+ {&(_ZTV6dd6561[3]), 3,11},
+ {&(_tg__ZTV5cc561__6dd6561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd6561[4]), 4,6},
+ {&(_ZTV6dd6561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static VTBL_ENTRY alt_thunk_names795[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6561 = { "dd6561", // class name
+ bases_dd6561, 3,
+ &(vtc_dd6561[0]), // expected_vtbl_contents
+ &(vtt_dd6561[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6561),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names795,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06561 : dd6561 {
+ int e;
+ ~ee06561(); // tgen
+ ee06561(); // tgen
+};
+//SIG(1 ee06561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06561 ::~ee06561(){ note_dtor("ee06561", this);} // tgen
+ee06561 ::ee06561(){ note_ctor("ee06561", this);} // tgen
+
+static void Test_ee06561()
+{
+ extern Class_Descriptor cd_ee06561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06561, buf);
+ ee06561 *dp, &lv = *(dp=new (buf) ee06561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee06561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(24,16), "ee06561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), 0, "ee06561");
+ check_base_class_offset(lv, (dd6561*), 0, "ee06561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06561.e");
+ test_class_info(&lv, &cd_ee06561);
+ dp->~ee06561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06561(Test_ee06561, "ee06561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06561C1Ev();
+extern void _ZN7ee06561D1Ev();
+Name_Map name_map_ee06561[] = {
+ NSPAIR(_ZN7ee06561C1Ev),
+ NSPAIR(_ZN7ee06561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee06561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee06561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee06561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee06561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee06561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee06561[] = {
+ {&(_ZTV7ee06561[3]), 3,11},
+ {&(_tg__ZTV6dd6561__7ee06561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee06561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee06561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee06561[4]), 4,6},
+ {&(_ZTV7ee06561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06561[];
+extern VTBL_ENTRY _ZTV7ee06561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06561[];
+static VTBL_ENTRY alt_thunk_names796[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06561 = { "ee06561", // class name
+ bases_ee06561, 4,
+ &(vtc_ee06561[0]), // expected_vtbl_contents
+ &(vtt_ee06561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06561),6, //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 ee16561 : virtual dd6561 {
+ int e;
+ ~ee16561(); // tgen
+ ee16561(); // tgen
+};
+//SIG(1 ee16561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16561 ::~ee16561(){ note_dtor("ee16561", this);} // tgen
+ee16561 ::ee16561(){ note_ctor("ee16561", this);} // tgen
+
+static void Test_ee16561()
+{
+ extern Class_Descriptor cd_ee16561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16561, buf);
+ ee16561 *dp, &lv = *(dp=new (buf) ee16561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee16561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(32,20), "ee16561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), ABISELECT(16,8), "ee16561");
+ check_base_class_offset(lv, (dd6561*), ABISELECT(16,8), "ee16561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16561.e");
+ test_class_info(&lv, &cd_ee16561);
+ dp->~ee16561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16561(Test_ee16561, "ee16561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16561C1Ev();
+extern void _ZN7ee16561D1Ev();
+Name_Map name_map_ee16561[] = {
+ NSPAIR(_ZN7ee16561C1Ev),
+ NSPAIR(_ZN7ee16561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee16561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, 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 _ZTI7ee16561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16561[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee16561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee16561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee16561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee16561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee16561[] = {
+ {&(_ZTV7ee16561[4]), 4,17},
+ {&(_ZTV7ee16561[9]), 9,17},
+ {&(_ZTV7ee16561[15]), 15,17},
+ {&(_tg__ZTV6dd6561__7ee16561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee16561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee16561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee16561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16561[];
+extern VTBL_ENTRY _ZTV7ee16561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16561[];
+static VTBL_ENTRY alt_thunk_names797[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16561 = { "ee16561", // class name
+ bases_ee16561, 4,
+ &(vtc_ee16561[0]), // expected_vtbl_contents
+ &(vtt_ee16561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16561),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names797,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26561 : dd6561 {
+ int e;
+ virtual void foo(); // _ZN7ee265613fooEv
+ ~ee26561(); // tgen
+ ee26561(); // tgen
+};
+//SIG(1 ee26561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26561 ::foo(){vfunc_called(this, "_ZN7ee265613fooEv");}
+ee26561 ::~ee26561(){ note_dtor("ee26561", this);} // tgen
+ee26561 ::ee26561(){ note_ctor("ee26561", this);} // tgen
+
+static void Test_ee26561()
+{
+ extern Class_Descriptor cd_ee26561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26561, buf);
+ ee26561 *dp, &lv = *(dp=new (buf) ee26561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee26561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(24,16), "ee26561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), 0, "ee26561");
+ check_base_class_offset(lv, (dd6561*), 0, "ee26561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26561.e");
+ test_class_info(&lv, &cd_ee26561);
+ dp->~ee26561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26561(Test_ee26561, "ee26561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26561C1Ev();
+extern void _ZN7ee26561D1Ev();
+Name_Map name_map_ee26561[] = {
+ NSPAIR(_ZN7ee26561C1Ev),
+ NSPAIR(_ZN7ee26561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee26561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN7ee265613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265613fooEv,_ZTv0_n12_N7ee265613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265613fooEv,_ZThn16_N7ee265613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN7ee265613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265613fooEv,_ZTv0_n12_N7ee265613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee26561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee26561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee26561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee26561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee26561[] = {
+ {&(_ZTV7ee26561[3]), 3,11},
+ {&(_tg__ZTV6dd6561__7ee26561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee26561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee26561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee26561[4]), 4,6},
+ {&(_ZTV7ee26561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26561[];
+extern VTBL_ENTRY _ZTV7ee26561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26561[];
+static VTBL_ENTRY alt_thunk_names798[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265613fooEv,_ZTv0_n12_N7ee265613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265613fooEv,_ZThn16_N7ee265613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26561 = { "ee26561", // class name
+ bases_ee26561, 4,
+ &(vtc_ee26561[0]), // expected_vtbl_contents
+ &(vtt_ee26561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26561),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 ee36561 : virtual dd6561 {
+ int e;
+ virtual void foo(); // _ZN7ee365613fooEv
+ ~ee36561(); // tgen
+ ee36561(); // tgen
+};
+//SIG(1 ee36561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36561 ::foo(){vfunc_called(this, "_ZN7ee365613fooEv");}
+ee36561 ::~ee36561(){ note_dtor("ee36561", this);} // tgen
+ee36561 ::ee36561(){ note_ctor("ee36561", this);} // tgen
+
+static void Test_ee36561()
+{
+ extern Class_Descriptor cd_ee36561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36561, buf);
+ ee36561 *dp, &lv = *(dp=new (buf) ee36561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee36561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(32,20), "ee36561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), ABISELECT(16,8), "ee36561");
+ check_base_class_offset(lv, (dd6561*), ABISELECT(16,8), "ee36561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36561.e");
+ test_class_info(&lv, &cd_ee36561);
+ dp->~ee36561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36561(Test_ee36561, "ee36561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36561C1Ev();
+extern void _ZN7ee36561D1Ev();
+Name_Map name_map_ee36561[] = {
+ NSPAIR(_ZN7ee36561C1Ev),
+ NSPAIR(_ZN7ee36561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee36561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, ABISELECT(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 _ZTI7ee36561[];
+extern void _ZN7ee365613fooEv();
+extern void _ZN6dd65613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365613fooEv,_ZTv0_n20_N7ee365613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365613fooEv,_ZThn8_N7ee365613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365613fooEv,_ZTv0_n12_N7ee365613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365613fooEv,_ZThn20_N7ee365613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36561[0]),
+ (VTBL_ENTRY)&_ZN7ee365613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365613fooEv,_ZTv0_n20_N7ee365613fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365613fooEv,_ZTv0_n12_N7ee365613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee36561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee36561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee36561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee36561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee36561[] = {
+ {&(_ZTV7ee36561[4]), 4,18},
+ {&(_ZTV7ee36561[10]), 10,18},
+ {&(_ZTV7ee36561[16]), 16,18},
+ {&(_tg__ZTV6dd6561__7ee36561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee36561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee36561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee36561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36561[];
+extern VTBL_ENTRY _ZTV7ee36561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36561[];
+static VTBL_ENTRY alt_thunk_names799[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365613fooEv,_ZTv0_n12_N7ee365613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365613fooEv,_ZThn20_N7ee365613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365613fooEv,_ZTv0_n20_N7ee365613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365613fooEv,_ZThn8_N7ee365613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36561 = { "ee36561", // class name
+ bases_ee36561, 4,
+ &(vtc_ee36561[0]), // expected_vtbl_contents
+ &(vtt_ee36561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36561),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36561),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 ee46561 : dd6561 {
+ int e;
+ virtual void bar(); // _ZN7ee465613barEv
+ ~ee46561(); // tgen
+ ee46561(); // tgen
+};
+//SIG(1 ee46561) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46561 ::bar(){vfunc_called(this, "_ZN7ee465613barEv");}
+ee46561 ::~ee46561(){ note_dtor("ee46561", this);} // tgen
+ee46561 ::ee46561(){ note_ctor("ee46561", this);} // tgen
+
+static void Test_ee46561()
+{
+ extern Class_Descriptor cd_ee46561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46561, buf);
+ ee46561 *dp, &lv = *(dp=new (buf) ee46561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee46561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(24,16), "ee46561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), 0, "ee46561");
+ check_base_class_offset(lv, (dd6561*), 0, "ee46561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46561.e");
+ test_class_info(&lv, &cd_ee46561);
+ dp->~ee46561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46561(Test_ee46561, "ee46561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46561C1Ev();
+extern void _ZN7ee46561D1Ev();
+Name_Map name_map_ee46561[] = {
+ NSPAIR(_ZN7ee46561C1Ev),
+ NSPAIR(_ZN7ee46561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee46561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46561[];
+extern void _ZN7ee465613barEv();
+extern void _ZN6dd65613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee465613barEv,_ZTv0_n16_N7ee465613barEv)();
+extern void ABISELECT(_ZThn24_N7ee465613barEv,_ZThn16_N7ee465613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46561[0]),
+ (VTBL_ENTRY)&_ZN7ee465613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465613barEv,_ZTv0_n16_N7ee465613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee46561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee46561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee46561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee46561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee46561[] = {
+ {&(_ZTV7ee46561[3]), 3,11},
+ {&(_tg__ZTV6dd6561__7ee46561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee46561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee46561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee46561[4]), 4,6},
+ {&(_ZTV7ee46561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46561[];
+extern VTBL_ENTRY _ZTV7ee46561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46561[];
+static VTBL_ENTRY alt_thunk_names800[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465613barEv,_ZTv0_n16_N7ee465613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465613barEv,_ZThn16_N7ee465613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46561 = { "ee46561", // class name
+ bases_ee46561, 4,
+ &(vtc_ee46561[0]), // expected_vtbl_contents
+ &(vtt_ee46561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46561),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 ee56561 : virtual dd6561 {
+ int e;
+ virtual void bar(); // _ZN7ee565613barEv
+ ~ee56561(); // tgen
+ ee56561(); // tgen
+};
+//SIG(1 ee56561) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56561 ::bar(){vfunc_called(this, "_ZN7ee565613barEv");}
+ee56561 ::~ee56561(){ note_dtor("ee56561", this);} // tgen
+ee56561 ::ee56561(){ note_ctor("ee56561", this);} // tgen
+
+static void Test_ee56561()
+{
+ extern Class_Descriptor cd_ee56561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56561, buf);
+ ee56561 *dp, &lv = *(dp=new (buf) ee56561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee56561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(32,20), "ee56561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), ABISELECT(16,8), "ee56561");
+ check_base_class_offset(lv, (dd6561*), ABISELECT(16,8), "ee56561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56561.e");
+ test_class_info(&lv, &cd_ee56561);
+ dp->~ee56561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56561(Test_ee56561, "ee56561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56561C1Ev();
+extern void _ZN7ee56561D1Ev();
+Name_Map name_map_ee56561[] = {
+ NSPAIR(_ZN7ee56561C1Ev),
+ NSPAIR(_ZN7ee56561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee56561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, ABISELECT(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 _ZTI7ee56561[];
+extern void _ZN7ee565613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565613barEv,_ZTv0_n16_N7ee565613barEv)();
+extern void ABISELECT(_ZThn16_N7ee565613barEv,_ZThn8_N7ee565613barEv)() __attribute__((weak));
+extern void _ZN6dd65613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee565613barEv,_ZTv0_n16_N7ee565613barEv)();
+extern void ABISELECT(_ZThn32_N7ee565613barEv,_ZThn20_N7ee565613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56561[0]),
+ (VTBL_ENTRY)&_ZN7ee565613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565613barEv,_ZTv0_n16_N7ee565613barEv),
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565613barEv,_ZTv0_n16_N7ee565613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee56561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee56561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee56561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee56561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee56561[] = {
+ {&(_ZTV7ee56561[4]), 4,18},
+ {&(_ZTV7ee56561[10]), 10,18},
+ {&(_ZTV7ee56561[16]), 16,18},
+ {&(_tg__ZTV6dd6561__7ee56561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee56561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee56561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee56561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56561[];
+extern VTBL_ENTRY _ZTV7ee56561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56561[];
+static VTBL_ENTRY alt_thunk_names801[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565613barEv,_ZTv0_n16_N7ee565613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565613barEv,_ZThn20_N7ee565613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565613barEv,_ZThn8_N7ee565613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56561 = { "ee56561", // class name
+ bases_ee56561, 4,
+ &(vtc_ee56561[0]), // expected_vtbl_contents
+ &(vtt_ee56561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56561),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56561),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 ee66561 : dd6561 {
+ int e;
+ virtual void foo(); // _ZN7ee665613fooEv
+ virtual void bar(); // _ZN7ee665613barEv
+ ~ee66561(); // tgen
+ ee66561(); // tgen
+};
+//SIG(1 ee66561) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66561 ::foo(){vfunc_called(this, "_ZN7ee665613fooEv");}
+void ee66561 ::bar(){vfunc_called(this, "_ZN7ee665613barEv");}
+ee66561 ::~ee66561(){ note_dtor("ee66561", this);} // tgen
+ee66561 ::ee66561(){ note_ctor("ee66561", this);} // tgen
+
+static void Test_ee66561()
+{
+ extern Class_Descriptor cd_ee66561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66561, buf);
+ ee66561 *dp, &lv = *(dp=new (buf) ee66561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee66561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(24,16), "ee66561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), 0, "ee66561");
+ check_base_class_offset(lv, (dd6561*), 0, "ee66561");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66561.e");
+ test_class_info(&lv, &cd_ee66561);
+ dp->~ee66561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66561(Test_ee66561, "ee66561", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66561C1Ev();
+extern void _ZN7ee66561D1Ev();
+Name_Map name_map_ee66561[] = {
+ NSPAIR(_ZN7ee66561C1Ev),
+ NSPAIR(_ZN7ee66561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee66561[] = {
+ // 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_bb61, 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_cc561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66561[];
+extern void _ZN7ee665613barEv();
+extern void _ZN7ee665613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665613fooEv,_ZTv0_n12_N7ee665613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665613fooEv,_ZThn16_N7ee665613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665613barEv,_ZTv0_n16_N7ee665613barEv)();
+extern void ABISELECT(_ZThn24_N7ee665613barEv,_ZThn16_N7ee665613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66561[0]),
+ (VTBL_ENTRY)&_ZN7ee665613barEv,
+ (VTBL_ENTRY)&_ZN7ee665613fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665613fooEv,_ZTv0_n12_N7ee665613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665613barEv,_ZTv0_n16_N7ee665613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee66561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee66561[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee66561[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee66561[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee66561[] = {
+ {&(_ZTV7ee66561[3]), 3,11},
+ {&(_tg__ZTV6dd6561__7ee66561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee66561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee66561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee66561[4]), 4,6},
+ {&(_ZTV7ee66561[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66561[];
+extern VTBL_ENTRY _ZTV7ee66561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66561[];
+static VTBL_ENTRY alt_thunk_names802[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613barEv,_ZThn16_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65613fooEv,_ZThn16_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5613barEv,_ZThn16_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665613barEv,_ZTv0_n16_N7ee665613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665613barEv,_ZThn16_N7ee665613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665613fooEv,_ZTv0_n12_N7ee665613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665613fooEv,_ZThn16_N7ee665613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66561 = { "ee66561", // class name
+ bases_ee66561, 4,
+ &(vtc_ee66561[0]), // expected_vtbl_contents
+ &(vtt_ee66561[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66561),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66561),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 ee76561 : virtual dd6561 {
+ int e;
+ virtual void foo(); // _ZN7ee765613fooEv
+ virtual void bar(); // _ZN7ee765613barEv
+ ~ee76561(); // tgen
+ ee76561(); // tgen
+};
+//SIG(1 ee76561) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76561 ::foo(){vfunc_called(this, "_ZN7ee765613fooEv");}
+void ee76561 ::bar(){vfunc_called(this, "_ZN7ee765613barEv");}
+ee76561 ::~ee76561(){ note_dtor("ee76561", this);} // tgen
+ee76561 ::ee76561(){ note_ctor("ee76561", this);} // tgen
+
+static void Test_ee76561()
+{
+ extern Class_Descriptor cd_ee76561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76561, buf);
+ ee76561 *dp, &lv = *(dp=new (buf) ee76561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee76561");
+ check_base_class_offset(lv, (bb61*)(cc561*)(dd6561*), ABISELECT(32,20), "ee76561");
+ check_base_class_offset(lv, (cc561*)(dd6561*), ABISELECT(16,8), "ee76561");
+ check_base_class_offset(lv, (dd6561*), ABISELECT(16,8), "ee76561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76561.e");
+ test_class_info(&lv, &cd_ee76561);
+ dp->~ee76561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76561(Test_ee76561, "ee76561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76561C1Ev();
+extern void _ZN7ee76561D1Ev();
+Name_Map name_map_ee76561[] = {
+ NSPAIR(_ZN7ee76561C1Ev),
+ NSPAIR(_ZN7ee76561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd6561;
+extern VTBL_ENTRY _ZTI6dd6561[];
+extern VTBL_ENTRY _ZTV6dd6561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6561[];
+static Base_Class bases_ee76561[] = {
+ // 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_bb61, 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_cc561, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6561, ABISELECT(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 _ZTI7ee76561[];
+extern void _ZN7ee765613fooEv();
+extern void _ZN7ee765613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765613barEv,_ZTv0_n16_N7ee765613barEv)();
+extern void ABISELECT(_ZThn16_N7ee765613barEv,_ZThn8_N7ee765613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765613fooEv,_ZTv0_n20_N7ee765613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765613fooEv,_ZThn8_N7ee765613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765613fooEv,_ZTv0_n12_N7ee765613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765613fooEv,_ZThn20_N7ee765613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765613barEv,_ZTv0_n16_N7ee765613barEv)();
+extern void ABISELECT(_ZThn32_N7ee765613barEv,_ZThn20_N7ee765613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76561[0]),
+ (VTBL_ENTRY)&_ZN7ee765613fooEv,
+ (VTBL_ENTRY)&_ZN7ee765613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765613barEv,_ZTv0_n16_N7ee765613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765613fooEv,_ZTv0_n20_N7ee765613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765613fooEv,_ZTv0_n12_N7ee765613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765613barEv,_ZTv0_n16_N7ee765613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76561[];
+extern void _ZN6dd65613barEv();
+extern void _ZN6dd65613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6561__7ee76561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&_ZN6dd65613barEv,
+ (VTBL_ENTRY)&_ZN6dd65613fooEv,
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc5616dd6561__7ee76561[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc5616dd6561__7ee76561[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv)();
+extern void ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6561__7ee76561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv),
+};
+static VTT_ENTRY vtt_ee76561[] = {
+ {&(_ZTV7ee76561[4]), 4,19},
+ {&(_ZTV7ee76561[11]), 11,19},
+ {&(_ZTV7ee76561[17]), 17,19},
+ {&(_tg__ZTV6dd6561__7ee76561[3]), 3,5},
+ {&(_tg__ZTV5cc5616dd6561__7ee76561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc5616dd6561__7ee76561[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6561__7ee76561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76561[];
+extern VTBL_ENTRY _ZTV7ee76561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76561[];
+static VTBL_ENTRY alt_thunk_names803[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65613barEv,_ZTv0_n16_N6dd65613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613barEv,_ZThn12_N6dd65613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65613fooEv,_ZTv0_n12_N6dd65613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65613fooEv,_ZThn12_N6dd65613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn12_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765613fooEv,_ZTv0_n12_N7ee765613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765613fooEv,_ZThn20_N7ee765613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765613fooEv,_ZTv0_n20_N7ee765613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765613fooEv,_ZThn8_N7ee765613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765613barEv,_ZTv0_n16_N7ee765613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765613barEv,_ZThn20_N7ee765613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765613barEv,_ZThn8_N7ee765613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76561 = { "ee76561", // class name
+ bases_ee76561, 4,
+ &(vtc_ee76561[0]), // expected_vtbl_contents
+ &(vtt_ee76561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76561),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76561),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 dd7561 : virtual cc561 {
+ int d;
+ virtual void bar(); // _ZN6dd75613barEv
+ virtual void foo(); // _ZN6dd75613fooEv
+ ~dd7561(); // tgen
+ dd7561(); // tgen
+};
+//SIG(-1 dd7561) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7561 ::bar(){vfunc_called(this, "_ZN6dd75613barEv");}
+void dd7561 ::foo(){vfunc_called(this, "_ZN6dd75613fooEv");}
+dd7561 ::~dd7561(){ note_dtor("dd7561", this);} // tgen
+dd7561 ::dd7561(){ note_ctor("dd7561", this);} // tgen
+
+static void Test_dd7561()
+{
+ extern Class_Descriptor cd_dd7561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7561, buf);
+ dd7561 *dp, &lv = *(dp=new (buf) dd7561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd7561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,16), "dd7561");
+ check_base_class_offset(lv, (cc561*), ABISELECT(16,8), "dd7561");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7561.d");
+ test_class_info(&lv, &cd_dd7561);
+ dp->~dd7561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7561(Test_dd7561, "dd7561", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7561C1Ev();
+extern void _ZN6dd7561D1Ev();
+Name_Map name_map_dd7561[] = {
+ NSPAIR(_ZN6dd7561C1Ev),
+ NSPAIR(_ZN6dd7561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+static Base_Class bases_dd7561[] = {
+ // 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_bb61, 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_cc561, 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 _ZTI6dd7561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__6dd7561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_dd7561[] = {
+ {&(_ZTV6dd7561[4]), 4,17},
+ {&(_ZTV6dd7561[10]), 10,17},
+ {&(_ZTV6dd7561[15]), 15,17},
+ {&(_tg__ZTV5cc561__6dd7561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__6dd7561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static VTBL_ENTRY alt_thunk_names804[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7561 = { "dd7561", // class name
+ bases_dd7561, 3,
+ &(vtc_dd7561[0]), // expected_vtbl_contents
+ &(vtt_dd7561[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7561),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names804,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07561 : dd7561 {
+ int e;
+ ~ee07561(); // tgen
+ ee07561(); // tgen
+};
+//SIG(1 ee07561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07561 ::~ee07561(){ note_dtor("ee07561", this);} // tgen
+ee07561 ::ee07561(){ note_ctor("ee07561", this);} // tgen
+
+static void Test_ee07561()
+{
+ extern Class_Descriptor cd_ee07561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07561, buf);
+ ee07561 *dp, &lv = *(dp=new (buf) ee07561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee07561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee07561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(16,12), "ee07561");
+ check_base_class_offset(lv, (dd7561*), 0, "ee07561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07561.e");
+ test_class_info(&lv, &cd_ee07561);
+ dp->~ee07561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07561(Test_ee07561, "ee07561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07561C1Ev();
+extern void _ZN7ee07561D1Ev();
+Name_Map name_map_ee07561[] = {
+ NSPAIR(_ZN7ee07561C1Ev),
+ NSPAIR(_ZN7ee07561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee07561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee07561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee07561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee07561[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee07561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee07561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee07561[] = {
+ {&(_ZTV7ee07561[4]), 4,17},
+ {&(_tg__ZTV6dd7561__7ee07561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee07561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee07561[4]), 4,6},
+ {&(_ZTV7ee07561[10]), 10,17},
+ {&(_ZTV7ee07561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee07561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee07561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07561[];
+extern VTBL_ENTRY _ZTV7ee07561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07561[];
+static VTBL_ENTRY alt_thunk_names805[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07561 = { "ee07561", // class name
+ bases_ee07561, 4,
+ &(vtc_ee07561[0]), // expected_vtbl_contents
+ &(vtt_ee07561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07561),8, //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 ee17561 : virtual dd7561 {
+ int e;
+ ~ee17561(); // tgen
+ ee17561(); // tgen
+};
+//SIG(1 ee17561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17561 ::~ee17561(){ note_dtor("ee17561", this);} // tgen
+ee17561 ::ee17561(){ note_ctor("ee17561", this);} // tgen
+
+static void Test_ee17561()
+{
+ extern Class_Descriptor cd_ee17561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17561, buf);
+ ee17561 *dp, &lv = *(dp=new (buf) ee17561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee17561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee17561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(32,16), "ee17561");
+ check_base_class_offset(lv, (dd7561*), ABISELECT(16,8), "ee17561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17561.e");
+ test_class_info(&lv, &cd_ee17561);
+ dp->~ee17561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17561(Test_ee17561, "ee17561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17561C1Ev();
+extern void _ZN7ee17561D1Ev();
+Name_Map name_map_ee17561[] = {
+ NSPAIR(_ZN7ee17561C1Ev),
+ NSPAIR(_ZN7ee17561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee17561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 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 _ZTI7ee17561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17561[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee17561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee17561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee17561[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee17561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee17561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee17561[] = {
+ {&(_ZTV7ee17561[5]), 5,24},
+ {&(_ZTV7ee17561[11]), 11,24},
+ {&(_ZTV7ee17561[17]), 17,24},
+ {&(_ZTV7ee17561[22]), 22,24},
+ {&(_tg__ZTV6dd7561__7ee17561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee17561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee17561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee17561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee17561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17561[];
+extern VTBL_ENTRY _ZTV7ee17561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17561[];
+static VTBL_ENTRY alt_thunk_names806[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17561 = { "ee17561", // class name
+ bases_ee17561, 4,
+ &(vtc_ee17561[0]), // expected_vtbl_contents
+ &(vtt_ee17561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17561),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17561),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names806,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27561 : dd7561 {
+ int e;
+ virtual void foo(); // _ZN7ee275613fooEv
+ ~ee27561(); // tgen
+ ee27561(); // tgen
+};
+//SIG(1 ee27561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27561 ::foo(){vfunc_called(this, "_ZN7ee275613fooEv");}
+ee27561 ::~ee27561(){ note_dtor("ee27561", this);} // tgen
+ee27561 ::ee27561(){ note_ctor("ee27561", this);} // tgen
+
+static void Test_ee27561()
+{
+ extern Class_Descriptor cd_ee27561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27561, buf);
+ ee27561 *dp, &lv = *(dp=new (buf) ee27561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee27561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee27561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(16,12), "ee27561");
+ check_base_class_offset(lv, (dd7561*), 0, "ee27561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27561.e");
+ test_class_info(&lv, &cd_ee27561);
+ dp->~ee27561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27561(Test_ee27561, "ee27561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27561C1Ev();
+extern void _ZN7ee27561D1Ev();
+Name_Map name_map_ee27561[] = {
+ NSPAIR(_ZN7ee27561C1Ev),
+ NSPAIR(_ZN7ee27561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee27561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN7ee275613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275613fooEv,_ZTv0_n12_N7ee275613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275613fooEv,_ZThn20_N7ee275613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN7ee275613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275613fooEv,_ZTv0_n12_N7ee275613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee27561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee27561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee27561[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee27561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee27561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee27561[] = {
+ {&(_ZTV7ee27561[4]), 4,17},
+ {&(_tg__ZTV6dd7561__7ee27561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee27561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee27561[4]), 4,6},
+ {&(_ZTV7ee27561[10]), 10,17},
+ {&(_ZTV7ee27561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee27561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee27561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27561[];
+extern VTBL_ENTRY _ZTV7ee27561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27561[];
+static VTBL_ENTRY alt_thunk_names807[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275613fooEv,_ZTv0_n12_N7ee275613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275613fooEv,_ZThn20_N7ee275613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27561 = { "ee27561", // class name
+ bases_ee27561, 4,
+ &(vtc_ee27561[0]), // expected_vtbl_contents
+ &(vtt_ee27561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27561),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 ee37561 : virtual dd7561 {
+ int e;
+ virtual void foo(); // _ZN7ee375613fooEv
+ ~ee37561(); // tgen
+ ee37561(); // tgen
+};
+//SIG(1 ee37561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37561 ::foo(){vfunc_called(this, "_ZN7ee375613fooEv");}
+ee37561 ::~ee37561(){ note_dtor("ee37561", this);} // tgen
+ee37561 ::ee37561(){ note_ctor("ee37561", this);} // tgen
+
+static void Test_ee37561()
+{
+ extern Class_Descriptor cd_ee37561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37561, buf);
+ ee37561 *dp, &lv = *(dp=new (buf) ee37561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee37561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee37561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(32,16), "ee37561");
+ check_base_class_offset(lv, (dd7561*), ABISELECT(16,8), "ee37561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37561.e");
+ test_class_info(&lv, &cd_ee37561);
+ dp->~ee37561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37561(Test_ee37561, "ee37561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37561C1Ev();
+extern void _ZN7ee37561D1Ev();
+Name_Map name_map_ee37561[] = {
+ NSPAIR(_ZN7ee37561C1Ev),
+ NSPAIR(_ZN7ee37561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee37561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 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 _ZTI7ee37561[];
+extern void _ZN7ee375613fooEv();
+extern void _ZN6dd75613barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375613fooEv,_ZTv0_n24_N7ee375613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375613fooEv,_ZThn8_N7ee375613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375613fooEv,_ZTv0_n12_N7ee375613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375613fooEv,_ZThn24_N7ee375613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37561[0]),
+ (VTBL_ENTRY)&_ZN7ee375613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375613fooEv,_ZTv0_n24_N7ee375613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375613fooEv,_ZTv0_n12_N7ee375613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee37561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee37561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee37561[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee37561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee37561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee37561[] = {
+ {&(_ZTV7ee37561[5]), 5,25},
+ {&(_ZTV7ee37561[12]), 12,25},
+ {&(_ZTV7ee37561[18]), 18,25},
+ {&(_ZTV7ee37561[23]), 23,25},
+ {&(_tg__ZTV6dd7561__7ee37561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee37561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee37561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee37561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee37561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37561[];
+extern VTBL_ENTRY _ZTV7ee37561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37561[];
+static VTBL_ENTRY alt_thunk_names808[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375613fooEv,_ZTv0_n12_N7ee375613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375613fooEv,_ZThn24_N7ee375613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375613fooEv,_ZTv0_n24_N7ee375613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375613fooEv,_ZThn8_N7ee375613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37561 = { "ee37561", // class name
+ bases_ee37561, 4,
+ &(vtc_ee37561[0]), // expected_vtbl_contents
+ &(vtt_ee37561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37561),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37561),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 ee47561 : dd7561 {
+ int e;
+ virtual void bar(); // _ZN7ee475613barEv
+ ~ee47561(); // tgen
+ ee47561(); // tgen
+};
+//SIG(1 ee47561) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47561 ::bar(){vfunc_called(this, "_ZN7ee475613barEv");}
+ee47561 ::~ee47561(){ note_dtor("ee47561", this);} // tgen
+ee47561 ::ee47561(){ note_ctor("ee47561", this);} // tgen
+
+static void Test_ee47561()
+{
+ extern Class_Descriptor cd_ee47561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47561, buf);
+ ee47561 *dp, &lv = *(dp=new (buf) ee47561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee47561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee47561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(16,12), "ee47561");
+ check_base_class_offset(lv, (dd7561*), 0, "ee47561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47561.e");
+ test_class_info(&lv, &cd_ee47561);
+ dp->~ee47561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47561(Test_ee47561, "ee47561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47561C1Ev();
+extern void _ZN7ee47561D1Ev();
+Name_Map name_map_ee47561[] = {
+ NSPAIR(_ZN7ee47561C1Ev),
+ NSPAIR(_ZN7ee47561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee47561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47561[];
+extern void _ZN7ee475613barEv();
+extern void _ZN6dd75613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475613barEv,_ZTv0_n16_N7ee475613barEv)();
+extern void ABISELECT(_ZThn16_N7ee475613barEv,_ZThn12_N7ee475613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475613barEv,_ZTv0_n16_N7ee475613barEv)();
+extern void ABISELECT(_ZThn32_N7ee475613barEv,_ZThn20_N7ee475613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47561[0]),
+ (VTBL_ENTRY)&_ZN7ee475613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475613barEv,_ZTv0_n16_N7ee475613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475613barEv,_ZTv0_n16_N7ee475613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee47561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee47561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee47561[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee47561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee47561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee47561[] = {
+ {&(_ZTV7ee47561[4]), 4,17},
+ {&(_tg__ZTV6dd7561__7ee47561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee47561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee47561[4]), 4,6},
+ {&(_ZTV7ee47561[10]), 10,17},
+ {&(_ZTV7ee47561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee47561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee47561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47561[];
+extern VTBL_ENTRY _ZTV7ee47561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47561[];
+static VTBL_ENTRY alt_thunk_names809[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475613barEv,_ZTv0_n16_N7ee475613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475613barEv,_ZThn20_N7ee475613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475613barEv,_ZThn12_N7ee475613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47561 = { "ee47561", // class name
+ bases_ee47561, 4,
+ &(vtc_ee47561[0]), // expected_vtbl_contents
+ &(vtt_ee47561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47561),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 ee57561 : virtual dd7561 {
+ int e;
+ virtual void bar(); // _ZN7ee575613barEv
+ ~ee57561(); // tgen
+ ee57561(); // tgen
+};
+//SIG(1 ee57561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57561 ::bar(){vfunc_called(this, "_ZN7ee575613barEv");}
+ee57561 ::~ee57561(){ note_dtor("ee57561", this);} // tgen
+ee57561 ::ee57561(){ note_ctor("ee57561", this);} // tgen
+
+static void Test_ee57561()
+{
+ extern Class_Descriptor cd_ee57561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57561, buf);
+ ee57561 *dp, &lv = *(dp=new (buf) ee57561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee57561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee57561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(32,16), "ee57561");
+ check_base_class_offset(lv, (dd7561*), ABISELECT(16,8), "ee57561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57561.e");
+ test_class_info(&lv, &cd_ee57561);
+ dp->~ee57561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57561(Test_ee57561, "ee57561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57561C1Ev();
+extern void _ZN7ee57561D1Ev();
+Name_Map name_map_ee57561[] = {
+ NSPAIR(_ZN7ee57561C1Ev),
+ NSPAIR(_ZN7ee57561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee57561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 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 _ZTI7ee57561[];
+extern void _ZN7ee575613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575613barEv,_ZTv0_n20_N7ee575613barEv)();
+extern void ABISELECT(_ZThn16_N7ee575613barEv,_ZThn8_N7ee575613barEv)() __attribute__((weak));
+extern void _ZN6dd75613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575613barEv,_ZTv0_n16_N7ee575613barEv)();
+extern void ABISELECT(_ZThn32_N7ee575613barEv,_ZThn16_N7ee575613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575613barEv,_ZTv0_n16_N7ee575613barEv)();
+extern void ABISELECT(_ZThn48_N7ee575613barEv,_ZThn24_N7ee575613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57561[0]),
+ (VTBL_ENTRY)&_ZN7ee575613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575613barEv,_ZTv0_n20_N7ee575613barEv),
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575613barEv,_ZTv0_n16_N7ee575613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575613barEv,_ZTv0_n16_N7ee575613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee57561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee57561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee57561[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee57561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee57561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee57561[] = {
+ {&(_ZTV7ee57561[5]), 5,25},
+ {&(_ZTV7ee57561[12]), 12,25},
+ {&(_ZTV7ee57561[18]), 18,25},
+ {&(_ZTV7ee57561[23]), 23,25},
+ {&(_tg__ZTV6dd7561__7ee57561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee57561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee57561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee57561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee57561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57561[];
+extern VTBL_ENTRY _ZTV7ee57561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57561[];
+static VTBL_ENTRY alt_thunk_names810[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575613barEv,_ZTv0_n16_N7ee575613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575613barEv,_ZThn24_N7ee575613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575613barEv,_ZThn16_N7ee575613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575613barEv,_ZTv0_n20_N7ee575613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575613barEv,_ZThn8_N7ee575613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57561 = { "ee57561", // class name
+ bases_ee57561, 4,
+ &(vtc_ee57561[0]), // expected_vtbl_contents
+ &(vtt_ee57561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57561),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57561),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 ee67561 : dd7561 {
+ int e;
+ virtual void foo(); // _ZN7ee675613fooEv
+ virtual void bar(); // _ZN7ee675613barEv
+ ~ee67561(); // tgen
+ ee67561(); // tgen
+};
+//SIG(1 ee67561) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67561 ::foo(){vfunc_called(this, "_ZN7ee675613fooEv");}
+void ee67561 ::bar(){vfunc_called(this, "_ZN7ee675613barEv");}
+ee67561 ::~ee67561(){ note_dtor("ee67561", this);} // tgen
+ee67561 ::ee67561(){ note_ctor("ee67561", this);} // tgen
+
+static void Test_ee67561()
+{
+ extern Class_Descriptor cd_ee67561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67561, buf);
+ ee67561 *dp, &lv = *(dp=new (buf) ee67561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee67561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(32,20), "ee67561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(16,12), "ee67561");
+ check_base_class_offset(lv, (dd7561*), 0, "ee67561");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67561.e");
+ test_class_info(&lv, &cd_ee67561);
+ dp->~ee67561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67561(Test_ee67561, "ee67561", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67561C1Ev();
+extern void _ZN7ee67561D1Ev();
+Name_Map name_map_ee67561[] = {
+ NSPAIR(_ZN7ee67561C1Ev),
+ NSPAIR(_ZN7ee67561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee67561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67561[];
+extern void _ZN7ee675613barEv();
+extern void _ZN7ee675613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675613barEv,_ZTv0_n16_N7ee675613barEv)();
+extern void ABISELECT(_ZThn16_N7ee675613barEv,_ZThn12_N7ee675613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675613fooEv,_ZTv0_n12_N7ee675613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675613fooEv,_ZThn20_N7ee675613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675613barEv,_ZTv0_n16_N7ee675613barEv)();
+extern void ABISELECT(_ZThn32_N7ee675613barEv,_ZThn20_N7ee675613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67561[0]),
+ (VTBL_ENTRY)&_ZN7ee675613barEv,
+ (VTBL_ENTRY)&_ZN7ee675613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675613barEv,_ZTv0_n16_N7ee675613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675613fooEv,_ZTv0_n12_N7ee675613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675613barEv,_ZTv0_n16_N7ee675613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee67561[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee67561[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee67561[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee67561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee67561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee67561[] = {
+ {&(_ZTV7ee67561[4]), 4,17},
+ {&(_tg__ZTV6dd7561__7ee67561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee67561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee67561[4]), 4,6},
+ {&(_ZTV7ee67561[10]), 10,17},
+ {&(_ZTV7ee67561[15]), 15,17},
+ {&(_tg__ZTV5cc561__7ee67561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee67561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67561[];
+extern VTBL_ENTRY _ZTV7ee67561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67561[];
+static VTBL_ENTRY alt_thunk_names811[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn20_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn20_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn12_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675613fooEv,_ZTv0_n12_N7ee675613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675613fooEv,_ZThn20_N7ee675613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675613barEv,_ZTv0_n16_N7ee675613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675613barEv,_ZThn20_N7ee675613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675613barEv,_ZThn12_N7ee675613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67561 = { "ee67561", // class name
+ bases_ee67561, 4,
+ &(vtc_ee67561[0]), // expected_vtbl_contents
+ &(vtt_ee67561[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67561),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67561),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67561),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 ee77561 : virtual dd7561 {
+ int e;
+ virtual void foo(); // _ZN7ee775613fooEv
+ virtual void bar(); // _ZN7ee775613barEv
+ ~ee77561(); // tgen
+ ee77561(); // tgen
+};
+//SIG(1 ee77561) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77561 ::foo(){vfunc_called(this, "_ZN7ee775613fooEv");}
+void ee77561 ::bar(){vfunc_called(this, "_ZN7ee775613barEv");}
+ee77561 ::~ee77561(){ note_dtor("ee77561", this);} // tgen
+ee77561 ::ee77561(){ note_ctor("ee77561", this);} // tgen
+
+static void Test_ee77561()
+{
+ extern Class_Descriptor cd_ee77561;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77561, buf);
+ ee77561 *dp, &lv = *(dp=new (buf) ee77561());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77561)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77561)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee77561");
+ check_base_class_offset(lv, (bb61*)(cc561*), ABISELECT(48,24), "ee77561");
+ check_base_class_offset(lv, (cc561*)(dd7561*), ABISELECT(32,16), "ee77561");
+ check_base_class_offset(lv, (dd7561*), ABISELECT(16,8), "ee77561");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77561.e");
+ test_class_info(&lv, &cd_ee77561);
+ dp->~ee77561();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77561(Test_ee77561, "ee77561", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77561C1Ev();
+extern void _ZN7ee77561D1Ev();
+Name_Map name_map_ee77561[] = {
+ NSPAIR(_ZN7ee77561C1Ev),
+ NSPAIR(_ZN7ee77561D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc561;
+extern VTBL_ENTRY _ZTI5cc561[];
+extern VTBL_ENTRY _ZTV5cc561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc561[];
+extern Class_Descriptor cd_dd7561;
+extern VTBL_ENTRY _ZTI6dd7561[];
+extern VTBL_ENTRY _ZTV6dd7561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7561[];
+static Base_Class bases_ee77561[] = {
+ // 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_bb61, 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_cc561, 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_dd7561, 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 _ZTI7ee77561[];
+extern void _ZN7ee775613fooEv();
+extern void _ZN7ee775613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775613barEv,_ZTv0_n20_N7ee775613barEv)();
+extern void ABISELECT(_ZThn16_N7ee775613barEv,_ZThn8_N7ee775613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775613fooEv,_ZTv0_n24_N7ee775613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775613fooEv,_ZThn8_N7ee775613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775613barEv,_ZTv0_n16_N7ee775613barEv)();
+extern void ABISELECT(_ZThn32_N7ee775613barEv,_ZThn16_N7ee775613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775613fooEv,_ZTv0_n12_N7ee775613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775613fooEv,_ZThn24_N7ee775613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775613barEv,_ZTv0_n16_N7ee775613barEv)();
+extern void ABISELECT(_ZThn48_N7ee775613barEv,_ZThn24_N7ee775613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77561[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77561[0]),
+ (VTBL_ENTRY)&_ZN7ee775613fooEv,
+ (VTBL_ENTRY)&_ZN7ee775613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775613barEv,_ZTv0_n20_N7ee775613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775613fooEv,_ZTv0_n24_N7ee775613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775613barEv,_ZTv0_n16_N7ee775613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775613fooEv,_ZTv0_n12_N7ee775613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775613barEv,_ZTv0_n16_N7ee775613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77561[];
+extern void _ZN6dd75613barEv();
+extern void _ZN6dd75613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7561__7ee77561[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&_ZN6dd75613barEv,
+ (VTBL_ENTRY)&_ZN6dd75613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc561__6dd7561__7ee77561[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv)();
+extern void ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7561__7ee77561[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7561[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv),
+};
+extern void _ZN5cc5613barEv();
+static VTBL_ENTRY _tg__ZTV5cc561__7ee77561[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN5cc5613barEv,
+};
+extern void _ZN4bb613fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv)();
+extern void ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc561__7ee77561[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc561[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv),
+};
+static VTT_ENTRY vtt_ee77561[] = {
+ {&(_ZTV7ee77561[5]), 5,26},
+ {&(_ZTV7ee77561[13]), 13,26},
+ {&(_ZTV7ee77561[19]), 19,26},
+ {&(_ZTV7ee77561[24]), 24,26},
+ {&(_tg__ZTV6dd7561__7ee77561[4]), 4,6},
+ {&(_tg__ZTV5cc561__6dd7561__7ee77561[4]), 4,5},
+ {&(_tg__ZTV4bb61__6dd7561__7ee77561[4]), 4,6},
+ {&(_tg__ZTV5cc561__7ee77561[3]), 3,4},
+ {&(_tg__ZTV4bb61__5cc561__7ee77561[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77561[];
+extern VTBL_ENTRY _ZTV7ee77561[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77561[];
+static VTBL_ENTRY alt_thunk_names812[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5613barEv,_ZTv0_n16_N5cc5613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5613barEv,_ZThn8_N5cc5613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75613fooEv,_ZTv0_n12_N6dd75613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613fooEv,_ZThn16_N6dd75613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75613barEv,_ZTv0_n16_N6dd75613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75613barEv,_ZThn16_N6dd75613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75613barEv,_ZThn8_N6dd75613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775613fooEv,_ZTv0_n12_N7ee775613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775613fooEv,_ZThn24_N7ee775613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775613barEv,_ZTv0_n16_N7ee775613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775613barEv,_ZThn24_N7ee775613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775613barEv,_ZThn16_N7ee775613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775613fooEv,_ZTv0_n24_N7ee775613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775613fooEv,_ZThn8_N7ee775613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775613barEv,_ZTv0_n20_N7ee775613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775613barEv,_ZThn8_N7ee775613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77561 = { "ee77561", // class name
+ bases_ee77561, 4,
+ &(vtc_ee77561[0]), // expected_vtbl_contents
+ &(vtt_ee77561[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77561),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77561),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77561),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 cc661 : bb61 {
+ int c;
+ virtual void foo(); // _ZN5cc6613fooEv
+ virtual void bar(); // _ZN5cc6613barEv
+ ~cc661(); // tgen
+ cc661(); // tgen
+};
+//SIG(-1 cc661) C1{ BC2{ BC3{ v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc661 ::foo(){vfunc_called(this, "_ZN5cc6613fooEv");}
+void cc661 ::bar(){vfunc_called(this, "_ZN5cc6613barEv");}
+cc661 ::~cc661(){ note_dtor("cc661", this);} // tgen
+cc661 ::cc661(){ note_ctor("cc661", this);} // tgen
+
+static void Test_cc661()
+{
+ extern Class_Descriptor cd_cc661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc661, buf);
+ cc661 *dp, &lv = *(dp=new (buf) cc661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc661)");
+ check_base_class_offset(lv, (aa1*)(bb61*), 0, "cc661");
+ check_base_class_offset(lv, (bb61*), 0, "cc661");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc661.c");
+ test_class_info(&lv, &cd_cc661);
+ dp->~cc661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc661(Test_cc661, "cc661", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc661C1Ev();
+extern void _ZN5cc661D1Ev();
+Name_Map name_map_cc661[] = {
+ NSPAIR(_ZN5cc661C1Ev),
+ NSPAIR(_ZN5cc661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_cc661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+Class_Descriptor cd_cc661 = { "cc661", // class name
+ bases_cc661, 2,
+ &(vtc_cc661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc661),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 dd0661 : cc661 {
+ int d;
+ ~dd0661(); // tgen
+ dd0661(); // tgen
+};
+//SIG(-1 dd0661) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0661 ::~dd0661(){ note_dtor("dd0661", this);} // tgen
+dd0661 ::dd0661(){ note_ctor("dd0661", this);} // tgen
+
+static void Test_dd0661()
+{
+ extern Class_Descriptor cd_dd0661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0661, buf);
+ dd0661 *dp, &lv = *(dp=new (buf) dd0661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), 0, "dd0661");
+ check_base_class_offset(lv, (bb61*)(cc661*), 0, "dd0661");
+ check_base_class_offset(lv, (cc661*), 0, "dd0661");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0661.d");
+ test_class_info(&lv, &cd_dd0661);
+ dp->~dd0661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0661(Test_dd0661, "dd0661", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0661C1Ev();
+extern void _ZN6dd0661D1Ev();
+Name_Map name_map_dd0661[] = {
+ NSPAIR(_ZN6dd0661C1Ev),
+ NSPAIR(_ZN6dd0661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd0661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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 _ZTI6dd0661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_dd0661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+Class_Descriptor cd_dd0661 = { "dd0661", // class name
+ bases_dd0661, 3,
+ &(vtc_dd0661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0661),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 ee00661 : dd0661 {
+ int e;
+ ~ee00661(); // tgen
+ ee00661(); // tgen
+};
+//SIG(1 ee00661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00661 ::~ee00661(){ note_dtor("ee00661", this);} // tgen
+ee00661 ::ee00661(){ note_ctor("ee00661", this);} // tgen
+
+static void Test_ee00661()
+{
+ extern Class_Descriptor cd_ee00661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00661, buf);
+ ee00661 *dp, &lv = *(dp=new (buf) ee00661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), 0, "ee00661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), 0, "ee00661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), 0, "ee00661");
+ check_base_class_offset(lv, (dd0661*), 0, "ee00661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00661.e");
+ test_class_info(&lv, &cd_ee00661);
+ dp->~ee00661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00661(Test_ee00661, "ee00661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00661C1Ev();
+extern void _ZN7ee00661D1Ev();
+Name_Map name_map_ee00661[] = {
+ NSPAIR(_ZN7ee00661C1Ev),
+ NSPAIR(_ZN7ee00661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee00661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd0661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee00661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00661[];
+extern VTBL_ENTRY _ZTV7ee00661[];
+Class_Descriptor cd_ee00661 = { "ee00661", // class name
+ bases_ee00661, 4,
+ &(vtc_ee00661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00661),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 ee10661 : virtual dd0661 {
+ int e;
+ ~ee10661(); // tgen
+ ee10661(); // tgen
+};
+//SIG(1 ee10661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10661 ::~ee10661(){ note_dtor("ee10661", this);} // tgen
+ee10661 ::ee10661(){ note_ctor("ee10661", this);} // tgen
+
+static void Test_ee10661()
+{
+ extern Class_Descriptor cd_ee10661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10661, buf);
+ ee10661 *dp, &lv = *(dp=new (buf) ee10661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee10661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee10661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), ABISELECT(16,8), "ee10661");
+ check_base_class_offset(lv, (dd0661*), ABISELECT(16,8), "ee10661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10661.e");
+ test_class_info(&lv, &cd_ee10661);
+ dp->~ee10661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10661(Test_ee10661, "ee10661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10661C1Ev();
+extern void _ZN7ee10661D1Ev();
+Name_Map name_map_ee10661[] = {
+ NSPAIR(_ZN7ee10661C1Ev),
+ NSPAIR(_ZN7ee10661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee10661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd0661, 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 _ZTI7ee10661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee10661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10661[];
+static VTT_ENTRY vtt_ee10661[] = {
+ {&(_ZTV7ee10661[3]), 3,9},
+ {&(_ZTV7ee10661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10661[];
+extern VTBL_ENTRY _ZTV7ee10661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10661[];
+Class_Descriptor cd_ee10661 = { "ee10661", // class name
+ bases_ee10661, 4,
+ &(vtc_ee10661[0]), // expected_vtbl_contents
+ &(vtt_ee10661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10661),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 ee20661 : dd0661 {
+ int e;
+ virtual void foo(); // _ZN7ee206613fooEv
+ ~ee20661(); // tgen
+ ee20661(); // tgen
+};
+//SIG(1 ee20661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20661 ::foo(){vfunc_called(this, "_ZN7ee206613fooEv");}
+ee20661 ::~ee20661(){ note_dtor("ee20661", this);} // tgen
+ee20661 ::ee20661(){ note_ctor("ee20661", this);} // tgen
+
+static void Test_ee20661()
+{
+ extern Class_Descriptor cd_ee20661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20661, buf);
+ ee20661 *dp, &lv = *(dp=new (buf) ee20661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), 0, "ee20661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), 0, "ee20661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), 0, "ee20661");
+ check_base_class_offset(lv, (dd0661*), 0, "ee20661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20661.e");
+ test_class_info(&lv, &cd_ee20661);
+ dp->~ee20661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20661(Test_ee20661, "ee20661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20661C1Ev();
+extern void _ZN7ee20661D1Ev();
+Name_Map name_map_ee20661[] = {
+ NSPAIR(_ZN7ee20661C1Ev),
+ NSPAIR(_ZN7ee20661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee20661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20661[];
+extern void _ZN7ee206613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee20661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20661[0]),
+ (VTBL_ENTRY)&_ZN7ee206613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20661[];
+extern VTBL_ENTRY _ZTV7ee20661[];
+Class_Descriptor cd_ee20661 = { "ee20661", // class name
+ bases_ee20661, 4,
+ &(vtc_ee20661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20661),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 ee30661 : virtual dd0661 {
+ int e;
+ virtual void foo(); // _ZN7ee306613fooEv
+ ~ee30661(); // tgen
+ ee30661(); // tgen
+};
+//SIG(1 ee30661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30661 ::foo(){vfunc_called(this, "_ZN7ee306613fooEv");}
+ee30661 ::~ee30661(){ note_dtor("ee30661", this);} // tgen
+ee30661 ::ee30661(){ note_ctor("ee30661", this);} // tgen
+
+static void Test_ee30661()
+{
+ extern Class_Descriptor cd_ee30661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30661, buf);
+ ee30661 *dp, &lv = *(dp=new (buf) ee30661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee30661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee30661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), ABISELECT(16,8), "ee30661");
+ check_base_class_offset(lv, (dd0661*), ABISELECT(16,8), "ee30661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30661.e");
+ test_class_info(&lv, &cd_ee30661);
+ dp->~ee30661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30661(Test_ee30661, "ee30661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30661C1Ev();
+extern void _ZN7ee30661D1Ev();
+Name_Map name_map_ee30661[] = {
+ NSPAIR(_ZN7ee30661C1Ev),
+ NSPAIR(_ZN7ee30661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee30661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd0661, 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 _ZTI7ee30661[];
+extern void _ZN7ee306613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306613fooEv,_ZTv0_n12_N7ee306613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306613fooEv,_ZThn8_N7ee306613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee30661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30661[0]),
+ (VTBL_ENTRY)&_ZN7ee306613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306613fooEv,_ZTv0_n12_N7ee306613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30661[];
+static VTT_ENTRY vtt_ee30661[] = {
+ {&(_ZTV7ee30661[3]), 3,10},
+ {&(_ZTV7ee30661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30661[];
+extern VTBL_ENTRY _ZTV7ee30661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30661[];
+static VTBL_ENTRY alt_thunk_names813[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306613fooEv,_ZTv0_n12_N7ee306613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306613fooEv,_ZThn8_N7ee306613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30661 = { "ee30661", // class name
+ bases_ee30661, 4,
+ &(vtc_ee30661[0]), // expected_vtbl_contents
+ &(vtt_ee30661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30661),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names813,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40661 : dd0661 {
+ int e;
+ virtual void bar(); // _ZN7ee406613barEv
+ ~ee40661(); // tgen
+ ee40661(); // tgen
+};
+//SIG(1 ee40661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40661 ::bar(){vfunc_called(this, "_ZN7ee406613barEv");}
+ee40661 ::~ee40661(){ note_dtor("ee40661", this);} // tgen
+ee40661 ::ee40661(){ note_ctor("ee40661", this);} // tgen
+
+static void Test_ee40661()
+{
+ extern Class_Descriptor cd_ee40661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40661, buf);
+ ee40661 *dp, &lv = *(dp=new (buf) ee40661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), 0, "ee40661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), 0, "ee40661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), 0, "ee40661");
+ check_base_class_offset(lv, (dd0661*), 0, "ee40661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40661.e");
+ test_class_info(&lv, &cd_ee40661);
+ dp->~ee40661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40661(Test_ee40661, "ee40661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40661C1Ev();
+extern void _ZN7ee40661D1Ev();
+Name_Map name_map_ee40661[] = {
+ NSPAIR(_ZN7ee40661C1Ev),
+ NSPAIR(_ZN7ee40661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee40661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN7ee406613barEv();
+static VTBL_ENTRY vtc_ee40661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN7ee406613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40661[];
+extern VTBL_ENTRY _ZTV7ee40661[];
+Class_Descriptor cd_ee40661 = { "ee40661", // class name
+ bases_ee40661, 4,
+ &(vtc_ee40661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40661),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 ee50661 : virtual dd0661 {
+ int e;
+ virtual void bar(); // _ZN7ee506613barEv
+ ~ee50661(); // tgen
+ ee50661(); // tgen
+};
+//SIG(1 ee50661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50661 ::bar(){vfunc_called(this, "_ZN7ee506613barEv");}
+ee50661 ::~ee50661(){ note_dtor("ee50661", this);} // tgen
+ee50661 ::ee50661(){ note_ctor("ee50661", this);} // tgen
+
+static void Test_ee50661()
+{
+ extern Class_Descriptor cd_ee50661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50661, buf);
+ ee50661 *dp, &lv = *(dp=new (buf) ee50661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee50661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee50661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), ABISELECT(16,8), "ee50661");
+ check_base_class_offset(lv, (dd0661*), ABISELECT(16,8), "ee50661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50661.e");
+ test_class_info(&lv, &cd_ee50661);
+ dp->~ee50661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50661(Test_ee50661, "ee50661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50661C1Ev();
+extern void _ZN7ee50661D1Ev();
+Name_Map name_map_ee50661[] = {
+ NSPAIR(_ZN7ee50661C1Ev),
+ NSPAIR(_ZN7ee50661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee50661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd0661, 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 _ZTI7ee50661[];
+extern void _ZN7ee506613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506613barEv,_ZTv0_n16_N7ee506613barEv)();
+extern void ABISELECT(_ZThn16_N7ee506613barEv,_ZThn8_N7ee506613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50661[0]),
+ (VTBL_ENTRY)&_ZN7ee506613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506613barEv,_ZTv0_n16_N7ee506613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50661[];
+static VTT_ENTRY vtt_ee50661[] = {
+ {&(_ZTV7ee50661[3]), 3,10},
+ {&(_ZTV7ee50661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50661[];
+extern VTBL_ENTRY _ZTV7ee50661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50661[];
+static VTBL_ENTRY alt_thunk_names814[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506613barEv,_ZTv0_n16_N7ee506613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506613barEv,_ZThn8_N7ee506613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50661 = { "ee50661", // class name
+ bases_ee50661, 4,
+ &(vtc_ee50661[0]), // expected_vtbl_contents
+ &(vtt_ee50661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50661),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names814,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60661 : dd0661 {
+ int e;
+ virtual void foo(); // _ZN7ee606613fooEv
+ virtual void bar(); // _ZN7ee606613barEv
+ ~ee60661(); // tgen
+ ee60661(); // tgen
+};
+//SIG(1 ee60661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60661 ::foo(){vfunc_called(this, "_ZN7ee606613fooEv");}
+void ee60661 ::bar(){vfunc_called(this, "_ZN7ee606613barEv");}
+ee60661 ::~ee60661(){ note_dtor("ee60661", this);} // tgen
+ee60661 ::ee60661(){ note_ctor("ee60661", this);} // tgen
+
+static void Test_ee60661()
+{
+ extern Class_Descriptor cd_ee60661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60661, buf);
+ ee60661 *dp, &lv = *(dp=new (buf) ee60661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), 0, "ee60661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), 0, "ee60661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), 0, "ee60661");
+ check_base_class_offset(lv, (dd0661*), 0, "ee60661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60661.e");
+ test_class_info(&lv, &cd_ee60661);
+ dp->~ee60661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60661(Test_ee60661, "ee60661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60661C1Ev();
+extern void _ZN7ee60661D1Ev();
+Name_Map name_map_ee60661[] = {
+ NSPAIR(_ZN7ee60661C1Ev),
+ NSPAIR(_ZN7ee60661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee60661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60661[];
+extern void _ZN7ee606613fooEv();
+extern void _ZN7ee606613barEv();
+static VTBL_ENTRY vtc_ee60661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60661[0]),
+ (VTBL_ENTRY)&_ZN7ee606613fooEv,
+ (VTBL_ENTRY)&_ZN7ee606613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60661[];
+extern VTBL_ENTRY _ZTV7ee60661[];
+Class_Descriptor cd_ee60661 = { "ee60661", // class name
+ bases_ee60661, 4,
+ &(vtc_ee60661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60661),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 ee70661 : virtual dd0661 {
+ int e;
+ virtual void foo(); // _ZN7ee706613fooEv
+ virtual void bar(); // _ZN7ee706613barEv
+ ~ee70661(); // tgen
+ ee70661(); // tgen
+};
+//SIG(1 ee70661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70661 ::foo(){vfunc_called(this, "_ZN7ee706613fooEv");}
+void ee70661 ::bar(){vfunc_called(this, "_ZN7ee706613barEv");}
+ee70661 ::~ee70661(){ note_dtor("ee70661", this);} // tgen
+ee70661 ::ee70661(){ note_ctor("ee70661", this);} // tgen
+
+static void Test_ee70661()
+{
+ extern Class_Descriptor cd_ee70661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70661, buf);
+ ee70661 *dp, &lv = *(dp=new (buf) ee70661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee70661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd0661*), ABISELECT(16,8), "ee70661");
+ check_base_class_offset(lv, (cc661*)(dd0661*), ABISELECT(16,8), "ee70661");
+ check_base_class_offset(lv, (dd0661*), ABISELECT(16,8), "ee70661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70661.e");
+ test_class_info(&lv, &cd_ee70661);
+ dp->~ee70661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70661(Test_ee70661, "ee70661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70661C1Ev();
+extern void _ZN7ee70661D1Ev();
+Name_Map name_map_ee70661[] = {
+ NSPAIR(_ZN7ee70661C1Ev),
+ NSPAIR(_ZN7ee70661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd0661;
+extern VTBL_ENTRY _ZTI6dd0661[];
+extern VTBL_ENTRY _ZTV6dd0661[];
+static Base_Class bases_ee70661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd0661, 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 _ZTI7ee70661[];
+extern void _ZN7ee706613fooEv();
+extern void _ZN7ee706613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706613fooEv,_ZTv0_n12_N7ee706613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706613fooEv,_ZThn8_N7ee706613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706613barEv,_ZTv0_n16_N7ee706613barEv)();
+extern void ABISELECT(_ZThn16_N7ee706613barEv,_ZThn8_N7ee706613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70661[0]),
+ (VTBL_ENTRY)&_ZN7ee706613fooEv,
+ (VTBL_ENTRY)&_ZN7ee706613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706613fooEv,_ZTv0_n12_N7ee706613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706613barEv,_ZTv0_n16_N7ee706613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70661[];
+static VTT_ENTRY vtt_ee70661[] = {
+ {&(_ZTV7ee70661[3]), 3,11},
+ {&(_ZTV7ee70661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70661[];
+extern VTBL_ENTRY _ZTV7ee70661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70661[];
+static VTBL_ENTRY alt_thunk_names815[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706613barEv,_ZTv0_n16_N7ee706613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706613barEv,_ZThn8_N7ee706613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706613fooEv,_ZTv0_n12_N7ee706613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706613fooEv,_ZThn8_N7ee706613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70661 = { "ee70661", // class name
+ bases_ee70661, 4,
+ &(vtc_ee70661[0]), // expected_vtbl_contents
+ &(vtt_ee70661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70661),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names815,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1661 : virtual cc661 {
+ int d;
+ ~dd1661(); // tgen
+ dd1661(); // tgen
+};
+//SIG(-1 dd1661) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1661 ::~dd1661(){ note_dtor("dd1661", this);} // tgen
+dd1661 ::dd1661(){ note_ctor("dd1661", this);} // tgen
+
+static void Test_dd1661()
+{
+ extern Class_Descriptor cd_dd1661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1661, buf);
+ dd1661 *dp, &lv = *(dp=new (buf) dd1661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,8), "dd1661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,8), "dd1661");
+ check_base_class_offset(lv, (cc661*), ABISELECT(16,8), "dd1661");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1661.d");
+ test_class_info(&lv, &cd_dd1661);
+ dp->~dd1661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1661(Test_dd1661, "dd1661", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1661C1Ev();
+extern void _ZN6dd1661D1Ev();
+Name_Map name_map_dd1661[] = {
+ NSPAIR(_ZN6dd1661C1Ev),
+ NSPAIR(_ZN6dd1661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd1661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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 _ZTI6dd1661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_dd1661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1661[];
+static VTT_ENTRY vtt_dd1661[] = {
+ {&(_ZTV6dd1661[3]), 3,9},
+ {&(_ZTV6dd1661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+Class_Descriptor cd_dd1661 = { "dd1661", // class name
+ bases_dd1661, 3,
+ &(vtc_dd1661[0]), // expected_vtbl_contents
+ &(vtt_dd1661[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1661),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 ee01661 : dd1661 {
+ int e;
+ ~ee01661(); // tgen
+ ee01661(); // tgen
+};
+//SIG(1 ee01661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01661 ::~ee01661(){ note_dtor("ee01661", this);} // tgen
+ee01661 ::ee01661(){ note_ctor("ee01661", this);} // tgen
+
+static void Test_ee01661()
+{
+ extern Class_Descriptor cd_ee01661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01661, buf);
+ ee01661 *dp, &lv = *(dp=new (buf) ee01661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee01661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee01661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(16,12), "ee01661");
+ check_base_class_offset(lv, (dd1661*), 0, "ee01661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01661.e");
+ test_class_info(&lv, &cd_ee01661);
+ dp->~ee01661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01661(Test_ee01661, "ee01661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01661C1Ev();
+extern void _ZN7ee01661D1Ev();
+Name_Map name_map_ee01661[] = {
+ NSPAIR(_ZN7ee01661C1Ev),
+ NSPAIR(_ZN7ee01661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee01661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee01661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee01661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee01661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee01661[] = {
+ {&(_ZTV7ee01661[3]), 3,9},
+ {&(_tg__ZTV6dd1661__7ee01661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee01661[4]), 4,6},
+ {&(_ZTV7ee01661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01661[];
+extern VTBL_ENTRY _ZTV7ee01661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01661[];
+Class_Descriptor cd_ee01661 = { "ee01661", // class name
+ bases_ee01661, 4,
+ &(vtc_ee01661[0]), // expected_vtbl_contents
+ &(vtt_ee01661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01661),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 ee11661 : virtual dd1661 {
+ int e;
+ ~ee11661(); // tgen
+ ee11661(); // tgen
+};
+//SIG(1 ee11661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11661 ::~ee11661(){ note_dtor("ee11661", this);} // tgen
+ee11661 ::ee11661(){ note_ctor("ee11661", this);} // tgen
+
+static void Test_ee11661()
+{
+ extern Class_Descriptor cd_ee11661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11661, buf);
+ ee11661 *dp, &lv = *(dp=new (buf) ee11661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee11661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee11661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(32,16), "ee11661");
+ check_base_class_offset(lv, (dd1661*), ABISELECT(16,8), "ee11661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11661.e");
+ test_class_info(&lv, &cd_ee11661);
+ dp->~ee11661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11661(Test_ee11661, "ee11661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11661C1Ev();
+extern void _ZN7ee11661D1Ev();
+Name_Map name_map_ee11661[] = {
+ NSPAIR(_ZN7ee11661C1Ev),
+ NSPAIR(_ZN7ee11661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee11661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 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 _ZTI7ee11661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee11661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11661[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11661[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee11661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee11661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee11661[] = {
+ {&(_ZTV7ee11661[4]), 4,13},
+ {&(_ZTV7ee11661[7]), 7,13},
+ {&(_ZTV7ee11661[11]), 11,13},
+ {&(_tg__ZTV6dd1661__7ee11661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee11661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11661[];
+extern VTBL_ENTRY _ZTV7ee11661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11661[];
+Class_Descriptor cd_ee11661 = { "ee11661", // class name
+ bases_ee11661, 4,
+ &(vtc_ee11661[0]), // expected_vtbl_contents
+ &(vtt_ee11661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11661),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11661),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 ee21661 : dd1661 {
+ int e;
+ virtual void foo(); // _ZN7ee216613fooEv
+ ~ee21661(); // tgen
+ ee21661(); // tgen
+};
+//SIG(1 ee21661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21661 ::foo(){vfunc_called(this, "_ZN7ee216613fooEv");}
+ee21661 ::~ee21661(){ note_dtor("ee21661", this);} // tgen
+ee21661 ::ee21661(){ note_ctor("ee21661", this);} // tgen
+
+static void Test_ee21661()
+{
+ extern Class_Descriptor cd_ee21661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21661, buf);
+ ee21661 *dp, &lv = *(dp=new (buf) ee21661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee21661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee21661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(16,12), "ee21661");
+ check_base_class_offset(lv, (dd1661*), 0, "ee21661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21661.e");
+ test_class_info(&lv, &cd_ee21661);
+ dp->~ee21661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21661(Test_ee21661, "ee21661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21661C1Ev();
+extern void _ZN7ee21661D1Ev();
+Name_Map name_map_ee21661[] = {
+ NSPAIR(_ZN7ee21661C1Ev),
+ NSPAIR(_ZN7ee21661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee21661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21661[];
+extern void _ZN7ee216613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216613fooEv,_ZTv0_n12_N7ee216613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216613fooEv,_ZThn12_N7ee216613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee21661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21661[0]),
+ (VTBL_ENTRY)&_ZN7ee216613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216613fooEv,_ZTv0_n12_N7ee216613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee21661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee21661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee21661[] = {
+ {&(_ZTV7ee21661[3]), 3,10},
+ {&(_tg__ZTV6dd1661__7ee21661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee21661[4]), 4,6},
+ {&(_ZTV7ee21661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21661[];
+extern VTBL_ENTRY _ZTV7ee21661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21661[];
+static VTBL_ENTRY alt_thunk_names816[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216613fooEv,_ZTv0_n12_N7ee216613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216613fooEv,_ZThn12_N7ee216613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21661 = { "ee21661", // class name
+ bases_ee21661, 4,
+ &(vtc_ee21661[0]), // expected_vtbl_contents
+ &(vtt_ee21661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names816,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31661 : virtual dd1661 {
+ int e;
+ virtual void foo(); // _ZN7ee316613fooEv
+ ~ee31661(); // tgen
+ ee31661(); // tgen
+};
+//SIG(1 ee31661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31661 ::foo(){vfunc_called(this, "_ZN7ee316613fooEv");}
+ee31661 ::~ee31661(){ note_dtor("ee31661", this);} // tgen
+ee31661 ::ee31661(){ note_ctor("ee31661", this);} // tgen
+
+static void Test_ee31661()
+{
+ extern Class_Descriptor cd_ee31661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31661, buf);
+ ee31661 *dp, &lv = *(dp=new (buf) ee31661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee31661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee31661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(32,16), "ee31661");
+ check_base_class_offset(lv, (dd1661*), ABISELECT(16,8), "ee31661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31661.e");
+ test_class_info(&lv, &cd_ee31661);
+ dp->~ee31661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31661(Test_ee31661, "ee31661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31661C1Ev();
+extern void _ZN7ee31661D1Ev();
+Name_Map name_map_ee31661[] = {
+ NSPAIR(_ZN7ee31661C1Ev),
+ NSPAIR(_ZN7ee31661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee31661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 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 _ZTI7ee31661[];
+extern void _ZN7ee316613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316613fooEv,_ZTv0_n12_N7ee316613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316613fooEv,_ZThn16_N7ee316613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee31661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31661[0]),
+ (VTBL_ENTRY)&_ZN7ee316613fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31661[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316613fooEv,_ZTv0_n12_N7ee316613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee31661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee31661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee31661[] = {
+ {&(_ZTV7ee31661[4]), 4,14},
+ {&(_ZTV7ee31661[8]), 8,14},
+ {&(_ZTV7ee31661[12]), 12,14},
+ {&(_tg__ZTV6dd1661__7ee31661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee31661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31661[];
+extern VTBL_ENTRY _ZTV7ee31661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31661[];
+static VTBL_ENTRY alt_thunk_names817[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316613fooEv,_ZTv0_n12_N7ee316613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316613fooEv,_ZThn16_N7ee316613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31661 = { "ee31661", // class name
+ bases_ee31661, 4,
+ &(vtc_ee31661[0]), // expected_vtbl_contents
+ &(vtt_ee31661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31661),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names817,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41661 : dd1661 {
+ int e;
+ virtual void bar(); // _ZN7ee416613barEv
+ ~ee41661(); // tgen
+ ee41661(); // tgen
+};
+//SIG(1 ee41661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41661 ::bar(){vfunc_called(this, "_ZN7ee416613barEv");}
+ee41661 ::~ee41661(){ note_dtor("ee41661", this);} // tgen
+ee41661 ::ee41661(){ note_ctor("ee41661", this);} // tgen
+
+static void Test_ee41661()
+{
+ extern Class_Descriptor cd_ee41661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41661, buf);
+ ee41661 *dp, &lv = *(dp=new (buf) ee41661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee41661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee41661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(16,12), "ee41661");
+ check_base_class_offset(lv, (dd1661*), 0, "ee41661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41661.e");
+ test_class_info(&lv, &cd_ee41661);
+ dp->~ee41661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41661(Test_ee41661, "ee41661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41661C1Ev();
+extern void _ZN7ee41661D1Ev();
+Name_Map name_map_ee41661[] = {
+ NSPAIR(_ZN7ee41661C1Ev),
+ NSPAIR(_ZN7ee41661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee41661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41661[];
+extern void _ZN7ee416613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416613barEv,_ZTv0_n16_N7ee416613barEv)();
+extern void ABISELECT(_ZThn16_N7ee416613barEv,_ZThn12_N7ee416613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41661[0]),
+ (VTBL_ENTRY)&_ZN7ee416613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416613barEv,_ZTv0_n16_N7ee416613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee41661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee41661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee41661[] = {
+ {&(_ZTV7ee41661[3]), 3,10},
+ {&(_tg__ZTV6dd1661__7ee41661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee41661[4]), 4,6},
+ {&(_ZTV7ee41661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41661[];
+extern VTBL_ENTRY _ZTV7ee41661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41661[];
+static VTBL_ENTRY alt_thunk_names818[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416613barEv,_ZTv0_n16_N7ee416613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416613barEv,_ZThn12_N7ee416613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41661 = { "ee41661", // class name
+ bases_ee41661, 4,
+ &(vtc_ee41661[0]), // expected_vtbl_contents
+ &(vtt_ee41661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names818,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51661 : virtual dd1661 {
+ int e;
+ virtual void bar(); // _ZN7ee516613barEv
+ ~ee51661(); // tgen
+ ee51661(); // tgen
+};
+//SIG(1 ee51661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51661 ::bar(){vfunc_called(this, "_ZN7ee516613barEv");}
+ee51661 ::~ee51661(){ note_dtor("ee51661", this);} // tgen
+ee51661 ::ee51661(){ note_ctor("ee51661", this);} // tgen
+
+static void Test_ee51661()
+{
+ extern Class_Descriptor cd_ee51661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51661, buf);
+ ee51661 *dp, &lv = *(dp=new (buf) ee51661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee51661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee51661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(32,16), "ee51661");
+ check_base_class_offset(lv, (dd1661*), ABISELECT(16,8), "ee51661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51661.e");
+ test_class_info(&lv, &cd_ee51661);
+ dp->~ee51661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51661(Test_ee51661, "ee51661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51661C1Ev();
+extern void _ZN7ee51661D1Ev();
+Name_Map name_map_ee51661[] = {
+ NSPAIR(_ZN7ee51661C1Ev),
+ NSPAIR(_ZN7ee51661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee51661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 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 _ZTI7ee51661[];
+extern void _ZN7ee516613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516613barEv,_ZTv0_n16_N7ee516613barEv)();
+extern void ABISELECT(_ZThn32_N7ee516613barEv,_ZThn16_N7ee516613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51661[0]),
+ (VTBL_ENTRY)&_ZN7ee516613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51661[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516613barEv,_ZTv0_n16_N7ee516613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee51661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee51661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee51661[] = {
+ {&(_ZTV7ee51661[4]), 4,14},
+ {&(_ZTV7ee51661[8]), 8,14},
+ {&(_ZTV7ee51661[12]), 12,14},
+ {&(_tg__ZTV6dd1661__7ee51661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee51661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51661[];
+extern VTBL_ENTRY _ZTV7ee51661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51661[];
+static VTBL_ENTRY alt_thunk_names819[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516613barEv,_ZTv0_n16_N7ee516613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516613barEv,_ZThn16_N7ee516613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51661 = { "ee51661", // class name
+ bases_ee51661, 4,
+ &(vtc_ee51661[0]), // expected_vtbl_contents
+ &(vtt_ee51661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51661),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names819,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61661 : dd1661 {
+ int e;
+ virtual void foo(); // _ZN7ee616613fooEv
+ virtual void bar(); // _ZN7ee616613barEv
+ ~ee61661(); // tgen
+ ee61661(); // tgen
+};
+//SIG(1 ee61661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61661 ::foo(){vfunc_called(this, "_ZN7ee616613fooEv");}
+void ee61661 ::bar(){vfunc_called(this, "_ZN7ee616613barEv");}
+ee61661 ::~ee61661(){ note_dtor("ee61661", this);} // tgen
+ee61661 ::ee61661(){ note_ctor("ee61661", this);} // tgen
+
+static void Test_ee61661()
+{
+ extern Class_Descriptor cd_ee61661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61661, buf);
+ ee61661 *dp, &lv = *(dp=new (buf) ee61661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee61661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee61661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(16,12), "ee61661");
+ check_base_class_offset(lv, (dd1661*), 0, "ee61661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61661.e");
+ test_class_info(&lv, &cd_ee61661);
+ dp->~ee61661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61661(Test_ee61661, "ee61661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61661C1Ev();
+extern void _ZN7ee61661D1Ev();
+Name_Map name_map_ee61661[] = {
+ NSPAIR(_ZN7ee61661C1Ev),
+ NSPAIR(_ZN7ee61661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee61661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61661[];
+extern void _ZN7ee616613fooEv();
+extern void _ZN7ee616613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616613fooEv,_ZTv0_n12_N7ee616613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616613fooEv,_ZThn12_N7ee616613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616613barEv,_ZTv0_n16_N7ee616613barEv)();
+extern void ABISELECT(_ZThn16_N7ee616613barEv,_ZThn12_N7ee616613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61661[0]),
+ (VTBL_ENTRY)&_ZN7ee616613fooEv,
+ (VTBL_ENTRY)&_ZN7ee616613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616613fooEv,_ZTv0_n12_N7ee616613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616613barEv,_ZTv0_n16_N7ee616613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee61661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee61661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee61661[] = {
+ {&(_ZTV7ee61661[3]), 3,11},
+ {&(_tg__ZTV6dd1661__7ee61661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee61661[4]), 4,6},
+ {&(_ZTV7ee61661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61661[];
+extern VTBL_ENTRY _ZTV7ee61661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61661[];
+static VTBL_ENTRY alt_thunk_names820[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616613barEv,_ZTv0_n16_N7ee616613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616613barEv,_ZThn12_N7ee616613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616613fooEv,_ZTv0_n12_N7ee616613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616613fooEv,_ZThn12_N7ee616613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61661 = { "ee61661", // class name
+ bases_ee61661, 4,
+ &(vtc_ee61661[0]), // expected_vtbl_contents
+ &(vtt_ee61661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names820,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71661 : virtual dd1661 {
+ int e;
+ virtual void foo(); // _ZN7ee716613fooEv
+ virtual void bar(); // _ZN7ee716613barEv
+ ~ee71661(); // tgen
+ ee71661(); // tgen
+};
+//SIG(1 ee71661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71661 ::foo(){vfunc_called(this, "_ZN7ee716613fooEv");}
+void ee71661 ::bar(){vfunc_called(this, "_ZN7ee716613barEv");}
+ee71661 ::~ee71661(){ note_dtor("ee71661", this);} // tgen
+ee71661 ::ee71661(){ note_ctor("ee71661", this);} // tgen
+
+static void Test_ee71661()
+{
+ extern Class_Descriptor cd_ee71661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71661, buf);
+ ee71661 *dp, &lv = *(dp=new (buf) ee71661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee71661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee71661");
+ check_base_class_offset(lv, (cc661*)(dd1661*), ABISELECT(32,16), "ee71661");
+ check_base_class_offset(lv, (dd1661*), ABISELECT(16,8), "ee71661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71661.e");
+ test_class_info(&lv, &cd_ee71661);
+ dp->~ee71661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71661(Test_ee71661, "ee71661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71661C1Ev();
+extern void _ZN7ee71661D1Ev();
+Name_Map name_map_ee71661[] = {
+ NSPAIR(_ZN7ee71661C1Ev),
+ NSPAIR(_ZN7ee71661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd1661;
+extern VTBL_ENTRY _ZTI6dd1661[];
+extern VTBL_ENTRY _ZTV6dd1661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1661[];
+static Base_Class bases_ee71661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd1661, 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 _ZTI7ee71661[];
+extern void _ZN7ee716613fooEv();
+extern void _ZN7ee716613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716613fooEv,_ZTv0_n12_N7ee716613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716613fooEv,_ZThn16_N7ee716613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716613barEv,_ZTv0_n16_N7ee716613barEv)();
+extern void ABISELECT(_ZThn32_N7ee716613barEv,_ZThn16_N7ee716613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71661[0]),
+ (VTBL_ENTRY)&_ZN7ee716613fooEv,
+ (VTBL_ENTRY)&_ZN7ee716613barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71661[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716613fooEv,_ZTv0_n12_N7ee716613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716613barEv,_ZTv0_n16_N7ee716613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71661[];
+static VTBL_ENTRY _tg__ZTV6dd1661__7ee71661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+};
+extern void _ZN5cc6613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd1661__7ee71661[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee71661[] = {
+ {&(_ZTV7ee71661[4]), 4,15},
+ {&(_ZTV7ee71661[9]), 9,15},
+ {&(_ZTV7ee71661[13]), 13,15},
+ {&(_tg__ZTV6dd1661__7ee71661[3]), 3,3},
+ {&(_tg__ZTV5cc661__6dd1661__7ee71661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71661[];
+extern VTBL_ENTRY _ZTV7ee71661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71661[];
+static VTBL_ENTRY alt_thunk_names821[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716613barEv,_ZTv0_n16_N7ee716613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716613barEv,_ZThn16_N7ee716613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716613fooEv,_ZTv0_n12_N7ee716613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716613fooEv,_ZThn16_N7ee716613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71661 = { "ee71661", // class name
+ bases_ee71661, 4,
+ &(vtc_ee71661[0]), // expected_vtbl_contents
+ &(vtt_ee71661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71661),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names821,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2661 : cc661 {
+ int d;
+ virtual void foo(); // _ZN6dd26613fooEv
+ ~dd2661(); // tgen
+ dd2661(); // tgen
+};
+//SIG(-1 dd2661) C1{ BC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2661 ::foo(){vfunc_called(this, "_ZN6dd26613fooEv");}
+dd2661 ::~dd2661(){ note_dtor("dd2661", this);} // tgen
+dd2661 ::dd2661(){ note_ctor("dd2661", this);} // tgen
+
+static void Test_dd2661()
+{
+ extern Class_Descriptor cd_dd2661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2661, buf);
+ dd2661 *dp, &lv = *(dp=new (buf) dd2661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), 0, "dd2661");
+ check_base_class_offset(lv, (bb61*)(cc661*), 0, "dd2661");
+ check_base_class_offset(lv, (cc661*), 0, "dd2661");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2661.d");
+ test_class_info(&lv, &cd_dd2661);
+ dp->~dd2661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2661(Test_dd2661, "dd2661", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2661C1Ev();
+extern void _ZN6dd2661D1Ev();
+Name_Map name_map_dd2661[] = {
+ NSPAIR(_ZN6dd2661C1Ev),
+ NSPAIR(_ZN6dd2661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd2661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2661[];
+extern void _ZN6dd26613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_dd2661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2661[0]),
+ (VTBL_ENTRY)&_ZN6dd26613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+Class_Descriptor cd_dd2661 = { "dd2661", // class name
+ bases_dd2661, 3,
+ &(vtc_dd2661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2661),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 ee02661 : dd2661 {
+ int e;
+ ~ee02661(); // tgen
+ ee02661(); // tgen
+};
+//SIG(1 ee02661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02661 ::~ee02661(){ note_dtor("ee02661", this);} // tgen
+ee02661 ::ee02661(){ note_ctor("ee02661", this);} // tgen
+
+static void Test_ee02661()
+{
+ extern Class_Descriptor cd_ee02661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02661, buf);
+ ee02661 *dp, &lv = *(dp=new (buf) ee02661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), 0, "ee02661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), 0, "ee02661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), 0, "ee02661");
+ check_base_class_offset(lv, (dd2661*), 0, "ee02661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02661.e");
+ test_class_info(&lv, &cd_ee02661);
+ dp->~ee02661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02661(Test_ee02661, "ee02661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02661C1Ev();
+extern void _ZN7ee02661D1Ev();
+Name_Map name_map_ee02661[] = {
+ NSPAIR(_ZN7ee02661C1Ev),
+ NSPAIR(_ZN7ee02661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee02661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, 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 _ZTI7ee02661[];
+extern void _ZN6dd26613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee02661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02661[0]),
+ (VTBL_ENTRY)&_ZN6dd26613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02661[];
+extern VTBL_ENTRY _ZTV7ee02661[];
+Class_Descriptor cd_ee02661 = { "ee02661", // class name
+ bases_ee02661, 4,
+ &(vtc_ee02661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02661),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 ee12661 : virtual dd2661 {
+ int e;
+ ~ee12661(); // tgen
+ ee12661(); // tgen
+};
+//SIG(1 ee12661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12661 ::~ee12661(){ note_dtor("ee12661", this);} // tgen
+ee12661 ::ee12661(){ note_ctor("ee12661", this);} // tgen
+
+static void Test_ee12661()
+{
+ extern Class_Descriptor cd_ee12661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12661, buf);
+ ee12661 *dp, &lv = *(dp=new (buf) ee12661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee12661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee12661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), ABISELECT(16,8), "ee12661");
+ check_base_class_offset(lv, (dd2661*), ABISELECT(16,8), "ee12661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12661.e");
+ test_class_info(&lv, &cd_ee12661);
+ dp->~ee12661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12661(Test_ee12661, "ee12661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12661C1Ev();
+extern void _ZN7ee12661D1Ev();
+Name_Map name_map_ee12661[] = {
+ NSPAIR(_ZN7ee12661C1Ev),
+ NSPAIR(_ZN7ee12661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee12661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, 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 _ZTI7ee12661[];
+extern void _ZN6dd26613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee12661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12661[0]),
+ (VTBL_ENTRY)&_ZN6dd26613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12661[];
+static VTT_ENTRY vtt_ee12661[] = {
+ {&(_ZTV7ee12661[3]), 3,9},
+ {&(_ZTV7ee12661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12661[];
+extern VTBL_ENTRY _ZTV7ee12661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12661[];
+Class_Descriptor cd_ee12661 = { "ee12661", // class name
+ bases_ee12661, 4,
+ &(vtc_ee12661[0]), // expected_vtbl_contents
+ &(vtt_ee12661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12661),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 ee22661 : dd2661 {
+ int e;
+ virtual void foo(); // _ZN7ee226613fooEv
+ ~ee22661(); // tgen
+ ee22661(); // tgen
+};
+//SIG(1 ee22661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22661 ::foo(){vfunc_called(this, "_ZN7ee226613fooEv");}
+ee22661 ::~ee22661(){ note_dtor("ee22661", this);} // tgen
+ee22661 ::ee22661(){ note_ctor("ee22661", this);} // tgen
+
+static void Test_ee22661()
+{
+ extern Class_Descriptor cd_ee22661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22661, buf);
+ ee22661 *dp, &lv = *(dp=new (buf) ee22661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), 0, "ee22661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), 0, "ee22661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), 0, "ee22661");
+ check_base_class_offset(lv, (dd2661*), 0, "ee22661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22661.e");
+ test_class_info(&lv, &cd_ee22661);
+ dp->~ee22661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22661(Test_ee22661, "ee22661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22661C1Ev();
+extern void _ZN7ee22661D1Ev();
+Name_Map name_map_ee22661[] = {
+ NSPAIR(_ZN7ee22661C1Ev),
+ NSPAIR(_ZN7ee22661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee22661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22661[];
+extern void _ZN7ee226613fooEv();
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee22661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22661[0]),
+ (VTBL_ENTRY)&_ZN7ee226613fooEv,
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22661[];
+extern VTBL_ENTRY _ZTV7ee22661[];
+Class_Descriptor cd_ee22661 = { "ee22661", // class name
+ bases_ee22661, 4,
+ &(vtc_ee22661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22661),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 ee32661 : virtual dd2661 {
+ int e;
+ virtual void foo(); // _ZN7ee326613fooEv
+ ~ee32661(); // tgen
+ ee32661(); // tgen
+};
+//SIG(1 ee32661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32661 ::foo(){vfunc_called(this, "_ZN7ee326613fooEv");}
+ee32661 ::~ee32661(){ note_dtor("ee32661", this);} // tgen
+ee32661 ::ee32661(){ note_ctor("ee32661", this);} // tgen
+
+static void Test_ee32661()
+{
+ extern Class_Descriptor cd_ee32661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32661, buf);
+ ee32661 *dp, &lv = *(dp=new (buf) ee32661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee32661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee32661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), ABISELECT(16,8), "ee32661");
+ check_base_class_offset(lv, (dd2661*), ABISELECT(16,8), "ee32661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32661.e");
+ test_class_info(&lv, &cd_ee32661);
+ dp->~ee32661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32661(Test_ee32661, "ee32661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32661C1Ev();
+extern void _ZN7ee32661D1Ev();
+Name_Map name_map_ee32661[] = {
+ NSPAIR(_ZN7ee32661C1Ev),
+ NSPAIR(_ZN7ee32661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee32661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, ABISELECT(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 _ZTI7ee32661[];
+extern void _ZN7ee326613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326613fooEv,_ZTv0_n12_N7ee326613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326613fooEv,_ZThn8_N7ee326613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee32661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32661[0]),
+ (VTBL_ENTRY)&_ZN7ee326613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326613fooEv,_ZTv0_n12_N7ee326613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32661[];
+static VTT_ENTRY vtt_ee32661[] = {
+ {&(_ZTV7ee32661[3]), 3,10},
+ {&(_ZTV7ee32661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32661[];
+extern VTBL_ENTRY _ZTV7ee32661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32661[];
+static VTBL_ENTRY alt_thunk_names822[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326613fooEv,_ZTv0_n12_N7ee326613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326613fooEv,_ZThn8_N7ee326613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32661 = { "ee32661", // class name
+ bases_ee32661, 4,
+ &(vtc_ee32661[0]), // expected_vtbl_contents
+ &(vtt_ee32661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32661),2, //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 ee42661 : dd2661 {
+ int e;
+ virtual void bar(); // _ZN7ee426613barEv
+ ~ee42661(); // tgen
+ ee42661(); // tgen
+};
+//SIG(1 ee42661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42661 ::bar(){vfunc_called(this, "_ZN7ee426613barEv");}
+ee42661 ::~ee42661(){ note_dtor("ee42661", this);} // tgen
+ee42661 ::ee42661(){ note_ctor("ee42661", this);} // tgen
+
+static void Test_ee42661()
+{
+ extern Class_Descriptor cd_ee42661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42661, buf);
+ ee42661 *dp, &lv = *(dp=new (buf) ee42661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), 0, "ee42661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), 0, "ee42661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), 0, "ee42661");
+ check_base_class_offset(lv, (dd2661*), 0, "ee42661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42661.e");
+ test_class_info(&lv, &cd_ee42661);
+ dp->~ee42661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42661(Test_ee42661, "ee42661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42661C1Ev();
+extern void _ZN7ee42661D1Ev();
+Name_Map name_map_ee42661[] = {
+ NSPAIR(_ZN7ee42661C1Ev),
+ NSPAIR(_ZN7ee42661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee42661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42661[];
+extern void _ZN6dd26613fooEv();
+extern void _ZN7ee426613barEv();
+static VTBL_ENTRY vtc_ee42661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42661[0]),
+ (VTBL_ENTRY)&_ZN6dd26613fooEv,
+ (VTBL_ENTRY)&_ZN7ee426613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42661[];
+extern VTBL_ENTRY _ZTV7ee42661[];
+Class_Descriptor cd_ee42661 = { "ee42661", // class name
+ bases_ee42661, 4,
+ &(vtc_ee42661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42661),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 ee52661 : virtual dd2661 {
+ int e;
+ virtual void bar(); // _ZN7ee526613barEv
+ ~ee52661(); // tgen
+ ee52661(); // tgen
+};
+//SIG(1 ee52661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52661 ::bar(){vfunc_called(this, "_ZN7ee526613barEv");}
+ee52661 ::~ee52661(){ note_dtor("ee52661", this);} // tgen
+ee52661 ::ee52661(){ note_ctor("ee52661", this);} // tgen
+
+static void Test_ee52661()
+{
+ extern Class_Descriptor cd_ee52661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52661, buf);
+ ee52661 *dp, &lv = *(dp=new (buf) ee52661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee52661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee52661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), ABISELECT(16,8), "ee52661");
+ check_base_class_offset(lv, (dd2661*), ABISELECT(16,8), "ee52661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52661.e");
+ test_class_info(&lv, &cd_ee52661);
+ dp->~ee52661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52661(Test_ee52661, "ee52661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52661C1Ev();
+extern void _ZN7ee52661D1Ev();
+Name_Map name_map_ee52661[] = {
+ NSPAIR(_ZN7ee52661C1Ev),
+ NSPAIR(_ZN7ee52661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee52661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, ABISELECT(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 _ZTI7ee52661[];
+extern void _ZN7ee526613barEv();
+extern void _ZN6dd26613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526613barEv,_ZTv0_n16_N7ee526613barEv)();
+extern void ABISELECT(_ZThn16_N7ee526613barEv,_ZThn8_N7ee526613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52661[0]),
+ (VTBL_ENTRY)&_ZN7ee526613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52661[0]),
+ (VTBL_ENTRY)&_ZN6dd26613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526613barEv,_ZTv0_n16_N7ee526613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52661[];
+static VTT_ENTRY vtt_ee52661[] = {
+ {&(_ZTV7ee52661[3]), 3,10},
+ {&(_ZTV7ee52661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52661[];
+extern VTBL_ENTRY _ZTV7ee52661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52661[];
+static VTBL_ENTRY alt_thunk_names823[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526613barEv,_ZTv0_n16_N7ee526613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526613barEv,_ZThn8_N7ee526613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52661 = { "ee52661", // class name
+ bases_ee52661, 4,
+ &(vtc_ee52661[0]), // expected_vtbl_contents
+ &(vtt_ee52661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52661),2, //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 ee62661 : dd2661 {
+ int e;
+ virtual void foo(); // _ZN7ee626613fooEv
+ virtual void bar(); // _ZN7ee626613barEv
+ ~ee62661(); // tgen
+ ee62661(); // tgen
+};
+//SIG(1 ee62661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62661 ::foo(){vfunc_called(this, "_ZN7ee626613fooEv");}
+void ee62661 ::bar(){vfunc_called(this, "_ZN7ee626613barEv");}
+ee62661 ::~ee62661(){ note_dtor("ee62661", this);} // tgen
+ee62661 ::ee62661(){ note_ctor("ee62661", this);} // tgen
+
+static void Test_ee62661()
+{
+ extern Class_Descriptor cd_ee62661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62661, buf);
+ ee62661 *dp, &lv = *(dp=new (buf) ee62661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), 0, "ee62661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), 0, "ee62661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), 0, "ee62661");
+ check_base_class_offset(lv, (dd2661*), 0, "ee62661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62661.e");
+ test_class_info(&lv, &cd_ee62661);
+ dp->~ee62661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62661(Test_ee62661, "ee62661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62661C1Ev();
+extern void _ZN7ee62661D1Ev();
+Name_Map name_map_ee62661[] = {
+ NSPAIR(_ZN7ee62661C1Ev),
+ NSPAIR(_ZN7ee62661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee62661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62661[];
+extern void _ZN7ee626613fooEv();
+extern void _ZN7ee626613barEv();
+static VTBL_ENTRY vtc_ee62661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62661[0]),
+ (VTBL_ENTRY)&_ZN7ee626613fooEv,
+ (VTBL_ENTRY)&_ZN7ee626613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62661[];
+extern VTBL_ENTRY _ZTV7ee62661[];
+Class_Descriptor cd_ee62661 = { "ee62661", // class name
+ bases_ee62661, 4,
+ &(vtc_ee62661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62661),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 ee72661 : virtual dd2661 {
+ int e;
+ virtual void foo(); // _ZN7ee726613fooEv
+ virtual void bar(); // _ZN7ee726613barEv
+ ~ee72661(); // tgen
+ ee72661(); // tgen
+};
+//SIG(1 ee72661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72661 ::foo(){vfunc_called(this, "_ZN7ee726613fooEv");}
+void ee72661 ::bar(){vfunc_called(this, "_ZN7ee726613barEv");}
+ee72661 ::~ee72661(){ note_dtor("ee72661", this);} // tgen
+ee72661 ::ee72661(){ note_ctor("ee72661", this);} // tgen
+
+static void Test_ee72661()
+{
+ extern Class_Descriptor cd_ee72661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72661, buf);
+ ee72661 *dp, &lv = *(dp=new (buf) ee72661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee72661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd2661*), ABISELECT(16,8), "ee72661");
+ check_base_class_offset(lv, (cc661*)(dd2661*), ABISELECT(16,8), "ee72661");
+ check_base_class_offset(lv, (dd2661*), ABISELECT(16,8), "ee72661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72661.e");
+ test_class_info(&lv, &cd_ee72661);
+ dp->~ee72661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72661(Test_ee72661, "ee72661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72661C1Ev();
+extern void _ZN7ee72661D1Ev();
+Name_Map name_map_ee72661[] = {
+ NSPAIR(_ZN7ee72661C1Ev),
+ NSPAIR(_ZN7ee72661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd2661;
+extern VTBL_ENTRY _ZTI6dd2661[];
+extern VTBL_ENTRY _ZTV6dd2661[];
+static Base_Class bases_ee72661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2661, ABISELECT(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 _ZTI7ee72661[];
+extern void _ZN7ee726613fooEv();
+extern void _ZN7ee726613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726613fooEv,_ZTv0_n12_N7ee726613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726613fooEv,_ZThn8_N7ee726613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726613barEv,_ZTv0_n16_N7ee726613barEv)();
+extern void ABISELECT(_ZThn16_N7ee726613barEv,_ZThn8_N7ee726613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72661[0]),
+ (VTBL_ENTRY)&_ZN7ee726613fooEv,
+ (VTBL_ENTRY)&_ZN7ee726613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726613fooEv,_ZTv0_n12_N7ee726613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726613barEv,_ZTv0_n16_N7ee726613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72661[];
+static VTT_ENTRY vtt_ee72661[] = {
+ {&(_ZTV7ee72661[3]), 3,11},
+ {&(_ZTV7ee72661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72661[];
+extern VTBL_ENTRY _ZTV7ee72661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72661[];
+static VTBL_ENTRY alt_thunk_names824[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726613barEv,_ZTv0_n16_N7ee726613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726613barEv,_ZThn8_N7ee726613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726613fooEv,_ZTv0_n12_N7ee726613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726613fooEv,_ZThn8_N7ee726613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72661 = { "ee72661", // class name
+ bases_ee72661, 4,
+ &(vtc_ee72661[0]), // expected_vtbl_contents
+ &(vtt_ee72661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72661),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names824,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3661 : virtual cc661 {
+ int d;
+ virtual void foo(); // _ZN6dd36613fooEv
+ ~dd3661(); // tgen
+ dd3661(); // tgen
+};
+//SIG(-1 dd3661) C1{ VBC2{ BC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3661 ::foo(){vfunc_called(this, "_ZN6dd36613fooEv");}
+dd3661 ::~dd3661(){ note_dtor("dd3661", this);} // tgen
+dd3661 ::dd3661(){ note_ctor("dd3661", this);} // tgen
+
+static void Test_dd3661()
+{
+ extern Class_Descriptor cd_dd3661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3661, buf);
+ dd3661 *dp, &lv = *(dp=new (buf) dd3661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,8), "dd3661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,8), "dd3661");
+ check_base_class_offset(lv, (cc661*), ABISELECT(16,8), "dd3661");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3661.d");
+ test_class_info(&lv, &cd_dd3661);
+ dp->~dd3661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3661(Test_dd3661, "dd3661", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3661C1Ev();
+extern void _ZN6dd3661D1Ev();
+Name_Map name_map_dd3661[] = {
+ NSPAIR(_ZN6dd3661C1Ev),
+ NSPAIR(_ZN6dd3661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd3661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(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 _ZTI6dd3661[];
+extern void _ZN6dd36613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_dd3661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3661[];
+static VTT_ENTRY vtt_dd3661[] = {
+ {&(_ZTV6dd3661[3]), 3,10},
+ {&(_ZTV6dd3661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static VTBL_ENTRY alt_thunk_names825[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3661 = { "dd3661", // class name
+ bases_dd3661, 3,
+ &(vtc_dd3661[0]), // expected_vtbl_contents
+ &(vtt_dd3661[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3661),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names825,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03661 : dd3661 {
+ int e;
+ ~ee03661(); // tgen
+ ee03661(); // tgen
+};
+//SIG(1 ee03661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03661 ::~ee03661(){ note_dtor("ee03661", this);} // tgen
+ee03661 ::ee03661(){ note_ctor("ee03661", this);} // tgen
+
+static void Test_ee03661()
+{
+ extern Class_Descriptor cd_ee03661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03661, buf);
+ ee03661 *dp, &lv = *(dp=new (buf) ee03661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee03661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee03661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(16,12), "ee03661");
+ check_base_class_offset(lv, (dd3661*), 0, "ee03661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03661.e");
+ test_class_info(&lv, &cd_ee03661);
+ dp->~ee03661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03661(Test_ee03661, "ee03661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03661C1Ev();
+extern void _ZN7ee03661D1Ev();
+Name_Map name_map_ee03661[] = {
+ NSPAIR(_ZN7ee03661C1Ev),
+ NSPAIR(_ZN7ee03661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee03661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03661[];
+extern void _ZN6dd36613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee03661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee03661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee03661[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee03661[] = {
+ {&(_ZTV7ee03661[3]), 3,10},
+ {&(_tg__ZTV6dd3661__7ee03661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee03661[4]), 4,6},
+ {&(_ZTV7ee03661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03661[];
+extern VTBL_ENTRY _ZTV7ee03661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03661[];
+static VTBL_ENTRY alt_thunk_names826[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03661 = { "ee03661", // class name
+ bases_ee03661, 4,
+ &(vtc_ee03661[0]), // expected_vtbl_contents
+ &(vtt_ee03661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03661),4, //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 ee13661 : virtual dd3661 {
+ int e;
+ ~ee13661(); // tgen
+ ee13661(); // tgen
+};
+//SIG(1 ee13661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13661 ::~ee13661(){ note_dtor("ee13661", this);} // tgen
+ee13661 ::ee13661(){ note_ctor("ee13661", this);} // tgen
+
+static void Test_ee13661()
+{
+ extern Class_Descriptor cd_ee13661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13661, buf);
+ ee13661 *dp, &lv = *(dp=new (buf) ee13661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee13661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee13661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(32,16), "ee13661");
+ check_base_class_offset(lv, (dd3661*), ABISELECT(16,8), "ee13661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13661.e");
+ test_class_info(&lv, &cd_ee13661);
+ dp->~ee13661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13661(Test_ee13661, "ee13661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13661C1Ev();
+extern void _ZN7ee13661D1Ev();
+Name_Map name_map_ee13661[] = {
+ NSPAIR(_ZN7ee13661C1Ev),
+ NSPAIR(_ZN7ee13661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee13661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, ABISELECT(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 _ZTI7ee13661[];
+extern void _ZN6dd36613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee13661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13661[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee13661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee13661[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee13661[] = {
+ {&(_ZTV7ee13661[4]), 4,15},
+ {&(_ZTV7ee13661[8]), 8,15},
+ {&(_ZTV7ee13661[13]), 13,15},
+ {&(_tg__ZTV6dd3661__7ee13661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee13661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13661[];
+extern VTBL_ENTRY _ZTV7ee13661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13661[];
+static VTBL_ENTRY alt_thunk_names827[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13661 = { "ee13661", // class name
+ bases_ee13661, 4,
+ &(vtc_ee13661[0]), // expected_vtbl_contents
+ &(vtt_ee13661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13661),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13661),5, //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 ee23661 : dd3661 {
+ int e;
+ virtual void foo(); // _ZN7ee236613fooEv
+ ~ee23661(); // tgen
+ ee23661(); // tgen
+};
+//SIG(1 ee23661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23661 ::foo(){vfunc_called(this, "_ZN7ee236613fooEv");}
+ee23661 ::~ee23661(){ note_dtor("ee23661", this);} // tgen
+ee23661 ::ee23661(){ note_ctor("ee23661", this);} // tgen
+
+static void Test_ee23661()
+{
+ extern Class_Descriptor cd_ee23661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23661, buf);
+ ee23661 *dp, &lv = *(dp=new (buf) ee23661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee23661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee23661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(16,12), "ee23661");
+ check_base_class_offset(lv, (dd3661*), 0, "ee23661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23661.e");
+ test_class_info(&lv, &cd_ee23661);
+ dp->~ee23661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23661(Test_ee23661, "ee23661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23661C1Ev();
+extern void _ZN7ee23661D1Ev();
+Name_Map name_map_ee23661[] = {
+ NSPAIR(_ZN7ee23661C1Ev),
+ NSPAIR(_ZN7ee23661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee23661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23661[];
+extern void _ZN7ee236613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236613fooEv,_ZTv0_n12_N7ee236613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236613fooEv,_ZThn12_N7ee236613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee23661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23661[0]),
+ (VTBL_ENTRY)&_ZN7ee236613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236613fooEv,_ZTv0_n12_N7ee236613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee23661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee23661[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee23661[] = {
+ {&(_ZTV7ee23661[3]), 3,10},
+ {&(_tg__ZTV6dd3661__7ee23661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee23661[4]), 4,6},
+ {&(_ZTV7ee23661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23661[];
+extern VTBL_ENTRY _ZTV7ee23661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23661[];
+static VTBL_ENTRY alt_thunk_names828[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236613fooEv,_ZTv0_n12_N7ee236613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236613fooEv,_ZThn12_N7ee236613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23661 = { "ee23661", // class name
+ bases_ee23661, 4,
+ &(vtc_ee23661[0]), // expected_vtbl_contents
+ &(vtt_ee23661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names828,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33661 : virtual dd3661 {
+ int e;
+ virtual void foo(); // _ZN7ee336613fooEv
+ ~ee33661(); // tgen
+ ee33661(); // tgen
+};
+//SIG(1 ee33661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33661 ::foo(){vfunc_called(this, "_ZN7ee336613fooEv");}
+ee33661 ::~ee33661(){ note_dtor("ee33661", this);} // tgen
+ee33661 ::ee33661(){ note_ctor("ee33661", this);} // tgen
+
+static void Test_ee33661()
+{
+ extern Class_Descriptor cd_ee33661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33661, buf);
+ ee33661 *dp, &lv = *(dp=new (buf) ee33661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee33661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee33661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(32,16), "ee33661");
+ check_base_class_offset(lv, (dd3661*), ABISELECT(16,8), "ee33661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33661.e");
+ test_class_info(&lv, &cd_ee33661);
+ dp->~ee33661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33661(Test_ee33661, "ee33661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33661C1Ev();
+extern void _ZN7ee33661D1Ev();
+Name_Map name_map_ee33661[] = {
+ NSPAIR(_ZN7ee33661C1Ev),
+ NSPAIR(_ZN7ee33661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee33661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, ABISELECT(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 _ZTI7ee33661[];
+extern void _ZN7ee336613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336613fooEv,_ZTv0_n16_N7ee336613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336613fooEv,_ZThn8_N7ee336613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336613fooEv,_ZTv0_n12_N7ee336613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336613fooEv,_ZThn16_N7ee336613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY vtc_ee33661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33661[0]),
+ (VTBL_ENTRY)&_ZN7ee336613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336613fooEv,_ZTv0_n16_N7ee336613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336613fooEv,_ZTv0_n12_N7ee336613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee33661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee33661[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee33661[] = {
+ {&(_ZTV7ee33661[4]), 4,16},
+ {&(_ZTV7ee33661[9]), 9,16},
+ {&(_ZTV7ee33661[14]), 14,16},
+ {&(_tg__ZTV6dd3661__7ee33661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee33661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33661[];
+extern VTBL_ENTRY _ZTV7ee33661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33661[];
+static VTBL_ENTRY alt_thunk_names829[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336613fooEv,_ZTv0_n12_N7ee336613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336613fooEv,_ZThn16_N7ee336613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336613fooEv,_ZTv0_n16_N7ee336613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336613fooEv,_ZThn8_N7ee336613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33661 = { "ee33661", // class name
+ bases_ee33661, 4,
+ &(vtc_ee33661[0]), // expected_vtbl_contents
+ &(vtt_ee33661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33661),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names829,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43661 : dd3661 {
+ int e;
+ virtual void bar(); // _ZN7ee436613barEv
+ ~ee43661(); // tgen
+ ee43661(); // tgen
+};
+//SIG(1 ee43661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43661 ::bar(){vfunc_called(this, "_ZN7ee436613barEv");}
+ee43661 ::~ee43661(){ note_dtor("ee43661", this);} // tgen
+ee43661 ::ee43661(){ note_ctor("ee43661", this);} // tgen
+
+static void Test_ee43661()
+{
+ extern Class_Descriptor cd_ee43661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43661, buf);
+ ee43661 *dp, &lv = *(dp=new (buf) ee43661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee43661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee43661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(16,12), "ee43661");
+ check_base_class_offset(lv, (dd3661*), 0, "ee43661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43661.e");
+ test_class_info(&lv, &cd_ee43661);
+ dp->~ee43661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43661(Test_ee43661, "ee43661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43661C1Ev();
+extern void _ZN7ee43661D1Ev();
+Name_Map name_map_ee43661[] = {
+ NSPAIR(_ZN7ee43661C1Ev),
+ NSPAIR(_ZN7ee43661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee43661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43661[];
+extern void _ZN6dd36613fooEv();
+extern void _ZN7ee436613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436613barEv,_ZTv0_n16_N7ee436613barEv)();
+extern void ABISELECT(_ZThn16_N7ee436613barEv,_ZThn12_N7ee436613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+ (VTBL_ENTRY)&_ZN7ee436613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436613barEv,_ZTv0_n16_N7ee436613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee43661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee43661[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee43661[] = {
+ {&(_ZTV7ee43661[3]), 3,11},
+ {&(_tg__ZTV6dd3661__7ee43661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee43661[4]), 4,6},
+ {&(_ZTV7ee43661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43661[];
+extern VTBL_ENTRY _ZTV7ee43661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43661[];
+static VTBL_ENTRY alt_thunk_names830[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436613barEv,_ZTv0_n16_N7ee436613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436613barEv,_ZThn12_N7ee436613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43661 = { "ee43661", // class name
+ bases_ee43661, 4,
+ &(vtc_ee43661[0]), // expected_vtbl_contents
+ &(vtt_ee43661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names830,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53661 : virtual dd3661 {
+ int e;
+ virtual void bar(); // _ZN7ee536613barEv
+ ~ee53661(); // tgen
+ ee53661(); // tgen
+};
+//SIG(1 ee53661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53661 ::bar(){vfunc_called(this, "_ZN7ee536613barEv");}
+ee53661 ::~ee53661(){ note_dtor("ee53661", this);} // tgen
+ee53661 ::ee53661(){ note_ctor("ee53661", this);} // tgen
+
+static void Test_ee53661()
+{
+ extern Class_Descriptor cd_ee53661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53661, buf);
+ ee53661 *dp, &lv = *(dp=new (buf) ee53661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee53661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee53661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(32,16), "ee53661");
+ check_base_class_offset(lv, (dd3661*), ABISELECT(16,8), "ee53661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53661.e");
+ test_class_info(&lv, &cd_ee53661);
+ dp->~ee53661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53661(Test_ee53661, "ee53661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53661C1Ev();
+extern void _ZN7ee53661D1Ev();
+Name_Map name_map_ee53661[] = {
+ NSPAIR(_ZN7ee53661C1Ev),
+ NSPAIR(_ZN7ee53661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee53661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, ABISELECT(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 _ZTI7ee53661[];
+extern void _ZN7ee536613barEv();
+extern void _ZN6dd36613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536613barEv,_ZTv0_n16_N7ee536613barEv)();
+extern void ABISELECT(_ZThn32_N7ee536613barEv,_ZThn16_N7ee536613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53661[0]),
+ (VTBL_ENTRY)&_ZN7ee536613barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536613barEv,_ZTv0_n16_N7ee536613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee53661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee53661[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee53661[] = {
+ {&(_ZTV7ee53661[4]), 4,16},
+ {&(_ZTV7ee53661[9]), 9,16},
+ {&(_ZTV7ee53661[14]), 14,16},
+ {&(_tg__ZTV6dd3661__7ee53661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee53661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53661[];
+extern VTBL_ENTRY _ZTV7ee53661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53661[];
+static VTBL_ENTRY alt_thunk_names831[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536613barEv,_ZTv0_n16_N7ee536613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536613barEv,_ZThn16_N7ee536613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53661 = { "ee53661", // class name
+ bases_ee53661, 4,
+ &(vtc_ee53661[0]), // expected_vtbl_contents
+ &(vtt_ee53661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53661),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names831,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63661 : dd3661 {
+ int e;
+ virtual void foo(); // _ZN7ee636613fooEv
+ virtual void bar(); // _ZN7ee636613barEv
+ ~ee63661(); // tgen
+ ee63661(); // tgen
+};
+//SIG(1 ee63661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63661 ::foo(){vfunc_called(this, "_ZN7ee636613fooEv");}
+void ee63661 ::bar(){vfunc_called(this, "_ZN7ee636613barEv");}
+ee63661 ::~ee63661(){ note_dtor("ee63661", this);} // tgen
+ee63661 ::ee63661(){ note_ctor("ee63661", this);} // tgen
+
+static void Test_ee63661()
+{
+ extern Class_Descriptor cd_ee63661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63661, buf);
+ ee63661 *dp, &lv = *(dp=new (buf) ee63661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee63661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee63661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(16,12), "ee63661");
+ check_base_class_offset(lv, (dd3661*), 0, "ee63661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63661.e");
+ test_class_info(&lv, &cd_ee63661);
+ dp->~ee63661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63661(Test_ee63661, "ee63661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63661C1Ev();
+extern void _ZN7ee63661D1Ev();
+Name_Map name_map_ee63661[] = {
+ NSPAIR(_ZN7ee63661C1Ev),
+ NSPAIR(_ZN7ee63661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee63661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63661[];
+extern void _ZN7ee636613fooEv();
+extern void _ZN7ee636613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636613fooEv,_ZTv0_n12_N7ee636613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636613fooEv,_ZThn12_N7ee636613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636613barEv,_ZTv0_n16_N7ee636613barEv)();
+extern void ABISELECT(_ZThn16_N7ee636613barEv,_ZThn12_N7ee636613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63661[0]),
+ (VTBL_ENTRY)&_ZN7ee636613fooEv,
+ (VTBL_ENTRY)&_ZN7ee636613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636613fooEv,_ZTv0_n12_N7ee636613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636613barEv,_ZTv0_n16_N7ee636613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee63661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee63661[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee63661[] = {
+ {&(_ZTV7ee63661[3]), 3,11},
+ {&(_tg__ZTV6dd3661__7ee63661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee63661[4]), 4,6},
+ {&(_ZTV7ee63661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63661[];
+extern VTBL_ENTRY _ZTV7ee63661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63661[];
+static VTBL_ENTRY alt_thunk_names832[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn12_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636613barEv,_ZTv0_n16_N7ee636613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636613barEv,_ZThn12_N7ee636613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636613fooEv,_ZTv0_n12_N7ee636613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636613fooEv,_ZThn12_N7ee636613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63661 = { "ee63661", // class name
+ bases_ee63661, 4,
+ &(vtc_ee63661[0]), // expected_vtbl_contents
+ &(vtt_ee63661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names832,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73661 : virtual dd3661 {
+ int e;
+ virtual void foo(); // _ZN7ee736613fooEv
+ virtual void bar(); // _ZN7ee736613barEv
+ ~ee73661(); // tgen
+ ee73661(); // tgen
+};
+//SIG(1 ee73661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73661 ::foo(){vfunc_called(this, "_ZN7ee736613fooEv");}
+void ee73661 ::bar(){vfunc_called(this, "_ZN7ee736613barEv");}
+ee73661 ::~ee73661(){ note_dtor("ee73661", this);} // tgen
+ee73661 ::ee73661(){ note_ctor("ee73661", this);} // tgen
+
+static void Test_ee73661()
+{
+ extern Class_Descriptor cd_ee73661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73661, buf);
+ ee73661 *dp, &lv = *(dp=new (buf) ee73661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee73661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee73661");
+ check_base_class_offset(lv, (cc661*)(dd3661*), ABISELECT(32,16), "ee73661");
+ check_base_class_offset(lv, (dd3661*), ABISELECT(16,8), "ee73661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73661.e");
+ test_class_info(&lv, &cd_ee73661);
+ dp->~ee73661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73661(Test_ee73661, "ee73661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73661C1Ev();
+extern void _ZN7ee73661D1Ev();
+Name_Map name_map_ee73661[] = {
+ NSPAIR(_ZN7ee73661C1Ev),
+ NSPAIR(_ZN7ee73661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd3661;
+extern VTBL_ENTRY _ZTI6dd3661[];
+extern VTBL_ENTRY _ZTV6dd3661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3661[];
+static Base_Class bases_ee73661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd3661, 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 _ZTI7ee73661[];
+extern void _ZN7ee736613fooEv();
+extern void _ZN7ee736613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736613fooEv,_ZTv0_n16_N7ee736613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736613fooEv,_ZThn8_N7ee736613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736613fooEv,_ZTv0_n12_N7ee736613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736613fooEv,_ZThn16_N7ee736613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736613barEv,_ZTv0_n16_N7ee736613barEv)();
+extern void ABISELECT(_ZThn32_N7ee736613barEv,_ZThn16_N7ee736613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73661[0]),
+ (VTBL_ENTRY)&_ZN7ee736613fooEv,
+ (VTBL_ENTRY)&_ZN7ee736613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736613fooEv,_ZTv0_n16_N7ee736613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736613fooEv,_ZTv0_n12_N7ee736613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736613barEv,_ZTv0_n16_N7ee736613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73661[];
+extern void _ZN6dd36613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3661__7ee73661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&_ZN6dd36613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv)() __attribute__((weak));
+extern void _ZN5cc6613barEv();
+static VTBL_ENTRY _tg__ZTV5cc661__6dd3661__7ee73661[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv),
+ (VTBL_ENTRY)&_ZN5cc6613barEv,
+};
+static VTT_ENTRY vtt_ee73661[] = {
+ {&(_ZTV7ee73661[4]), 4,17},
+ {&(_ZTV7ee73661[10]), 10,17},
+ {&(_ZTV7ee73661[15]), 15,17},
+ {&(_tg__ZTV6dd3661__7ee73661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd3661__7ee73661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73661[];
+extern VTBL_ENTRY _ZTV7ee73661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73661[];
+static VTBL_ENTRY alt_thunk_names833[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36613fooEv,_ZTv0_n12_N6dd36613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36613fooEv,_ZThn8_N6dd36613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736613barEv,_ZTv0_n16_N7ee736613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736613barEv,_ZThn16_N7ee736613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736613fooEv,_ZTv0_n12_N7ee736613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736613fooEv,_ZThn16_N7ee736613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736613fooEv,_ZTv0_n16_N7ee736613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736613fooEv,_ZThn8_N7ee736613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73661 = { "ee73661", // class name
+ bases_ee73661, 4,
+ &(vtc_ee73661[0]), // expected_vtbl_contents
+ &(vtt_ee73661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73661),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names833,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4661 : cc661 {
+ int d;
+ virtual void bar(); // _ZN6dd46613barEv
+ ~dd4661(); // tgen
+ dd4661(); // tgen
+};
+//SIG(-1 dd4661) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4661 ::bar(){vfunc_called(this, "_ZN6dd46613barEv");}
+dd4661 ::~dd4661(){ note_dtor("dd4661", this);} // tgen
+dd4661 ::dd4661(){ note_ctor("dd4661", this);} // tgen
+
+static void Test_dd4661()
+{
+ extern Class_Descriptor cd_dd4661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4661, buf);
+ dd4661 *dp, &lv = *(dp=new (buf) dd4661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), 0, "dd4661");
+ check_base_class_offset(lv, (bb61*)(cc661*), 0, "dd4661");
+ check_base_class_offset(lv, (cc661*), 0, "dd4661");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4661.d");
+ test_class_info(&lv, &cd_dd4661);
+ dp->~dd4661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4661(Test_dd4661, "dd4661", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4661C1Ev();
+extern void _ZN6dd4661D1Ev();
+Name_Map name_map_dd4661[] = {
+ NSPAIR(_ZN6dd4661C1Ev),
+ NSPAIR(_ZN6dd4661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd4661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN6dd46613barEv();
+static VTBL_ENTRY vtc_dd4661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN6dd46613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+Class_Descriptor cd_dd4661 = { "dd4661", // class name
+ bases_dd4661, 3,
+ &(vtc_dd4661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4661),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 ee04661 : dd4661 {
+ int e;
+ ~ee04661(); // tgen
+ ee04661(); // tgen
+};
+//SIG(1 ee04661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04661 ::~ee04661(){ note_dtor("ee04661", this);} // tgen
+ee04661 ::ee04661(){ note_ctor("ee04661", this);} // tgen
+
+static void Test_ee04661()
+{
+ extern Class_Descriptor cd_ee04661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04661, buf);
+ ee04661 *dp, &lv = *(dp=new (buf) ee04661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), 0, "ee04661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), 0, "ee04661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), 0, "ee04661");
+ check_base_class_offset(lv, (dd4661*), 0, "ee04661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04661.e");
+ test_class_info(&lv, &cd_ee04661);
+ dp->~ee04661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04661(Test_ee04661, "ee04661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04661C1Ev();
+extern void _ZN7ee04661D1Ev();
+Name_Map name_map_ee04661[] = {
+ NSPAIR(_ZN7ee04661C1Ev),
+ NSPAIR(_ZN7ee04661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee04661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, 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 _ZTI7ee04661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN6dd46613barEv();
+static VTBL_ENTRY vtc_ee04661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN6dd46613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04661[];
+extern VTBL_ENTRY _ZTV7ee04661[];
+Class_Descriptor cd_ee04661 = { "ee04661", // class name
+ bases_ee04661, 4,
+ &(vtc_ee04661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04661),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 ee14661 : virtual dd4661 {
+ int e;
+ ~ee14661(); // tgen
+ ee14661(); // tgen
+};
+//SIG(1 ee14661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14661 ::~ee14661(){ note_dtor("ee14661", this);} // tgen
+ee14661 ::ee14661(){ note_ctor("ee14661", this);} // tgen
+
+static void Test_ee14661()
+{
+ extern Class_Descriptor cd_ee14661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14661, buf);
+ ee14661 *dp, &lv = *(dp=new (buf) ee14661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee14661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee14661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), ABISELECT(16,8), "ee14661");
+ check_base_class_offset(lv, (dd4661*), ABISELECT(16,8), "ee14661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14661.e");
+ test_class_info(&lv, &cd_ee14661);
+ dp->~ee14661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14661(Test_ee14661, "ee14661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14661C1Ev();
+extern void _ZN7ee14661D1Ev();
+Name_Map name_map_ee14661[] = {
+ NSPAIR(_ZN7ee14661C1Ev),
+ NSPAIR(_ZN7ee14661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee14661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, 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 _ZTI7ee14661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN6dd46613barEv();
+static VTBL_ENTRY vtc_ee14661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN6dd46613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14661[];
+static VTT_ENTRY vtt_ee14661[] = {
+ {&(_ZTV7ee14661[3]), 3,9},
+ {&(_ZTV7ee14661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14661[];
+extern VTBL_ENTRY _ZTV7ee14661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14661[];
+Class_Descriptor cd_ee14661 = { "ee14661", // class name
+ bases_ee14661, 4,
+ &(vtc_ee14661[0]), // expected_vtbl_contents
+ &(vtt_ee14661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14661),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 ee24661 : dd4661 {
+ int e;
+ virtual void foo(); // _ZN7ee246613fooEv
+ ~ee24661(); // tgen
+ ee24661(); // tgen
+};
+//SIG(1 ee24661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24661 ::foo(){vfunc_called(this, "_ZN7ee246613fooEv");}
+ee24661 ::~ee24661(){ note_dtor("ee24661", this);} // tgen
+ee24661 ::ee24661(){ note_ctor("ee24661", this);} // tgen
+
+static void Test_ee24661()
+{
+ extern Class_Descriptor cd_ee24661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24661, buf);
+ ee24661 *dp, &lv = *(dp=new (buf) ee24661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), 0, "ee24661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), 0, "ee24661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), 0, "ee24661");
+ check_base_class_offset(lv, (dd4661*), 0, "ee24661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24661.e");
+ test_class_info(&lv, &cd_ee24661);
+ dp->~ee24661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24661(Test_ee24661, "ee24661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24661C1Ev();
+extern void _ZN7ee24661D1Ev();
+Name_Map name_map_ee24661[] = {
+ NSPAIR(_ZN7ee24661C1Ev),
+ NSPAIR(_ZN7ee24661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee24661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24661[];
+extern void _ZN7ee246613fooEv();
+extern void _ZN6dd46613barEv();
+static VTBL_ENTRY vtc_ee24661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24661[0]),
+ (VTBL_ENTRY)&_ZN7ee246613fooEv,
+ (VTBL_ENTRY)&_ZN6dd46613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24661[];
+extern VTBL_ENTRY _ZTV7ee24661[];
+Class_Descriptor cd_ee24661 = { "ee24661", // class name
+ bases_ee24661, 4,
+ &(vtc_ee24661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24661),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 ee34661 : virtual dd4661 {
+ int e;
+ virtual void foo(); // _ZN7ee346613fooEv
+ ~ee34661(); // tgen
+ ee34661(); // tgen
+};
+//SIG(1 ee34661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34661 ::foo(){vfunc_called(this, "_ZN7ee346613fooEv");}
+ee34661 ::~ee34661(){ note_dtor("ee34661", this);} // tgen
+ee34661 ::ee34661(){ note_ctor("ee34661", this);} // tgen
+
+static void Test_ee34661()
+{
+ extern Class_Descriptor cd_ee34661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34661, buf);
+ ee34661 *dp, &lv = *(dp=new (buf) ee34661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee34661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee34661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), ABISELECT(16,8), "ee34661");
+ check_base_class_offset(lv, (dd4661*), ABISELECT(16,8), "ee34661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34661.e");
+ test_class_info(&lv, &cd_ee34661);
+ dp->~ee34661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34661(Test_ee34661, "ee34661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34661C1Ev();
+extern void _ZN7ee34661D1Ev();
+Name_Map name_map_ee34661[] = {
+ NSPAIR(_ZN7ee34661C1Ev),
+ NSPAIR(_ZN7ee34661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee34661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, ABISELECT(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 _ZTI7ee34661[];
+extern void _ZN7ee346613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346613fooEv,_ZTv0_n12_N7ee346613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346613fooEv,_ZThn8_N7ee346613fooEv)() __attribute__((weak));
+extern void _ZN6dd46613barEv();
+static VTBL_ENTRY vtc_ee34661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34661[0]),
+ (VTBL_ENTRY)&_ZN7ee346613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346613fooEv,_ZTv0_n12_N7ee346613fooEv),
+ (VTBL_ENTRY)&_ZN6dd46613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34661[];
+static VTT_ENTRY vtt_ee34661[] = {
+ {&(_ZTV7ee34661[3]), 3,10},
+ {&(_ZTV7ee34661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34661[];
+extern VTBL_ENTRY _ZTV7ee34661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34661[];
+static VTBL_ENTRY alt_thunk_names834[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346613fooEv,_ZTv0_n12_N7ee346613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346613fooEv,_ZThn8_N7ee346613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34661 = { "ee34661", // class name
+ bases_ee34661, 4,
+ &(vtc_ee34661[0]), // expected_vtbl_contents
+ &(vtt_ee34661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34661),2, //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 ee44661 : dd4661 {
+ int e;
+ virtual void bar(); // _ZN7ee446613barEv
+ ~ee44661(); // tgen
+ ee44661(); // tgen
+};
+//SIG(1 ee44661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44661 ::bar(){vfunc_called(this, "_ZN7ee446613barEv");}
+ee44661 ::~ee44661(){ note_dtor("ee44661", this);} // tgen
+ee44661 ::ee44661(){ note_ctor("ee44661", this);} // tgen
+
+static void Test_ee44661()
+{
+ extern Class_Descriptor cd_ee44661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44661, buf);
+ ee44661 *dp, &lv = *(dp=new (buf) ee44661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), 0, "ee44661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), 0, "ee44661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), 0, "ee44661");
+ check_base_class_offset(lv, (dd4661*), 0, "ee44661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44661.e");
+ test_class_info(&lv, &cd_ee44661);
+ dp->~ee44661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44661(Test_ee44661, "ee44661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44661C1Ev();
+extern void _ZN7ee44661D1Ev();
+Name_Map name_map_ee44661[] = {
+ NSPAIR(_ZN7ee44661C1Ev),
+ NSPAIR(_ZN7ee44661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee44661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44661[];
+extern void _ZN5cc6613fooEv();
+extern void _ZN7ee446613barEv();
+static VTBL_ENTRY vtc_ee44661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&_ZN7ee446613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44661[];
+extern VTBL_ENTRY _ZTV7ee44661[];
+Class_Descriptor cd_ee44661 = { "ee44661", // class name
+ bases_ee44661, 4,
+ &(vtc_ee44661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44661),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 ee54661 : virtual dd4661 {
+ int e;
+ virtual void bar(); // _ZN7ee546613barEv
+ ~ee54661(); // tgen
+ ee54661(); // tgen
+};
+//SIG(1 ee54661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54661 ::bar(){vfunc_called(this, "_ZN7ee546613barEv");}
+ee54661 ::~ee54661(){ note_dtor("ee54661", this);} // tgen
+ee54661 ::ee54661(){ note_ctor("ee54661", this);} // tgen
+
+static void Test_ee54661()
+{
+ extern Class_Descriptor cd_ee54661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54661, buf);
+ ee54661 *dp, &lv = *(dp=new (buf) ee54661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee54661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee54661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), ABISELECT(16,8), "ee54661");
+ check_base_class_offset(lv, (dd4661*), ABISELECT(16,8), "ee54661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54661.e");
+ test_class_info(&lv, &cd_ee54661);
+ dp->~ee54661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54661(Test_ee54661, "ee54661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54661C1Ev();
+extern void _ZN7ee54661D1Ev();
+Name_Map name_map_ee54661[] = {
+ NSPAIR(_ZN7ee54661C1Ev),
+ NSPAIR(_ZN7ee54661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee54661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, ABISELECT(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 _ZTI7ee54661[];
+extern void _ZN7ee546613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546613barEv,_ZTv0_n16_N7ee546613barEv)();
+extern void ABISELECT(_ZThn16_N7ee546613barEv,_ZThn8_N7ee546613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54661[0]),
+ (VTBL_ENTRY)&_ZN7ee546613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546613barEv,_ZTv0_n16_N7ee546613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54661[];
+static VTT_ENTRY vtt_ee54661[] = {
+ {&(_ZTV7ee54661[3]), 3,10},
+ {&(_ZTV7ee54661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54661[];
+extern VTBL_ENTRY _ZTV7ee54661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54661[];
+static VTBL_ENTRY alt_thunk_names835[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546613barEv,_ZTv0_n16_N7ee546613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546613barEv,_ZThn8_N7ee546613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54661 = { "ee54661", // class name
+ bases_ee54661, 4,
+ &(vtc_ee54661[0]), // expected_vtbl_contents
+ &(vtt_ee54661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54661),2, //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 ee64661 : dd4661 {
+ int e;
+ virtual void foo(); // _ZN7ee646613fooEv
+ virtual void bar(); // _ZN7ee646613barEv
+ ~ee64661(); // tgen
+ ee64661(); // tgen
+};
+//SIG(1 ee64661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64661 ::foo(){vfunc_called(this, "_ZN7ee646613fooEv");}
+void ee64661 ::bar(){vfunc_called(this, "_ZN7ee646613barEv");}
+ee64661 ::~ee64661(){ note_dtor("ee64661", this);} // tgen
+ee64661 ::ee64661(){ note_ctor("ee64661", this);} // tgen
+
+static void Test_ee64661()
+{
+ extern Class_Descriptor cd_ee64661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64661, buf);
+ ee64661 *dp, &lv = *(dp=new (buf) ee64661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), 0, "ee64661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), 0, "ee64661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), 0, "ee64661");
+ check_base_class_offset(lv, (dd4661*), 0, "ee64661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64661.e");
+ test_class_info(&lv, &cd_ee64661);
+ dp->~ee64661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64661(Test_ee64661, "ee64661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64661C1Ev();
+extern void _ZN7ee64661D1Ev();
+Name_Map name_map_ee64661[] = {
+ NSPAIR(_ZN7ee64661C1Ev),
+ NSPAIR(_ZN7ee64661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee64661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64661[];
+extern void _ZN7ee646613fooEv();
+extern void _ZN7ee646613barEv();
+static VTBL_ENTRY vtc_ee64661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64661[0]),
+ (VTBL_ENTRY)&_ZN7ee646613fooEv,
+ (VTBL_ENTRY)&_ZN7ee646613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64661[];
+extern VTBL_ENTRY _ZTV7ee64661[];
+Class_Descriptor cd_ee64661 = { "ee64661", // class name
+ bases_ee64661, 4,
+ &(vtc_ee64661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64661),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 ee74661 : virtual dd4661 {
+ int e;
+ virtual void foo(); // _ZN7ee746613fooEv
+ virtual void bar(); // _ZN7ee746613barEv
+ ~ee74661(); // tgen
+ ee74661(); // tgen
+};
+//SIG(1 ee74661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74661 ::foo(){vfunc_called(this, "_ZN7ee746613fooEv");}
+void ee74661 ::bar(){vfunc_called(this, "_ZN7ee746613barEv");}
+ee74661 ::~ee74661(){ note_dtor("ee74661", this);} // tgen
+ee74661 ::ee74661(){ note_ctor("ee74661", this);} // tgen
+
+static void Test_ee74661()
+{
+ extern Class_Descriptor cd_ee74661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74661, buf);
+ ee74661 *dp, &lv = *(dp=new (buf) ee74661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee74661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd4661*), ABISELECT(16,8), "ee74661");
+ check_base_class_offset(lv, (cc661*)(dd4661*), ABISELECT(16,8), "ee74661");
+ check_base_class_offset(lv, (dd4661*), ABISELECT(16,8), "ee74661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74661.e");
+ test_class_info(&lv, &cd_ee74661);
+ dp->~ee74661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74661(Test_ee74661, "ee74661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74661C1Ev();
+extern void _ZN7ee74661D1Ev();
+Name_Map name_map_ee74661[] = {
+ NSPAIR(_ZN7ee74661C1Ev),
+ NSPAIR(_ZN7ee74661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd4661;
+extern VTBL_ENTRY _ZTI6dd4661[];
+extern VTBL_ENTRY _ZTV6dd4661[];
+static Base_Class bases_ee74661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4661, ABISELECT(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 _ZTI7ee74661[];
+extern void _ZN7ee746613fooEv();
+extern void _ZN7ee746613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746613fooEv,_ZTv0_n12_N7ee746613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746613fooEv,_ZThn8_N7ee746613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746613barEv,_ZTv0_n16_N7ee746613barEv)();
+extern void ABISELECT(_ZThn16_N7ee746613barEv,_ZThn8_N7ee746613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74661[0]),
+ (VTBL_ENTRY)&_ZN7ee746613fooEv,
+ (VTBL_ENTRY)&_ZN7ee746613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746613fooEv,_ZTv0_n12_N7ee746613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746613barEv,_ZTv0_n16_N7ee746613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74661[];
+static VTT_ENTRY vtt_ee74661[] = {
+ {&(_ZTV7ee74661[3]), 3,11},
+ {&(_ZTV7ee74661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74661[];
+extern VTBL_ENTRY _ZTV7ee74661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74661[];
+static VTBL_ENTRY alt_thunk_names836[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746613barEv,_ZTv0_n16_N7ee746613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746613barEv,_ZThn8_N7ee746613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746613fooEv,_ZTv0_n12_N7ee746613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746613fooEv,_ZThn8_N7ee746613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74661 = { "ee74661", // class name
+ bases_ee74661, 4,
+ &(vtc_ee74661[0]), // expected_vtbl_contents
+ &(vtt_ee74661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74661),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names836,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5661 : virtual cc661 {
+ int d;
+ virtual void bar(); // _ZN6dd56613barEv
+ ~dd5661(); // tgen
+ dd5661(); // tgen
+};
+//SIG(-1 dd5661) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5661 ::bar(){vfunc_called(this, "_ZN6dd56613barEv");}
+dd5661 ::~dd5661(){ note_dtor("dd5661", this);} // tgen
+dd5661 ::dd5661(){ note_ctor("dd5661", this);} // tgen
+
+static void Test_dd5661()
+{
+ extern Class_Descriptor cd_dd5661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5661, buf);
+ dd5661 *dp, &lv = *(dp=new (buf) dd5661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,8), "dd5661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,8), "dd5661");
+ check_base_class_offset(lv, (cc661*), ABISELECT(16,8), "dd5661");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5661.d");
+ test_class_info(&lv, &cd_dd5661);
+ dp->~dd5661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5661(Test_dd5661, "dd5661", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5661C1Ev();
+extern void _ZN6dd5661D1Ev();
+Name_Map name_map_dd5661[] = {
+ NSPAIR(_ZN6dd5661C1Ev),
+ NSPAIR(_ZN6dd5661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd5661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(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 _ZTI6dd5661[];
+extern void _ZN6dd56613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5661[];
+static VTT_ENTRY vtt_dd5661[] = {
+ {&(_ZTV6dd5661[3]), 3,10},
+ {&(_ZTV6dd5661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static VTBL_ENTRY alt_thunk_names837[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5661 = { "dd5661", // class name
+ bases_dd5661, 3,
+ &(vtc_dd5661[0]), // expected_vtbl_contents
+ &(vtt_dd5661[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5661),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names837,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05661 : dd5661 {
+ int e;
+ ~ee05661(); // tgen
+ ee05661(); // tgen
+};
+//SIG(1 ee05661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05661 ::~ee05661(){ note_dtor("ee05661", this);} // tgen
+ee05661 ::ee05661(){ note_ctor("ee05661", this);} // tgen
+
+static void Test_ee05661()
+{
+ extern Class_Descriptor cd_ee05661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05661, buf);
+ ee05661 *dp, &lv = *(dp=new (buf) ee05661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee05661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee05661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(16,12), "ee05661");
+ check_base_class_offset(lv, (dd5661*), 0, "ee05661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05661.e");
+ test_class_info(&lv, &cd_ee05661);
+ dp->~ee05661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05661(Test_ee05661, "ee05661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05661C1Ev();
+extern void _ZN7ee05661D1Ev();
+Name_Map name_map_ee05661[] = {
+ NSPAIR(_ZN7ee05661C1Ev),
+ NSPAIR(_ZN7ee05661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee05661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05661[];
+extern void _ZN6dd56613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee05661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee05661[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee05661[] = {
+ {&(_ZTV7ee05661[3]), 3,10},
+ {&(_tg__ZTV6dd5661__7ee05661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee05661[4]), 4,6},
+ {&(_ZTV7ee05661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05661[];
+extern VTBL_ENTRY _ZTV7ee05661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05661[];
+static VTBL_ENTRY alt_thunk_names838[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05661 = { "ee05661", // class name
+ bases_ee05661, 4,
+ &(vtc_ee05661[0]), // expected_vtbl_contents
+ &(vtt_ee05661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05661),4, //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 ee15661 : virtual dd5661 {
+ int e;
+ ~ee15661(); // tgen
+ ee15661(); // tgen
+};
+//SIG(1 ee15661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15661 ::~ee15661(){ note_dtor("ee15661", this);} // tgen
+ee15661 ::ee15661(){ note_ctor("ee15661", this);} // tgen
+
+static void Test_ee15661()
+{
+ extern Class_Descriptor cd_ee15661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15661, buf);
+ ee15661 *dp, &lv = *(dp=new (buf) ee15661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee15661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee15661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(32,16), "ee15661");
+ check_base_class_offset(lv, (dd5661*), ABISELECT(16,8), "ee15661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15661.e");
+ test_class_info(&lv, &cd_ee15661);
+ dp->~ee15661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15661(Test_ee15661, "ee15661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15661C1Ev();
+extern void _ZN7ee15661D1Ev();
+Name_Map name_map_ee15661[] = {
+ NSPAIR(_ZN7ee15661C1Ev),
+ NSPAIR(_ZN7ee15661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee15661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, ABISELECT(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 _ZTI7ee15661[];
+extern void _ZN6dd56613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15661[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee15661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee15661[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee15661[] = {
+ {&(_ZTV7ee15661[4]), 4,15},
+ {&(_ZTV7ee15661[8]), 8,15},
+ {&(_ZTV7ee15661[13]), 13,15},
+ {&(_tg__ZTV6dd5661__7ee15661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee15661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15661[];
+extern VTBL_ENTRY _ZTV7ee15661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15661[];
+static VTBL_ENTRY alt_thunk_names839[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15661 = { "ee15661", // class name
+ bases_ee15661, 4,
+ &(vtc_ee15661[0]), // expected_vtbl_contents
+ &(vtt_ee15661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15661),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15661),5, //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 ee25661 : dd5661 {
+ int e;
+ virtual void foo(); // _ZN7ee256613fooEv
+ ~ee25661(); // tgen
+ ee25661(); // tgen
+};
+//SIG(1 ee25661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25661 ::foo(){vfunc_called(this, "_ZN7ee256613fooEv");}
+ee25661 ::~ee25661(){ note_dtor("ee25661", this);} // tgen
+ee25661 ::ee25661(){ note_ctor("ee25661", this);} // tgen
+
+static void Test_ee25661()
+{
+ extern Class_Descriptor cd_ee25661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25661, buf);
+ ee25661 *dp, &lv = *(dp=new (buf) ee25661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee25661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee25661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(16,12), "ee25661");
+ check_base_class_offset(lv, (dd5661*), 0, "ee25661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25661.e");
+ test_class_info(&lv, &cd_ee25661);
+ dp->~ee25661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25661(Test_ee25661, "ee25661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25661C1Ev();
+extern void _ZN7ee25661D1Ev();
+Name_Map name_map_ee25661[] = {
+ NSPAIR(_ZN7ee25661C1Ev),
+ NSPAIR(_ZN7ee25661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee25661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25661[];
+extern void _ZN6dd56613barEv();
+extern void _ZN7ee256613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256613fooEv,_ZTv0_n12_N7ee256613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256613fooEv,_ZThn12_N7ee256613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+ (VTBL_ENTRY)&_ZN7ee256613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256613fooEv,_ZTv0_n12_N7ee256613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee25661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee25661[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee25661[] = {
+ {&(_ZTV7ee25661[3]), 3,11},
+ {&(_tg__ZTV6dd5661__7ee25661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee25661[4]), 4,6},
+ {&(_ZTV7ee25661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25661[];
+extern VTBL_ENTRY _ZTV7ee25661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25661[];
+static VTBL_ENTRY alt_thunk_names840[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256613fooEv,_ZTv0_n12_N7ee256613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256613fooEv,_ZThn12_N7ee256613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25661 = { "ee25661", // class name
+ bases_ee25661, 4,
+ &(vtc_ee25661[0]), // expected_vtbl_contents
+ &(vtt_ee25661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names840,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35661 : virtual dd5661 {
+ int e;
+ virtual void foo(); // _ZN7ee356613fooEv
+ ~ee35661(); // tgen
+ ee35661(); // tgen
+};
+//SIG(1 ee35661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35661 ::foo(){vfunc_called(this, "_ZN7ee356613fooEv");}
+ee35661 ::~ee35661(){ note_dtor("ee35661", this);} // tgen
+ee35661 ::ee35661(){ note_ctor("ee35661", this);} // tgen
+
+static void Test_ee35661()
+{
+ extern Class_Descriptor cd_ee35661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35661, buf);
+ ee35661 *dp, &lv = *(dp=new (buf) ee35661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee35661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee35661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(32,16), "ee35661");
+ check_base_class_offset(lv, (dd5661*), ABISELECT(16,8), "ee35661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35661.e");
+ test_class_info(&lv, &cd_ee35661);
+ dp->~ee35661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35661(Test_ee35661, "ee35661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35661C1Ev();
+extern void _ZN7ee35661D1Ev();
+Name_Map name_map_ee35661[] = {
+ NSPAIR(_ZN7ee35661C1Ev),
+ NSPAIR(_ZN7ee35661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee35661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, ABISELECT(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 _ZTI7ee35661[];
+extern void _ZN7ee356613fooEv();
+extern void _ZN6dd56613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356613fooEv,_ZTv0_n12_N7ee356613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356613fooEv,_ZThn16_N7ee356613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35661[0]),
+ (VTBL_ENTRY)&_ZN7ee356613fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356613fooEv,_ZTv0_n12_N7ee356613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee35661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee35661[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee35661[] = {
+ {&(_ZTV7ee35661[4]), 4,16},
+ {&(_ZTV7ee35661[9]), 9,16},
+ {&(_ZTV7ee35661[14]), 14,16},
+ {&(_tg__ZTV6dd5661__7ee35661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee35661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35661[];
+extern VTBL_ENTRY _ZTV7ee35661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35661[];
+static VTBL_ENTRY alt_thunk_names841[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356613fooEv,_ZTv0_n12_N7ee356613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356613fooEv,_ZThn16_N7ee356613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35661 = { "ee35661", // class name
+ bases_ee35661, 4,
+ &(vtc_ee35661[0]), // expected_vtbl_contents
+ &(vtt_ee35661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35661),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names841,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45661 : dd5661 {
+ int e;
+ virtual void bar(); // _ZN7ee456613barEv
+ ~ee45661(); // tgen
+ ee45661(); // tgen
+};
+//SIG(1 ee45661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45661 ::bar(){vfunc_called(this, "_ZN7ee456613barEv");}
+ee45661 ::~ee45661(){ note_dtor("ee45661", this);} // tgen
+ee45661 ::ee45661(){ note_ctor("ee45661", this);} // tgen
+
+static void Test_ee45661()
+{
+ extern Class_Descriptor cd_ee45661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45661, buf);
+ ee45661 *dp, &lv = *(dp=new (buf) ee45661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee45661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee45661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(16,12), "ee45661");
+ check_base_class_offset(lv, (dd5661*), 0, "ee45661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45661.e");
+ test_class_info(&lv, &cd_ee45661);
+ dp->~ee45661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45661(Test_ee45661, "ee45661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45661C1Ev();
+extern void _ZN7ee45661D1Ev();
+Name_Map name_map_ee45661[] = {
+ NSPAIR(_ZN7ee45661C1Ev),
+ NSPAIR(_ZN7ee45661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee45661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45661[];
+extern void _ZN7ee456613barEv();
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456613barEv,_ZTv0_n16_N7ee456613barEv)();
+extern void ABISELECT(_ZThn16_N7ee456613barEv,_ZThn12_N7ee456613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45661[0]),
+ (VTBL_ENTRY)&_ZN7ee456613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456613barEv,_ZTv0_n16_N7ee456613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee45661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee45661[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee45661[] = {
+ {&(_ZTV7ee45661[3]), 3,10},
+ {&(_tg__ZTV6dd5661__7ee45661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee45661[4]), 4,6},
+ {&(_ZTV7ee45661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45661[];
+extern VTBL_ENTRY _ZTV7ee45661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45661[];
+static VTBL_ENTRY alt_thunk_names842[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456613barEv,_ZTv0_n16_N7ee456613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456613barEv,_ZThn12_N7ee456613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45661 = { "ee45661", // class name
+ bases_ee45661, 4,
+ &(vtc_ee45661[0]), // expected_vtbl_contents
+ &(vtt_ee45661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names842,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55661 : virtual dd5661 {
+ int e;
+ virtual void bar(); // _ZN7ee556613barEv
+ ~ee55661(); // tgen
+ ee55661(); // tgen
+};
+//SIG(1 ee55661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55661 ::bar(){vfunc_called(this, "_ZN7ee556613barEv");}
+ee55661 ::~ee55661(){ note_dtor("ee55661", this);} // tgen
+ee55661 ::ee55661(){ note_ctor("ee55661", this);} // tgen
+
+static void Test_ee55661()
+{
+ extern Class_Descriptor cd_ee55661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55661, buf);
+ ee55661 *dp, &lv = *(dp=new (buf) ee55661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee55661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee55661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(32,16), "ee55661");
+ check_base_class_offset(lv, (dd5661*), ABISELECT(16,8), "ee55661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55661.e");
+ test_class_info(&lv, &cd_ee55661);
+ dp->~ee55661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55661(Test_ee55661, "ee55661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55661C1Ev();
+extern void _ZN7ee55661D1Ev();
+Name_Map name_map_ee55661[] = {
+ NSPAIR(_ZN7ee55661C1Ev),
+ NSPAIR(_ZN7ee55661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee55661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, ABISELECT(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 _ZTI7ee55661[];
+extern void _ZN7ee556613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556613barEv,_ZTv0_n16_N7ee556613barEv)();
+extern void ABISELECT(_ZThn16_N7ee556613barEv,_ZThn8_N7ee556613barEv)() __attribute__((weak));
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556613barEv,_ZTv0_n16_N7ee556613barEv)();
+extern void ABISELECT(_ZThn32_N7ee556613barEv,_ZThn16_N7ee556613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55661[0]),
+ (VTBL_ENTRY)&_ZN7ee556613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556613barEv,_ZTv0_n16_N7ee556613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556613barEv,_ZTv0_n16_N7ee556613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee55661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee55661[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee55661[] = {
+ {&(_ZTV7ee55661[4]), 4,16},
+ {&(_ZTV7ee55661[9]), 9,16},
+ {&(_ZTV7ee55661[14]), 14,16},
+ {&(_tg__ZTV6dd5661__7ee55661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee55661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55661[];
+extern VTBL_ENTRY _ZTV7ee55661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55661[];
+static VTBL_ENTRY alt_thunk_names843[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556613barEv,_ZTv0_n16_N7ee556613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556613barEv,_ZThn16_N7ee556613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556613barEv,_ZThn8_N7ee556613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55661 = { "ee55661", // class name
+ bases_ee55661, 4,
+ &(vtc_ee55661[0]), // expected_vtbl_contents
+ &(vtt_ee55661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55661),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names843,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65661 : dd5661 {
+ int e;
+ virtual void foo(); // _ZN7ee656613fooEv
+ virtual void bar(); // _ZN7ee656613barEv
+ ~ee65661(); // tgen
+ ee65661(); // tgen
+};
+//SIG(1 ee65661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65661 ::foo(){vfunc_called(this, "_ZN7ee656613fooEv");}
+void ee65661 ::bar(){vfunc_called(this, "_ZN7ee656613barEv");}
+ee65661 ::~ee65661(){ note_dtor("ee65661", this);} // tgen
+ee65661 ::ee65661(){ note_ctor("ee65661", this);} // tgen
+
+static void Test_ee65661()
+{
+ extern Class_Descriptor cd_ee65661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65661, buf);
+ ee65661 *dp, &lv = *(dp=new (buf) ee65661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee65661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee65661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(16,12), "ee65661");
+ check_base_class_offset(lv, (dd5661*), 0, "ee65661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65661.e");
+ test_class_info(&lv, &cd_ee65661);
+ dp->~ee65661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65661(Test_ee65661, "ee65661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65661C1Ev();
+extern void _ZN7ee65661D1Ev();
+Name_Map name_map_ee65661[] = {
+ NSPAIR(_ZN7ee65661C1Ev),
+ NSPAIR(_ZN7ee65661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee65661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65661[];
+extern void _ZN7ee656613barEv();
+extern void _ZN7ee656613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656613fooEv,_ZTv0_n12_N7ee656613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656613fooEv,_ZThn12_N7ee656613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656613barEv,_ZTv0_n16_N7ee656613barEv)();
+extern void ABISELECT(_ZThn16_N7ee656613barEv,_ZThn12_N7ee656613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65661[0]),
+ (VTBL_ENTRY)&_ZN7ee656613barEv,
+ (VTBL_ENTRY)&_ZN7ee656613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656613fooEv,_ZTv0_n12_N7ee656613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656613barEv,_ZTv0_n16_N7ee656613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee65661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee65661[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee65661[] = {
+ {&(_ZTV7ee65661[3]), 3,11},
+ {&(_tg__ZTV6dd5661__7ee65661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee65661[4]), 4,6},
+ {&(_ZTV7ee65661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65661[];
+extern VTBL_ENTRY _ZTV7ee65661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65661[];
+static VTBL_ENTRY alt_thunk_names844[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn12_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656613barEv,_ZTv0_n16_N7ee656613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656613barEv,_ZThn12_N7ee656613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656613fooEv,_ZTv0_n12_N7ee656613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656613fooEv,_ZThn12_N7ee656613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65661 = { "ee65661", // class name
+ bases_ee65661, 4,
+ &(vtc_ee65661[0]), // expected_vtbl_contents
+ &(vtt_ee65661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65661),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names844,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75661 : virtual dd5661 {
+ int e;
+ virtual void foo(); // _ZN7ee756613fooEv
+ virtual void bar(); // _ZN7ee756613barEv
+ ~ee75661(); // tgen
+ ee75661(); // tgen
+};
+//SIG(1 ee75661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75661 ::foo(){vfunc_called(this, "_ZN7ee756613fooEv");}
+void ee75661 ::bar(){vfunc_called(this, "_ZN7ee756613barEv");}
+ee75661 ::~ee75661(){ note_dtor("ee75661", this);} // tgen
+ee75661 ::ee75661(){ note_ctor("ee75661", this);} // tgen
+
+static void Test_ee75661()
+{
+ extern Class_Descriptor cd_ee75661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75661, buf);
+ ee75661 *dp, &lv = *(dp=new (buf) ee75661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee75661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee75661");
+ check_base_class_offset(lv, (cc661*)(dd5661*), ABISELECT(32,16), "ee75661");
+ check_base_class_offset(lv, (dd5661*), ABISELECT(16,8), "ee75661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75661.e");
+ test_class_info(&lv, &cd_ee75661);
+ dp->~ee75661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75661(Test_ee75661, "ee75661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75661C1Ev();
+extern void _ZN7ee75661D1Ev();
+Name_Map name_map_ee75661[] = {
+ NSPAIR(_ZN7ee75661C1Ev),
+ NSPAIR(_ZN7ee75661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd5661;
+extern VTBL_ENTRY _ZTI6dd5661[];
+extern VTBL_ENTRY _ZTV6dd5661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5661[];
+static Base_Class bases_ee75661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd5661, 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 _ZTI7ee75661[];
+extern void _ZN7ee756613fooEv();
+extern void _ZN7ee756613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756613barEv,_ZTv0_n16_N7ee756613barEv)();
+extern void ABISELECT(_ZThn16_N7ee756613barEv,_ZThn8_N7ee756613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756613fooEv,_ZTv0_n12_N7ee756613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756613fooEv,_ZThn16_N7ee756613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756613barEv,_ZTv0_n16_N7ee756613barEv)();
+extern void ABISELECT(_ZThn32_N7ee756613barEv,_ZThn16_N7ee756613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75661[0]),
+ (VTBL_ENTRY)&_ZN7ee756613fooEv,
+ (VTBL_ENTRY)&_ZN7ee756613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756613barEv,_ZTv0_n16_N7ee756613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756613fooEv,_ZTv0_n12_N7ee756613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756613barEv,_ZTv0_n16_N7ee756613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75661[];
+extern void _ZN6dd56613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5661__7ee75661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN6dd56613barEv,
+};
+extern void _ZN5cc6613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv)();
+extern void ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd5661__7ee75661[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5661[0]),
+ (VTBL_ENTRY)&_ZN5cc6613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv),
+};
+static VTT_ENTRY vtt_ee75661[] = {
+ {&(_ZTV7ee75661[4]), 4,17},
+ {&(_ZTV7ee75661[10]), 10,17},
+ {&(_ZTV7ee75661[15]), 15,17},
+ {&(_tg__ZTV6dd5661__7ee75661[3]), 3,4},
+ {&(_tg__ZTV5cc661__6dd5661__7ee75661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75661[];
+extern VTBL_ENTRY _ZTV7ee75661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75661[];
+static VTBL_ENTRY alt_thunk_names845[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56613barEv,_ZTv0_n16_N6dd56613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56613barEv,_ZThn8_N6dd56613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756613fooEv,_ZTv0_n12_N7ee756613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756613fooEv,_ZThn16_N7ee756613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756613barEv,_ZTv0_n16_N7ee756613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756613barEv,_ZThn16_N7ee756613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756613barEv,_ZThn8_N7ee756613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75661 = { "ee75661", // class name
+ bases_ee75661, 4,
+ &(vtc_ee75661[0]), // expected_vtbl_contents
+ &(vtt_ee75661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75661),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75661),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names845,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6661 : cc661 {
+ int d;
+ virtual void bar(); // _ZN6dd66613barEv
+ virtual void foo(); // _ZN6dd66613fooEv
+ ~dd6661(); // tgen
+ dd6661(); // tgen
+};
+//SIG(-1 dd6661) C1{ BC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6661 ::bar(){vfunc_called(this, "_ZN6dd66613barEv");}
+void dd6661 ::foo(){vfunc_called(this, "_ZN6dd66613fooEv");}
+dd6661 ::~dd6661(){ note_dtor("dd6661", this);} // tgen
+dd6661 ::dd6661(){ note_ctor("dd6661", this);} // tgen
+
+static void Test_dd6661()
+{
+ extern Class_Descriptor cd_dd6661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6661, buf);
+ dd6661 *dp, &lv = *(dp=new (buf) dd6661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), 0, "dd6661");
+ check_base_class_offset(lv, (bb61*)(cc661*), 0, "dd6661");
+ check_base_class_offset(lv, (cc661*), 0, "dd6661");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6661.d");
+ test_class_info(&lv, &cd_dd6661);
+ dp->~dd6661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6661(Test_dd6661, "dd6661", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6661C1Ev();
+extern void _ZN6dd6661D1Ev();
+Name_Map name_map_dd6661[] = {
+ NSPAIR(_ZN6dd6661C1Ev),
+ NSPAIR(_ZN6dd6661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd6661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6661[];
+extern void _ZN6dd66613fooEv();
+extern void _ZN6dd66613barEv();
+static VTBL_ENTRY vtc_dd6661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6661[0]),
+ (VTBL_ENTRY)&_ZN6dd66613fooEv,
+ (VTBL_ENTRY)&_ZN6dd66613barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+Class_Descriptor cd_dd6661 = { "dd6661", // class name
+ bases_dd6661, 3,
+ &(vtc_dd6661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6661),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 ee06661 : dd6661 {
+ int e;
+ ~ee06661(); // tgen
+ ee06661(); // tgen
+};
+//SIG(1 ee06661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06661 ::~ee06661(){ note_dtor("ee06661", this);} // tgen
+ee06661 ::ee06661(){ note_ctor("ee06661", this);} // tgen
+
+static void Test_ee06661()
+{
+ extern Class_Descriptor cd_ee06661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06661, buf);
+ ee06661 *dp, &lv = *(dp=new (buf) ee06661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), 0, "ee06661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), 0, "ee06661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), 0, "ee06661");
+ check_base_class_offset(lv, (dd6661*), 0, "ee06661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06661.e");
+ test_class_info(&lv, &cd_ee06661);
+ dp->~ee06661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06661(Test_ee06661, "ee06661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06661C1Ev();
+extern void _ZN7ee06661D1Ev();
+Name_Map name_map_ee06661[] = {
+ NSPAIR(_ZN7ee06661C1Ev),
+ NSPAIR(_ZN7ee06661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee06661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, 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 _ZTI7ee06661[];
+extern void _ZN6dd66613fooEv();
+extern void _ZN6dd66613barEv();
+static VTBL_ENTRY vtc_ee06661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06661[0]),
+ (VTBL_ENTRY)&_ZN6dd66613fooEv,
+ (VTBL_ENTRY)&_ZN6dd66613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06661[];
+extern VTBL_ENTRY _ZTV7ee06661[];
+Class_Descriptor cd_ee06661 = { "ee06661", // class name
+ bases_ee06661, 4,
+ &(vtc_ee06661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06661),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 ee16661 : virtual dd6661 {
+ int e;
+ ~ee16661(); // tgen
+ ee16661(); // tgen
+};
+//SIG(1 ee16661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16661 ::~ee16661(){ note_dtor("ee16661", this);} // tgen
+ee16661 ::ee16661(){ note_ctor("ee16661", this);} // tgen
+
+static void Test_ee16661()
+{
+ extern Class_Descriptor cd_ee16661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16661, buf);
+ ee16661 *dp, &lv = *(dp=new (buf) ee16661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee16661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee16661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), ABISELECT(16,8), "ee16661");
+ check_base_class_offset(lv, (dd6661*), ABISELECT(16,8), "ee16661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16661.e");
+ test_class_info(&lv, &cd_ee16661);
+ dp->~ee16661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16661(Test_ee16661, "ee16661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16661C1Ev();
+extern void _ZN7ee16661D1Ev();
+Name_Map name_map_ee16661[] = {
+ NSPAIR(_ZN7ee16661C1Ev),
+ NSPAIR(_ZN7ee16661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee16661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, 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 _ZTI7ee16661[];
+extern void _ZN6dd66613fooEv();
+extern void _ZN6dd66613barEv();
+static VTBL_ENTRY vtc_ee16661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16661[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16661[0]),
+ (VTBL_ENTRY)&_ZN6dd66613fooEv,
+ (VTBL_ENTRY)&_ZN6dd66613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16661[];
+static VTT_ENTRY vtt_ee16661[] = {
+ {&(_ZTV7ee16661[3]), 3,9},
+ {&(_ZTV7ee16661[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16661[];
+extern VTBL_ENTRY _ZTV7ee16661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16661[];
+Class_Descriptor cd_ee16661 = { "ee16661", // class name
+ bases_ee16661, 4,
+ &(vtc_ee16661[0]), // expected_vtbl_contents
+ &(vtt_ee16661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16661),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16661),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 ee26661 : dd6661 {
+ int e;
+ virtual void foo(); // _ZN7ee266613fooEv
+ ~ee26661(); // tgen
+ ee26661(); // tgen
+};
+//SIG(1 ee26661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26661 ::foo(){vfunc_called(this, "_ZN7ee266613fooEv");}
+ee26661 ::~ee26661(){ note_dtor("ee26661", this);} // tgen
+ee26661 ::ee26661(){ note_ctor("ee26661", this);} // tgen
+
+static void Test_ee26661()
+{
+ extern Class_Descriptor cd_ee26661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26661, buf);
+ ee26661 *dp, &lv = *(dp=new (buf) ee26661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), 0, "ee26661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), 0, "ee26661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), 0, "ee26661");
+ check_base_class_offset(lv, (dd6661*), 0, "ee26661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26661.e");
+ test_class_info(&lv, &cd_ee26661);
+ dp->~ee26661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26661(Test_ee26661, "ee26661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26661C1Ev();
+extern void _ZN7ee26661D1Ev();
+Name_Map name_map_ee26661[] = {
+ NSPAIR(_ZN7ee26661C1Ev),
+ NSPAIR(_ZN7ee26661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee26661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26661[];
+extern void _ZN7ee266613fooEv();
+extern void _ZN6dd66613barEv();
+static VTBL_ENTRY vtc_ee26661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26661[0]),
+ (VTBL_ENTRY)&_ZN7ee266613fooEv,
+ (VTBL_ENTRY)&_ZN6dd66613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26661[];
+extern VTBL_ENTRY _ZTV7ee26661[];
+Class_Descriptor cd_ee26661 = { "ee26661", // class name
+ bases_ee26661, 4,
+ &(vtc_ee26661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26661),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 ee36661 : virtual dd6661 {
+ int e;
+ virtual void foo(); // _ZN7ee366613fooEv
+ ~ee36661(); // tgen
+ ee36661(); // tgen
+};
+//SIG(1 ee36661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36661 ::foo(){vfunc_called(this, "_ZN7ee366613fooEv");}
+ee36661 ::~ee36661(){ note_dtor("ee36661", this);} // tgen
+ee36661 ::ee36661(){ note_ctor("ee36661", this);} // tgen
+
+static void Test_ee36661()
+{
+ extern Class_Descriptor cd_ee36661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36661, buf);
+ ee36661 *dp, &lv = *(dp=new (buf) ee36661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee36661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee36661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), ABISELECT(16,8), "ee36661");
+ check_base_class_offset(lv, (dd6661*), ABISELECT(16,8), "ee36661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36661.e");
+ test_class_info(&lv, &cd_ee36661);
+ dp->~ee36661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36661(Test_ee36661, "ee36661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36661C1Ev();
+extern void _ZN7ee36661D1Ev();
+Name_Map name_map_ee36661[] = {
+ NSPAIR(_ZN7ee36661C1Ev),
+ NSPAIR(_ZN7ee36661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee36661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, ABISELECT(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 _ZTI7ee36661[];
+extern void _ZN7ee366613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366613fooEv,_ZTv0_n12_N7ee366613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366613fooEv,_ZThn8_N7ee366613fooEv)() __attribute__((weak));
+extern void _ZN6dd66613barEv();
+static VTBL_ENTRY vtc_ee36661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36661[0]),
+ (VTBL_ENTRY)&_ZN7ee366613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366613fooEv,_ZTv0_n12_N7ee366613fooEv),
+ (VTBL_ENTRY)&_ZN6dd66613barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36661[];
+static VTT_ENTRY vtt_ee36661[] = {
+ {&(_ZTV7ee36661[3]), 3,10},
+ {&(_ZTV7ee36661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36661[];
+extern VTBL_ENTRY _ZTV7ee36661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36661[];
+static VTBL_ENTRY alt_thunk_names846[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366613fooEv,_ZTv0_n12_N7ee366613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366613fooEv,_ZThn8_N7ee366613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36661 = { "ee36661", // class name
+ bases_ee36661, 4,
+ &(vtc_ee36661[0]), // expected_vtbl_contents
+ &(vtt_ee36661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36661),2, //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 ee46661 : dd6661 {
+ int e;
+ virtual void bar(); // _ZN7ee466613barEv
+ ~ee46661(); // tgen
+ ee46661(); // tgen
+};
+//SIG(1 ee46661) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46661 ::bar(){vfunc_called(this, "_ZN7ee466613barEv");}
+ee46661 ::~ee46661(){ note_dtor("ee46661", this);} // tgen
+ee46661 ::ee46661(){ note_ctor("ee46661", this);} // tgen
+
+static void Test_ee46661()
+{
+ extern Class_Descriptor cd_ee46661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46661, buf);
+ ee46661 *dp, &lv = *(dp=new (buf) ee46661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), 0, "ee46661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), 0, "ee46661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), 0, "ee46661");
+ check_base_class_offset(lv, (dd6661*), 0, "ee46661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46661.e");
+ test_class_info(&lv, &cd_ee46661);
+ dp->~ee46661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46661(Test_ee46661, "ee46661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46661C1Ev();
+extern void _ZN7ee46661D1Ev();
+Name_Map name_map_ee46661[] = {
+ NSPAIR(_ZN7ee46661C1Ev),
+ NSPAIR(_ZN7ee46661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee46661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46661[];
+extern void _ZN6dd66613fooEv();
+extern void _ZN7ee466613barEv();
+static VTBL_ENTRY vtc_ee46661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46661[0]),
+ (VTBL_ENTRY)&_ZN6dd66613fooEv,
+ (VTBL_ENTRY)&_ZN7ee466613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46661[];
+extern VTBL_ENTRY _ZTV7ee46661[];
+Class_Descriptor cd_ee46661 = { "ee46661", // class name
+ bases_ee46661, 4,
+ &(vtc_ee46661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46661),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 ee56661 : virtual dd6661 {
+ int e;
+ virtual void bar(); // _ZN7ee566613barEv
+ ~ee56661(); // tgen
+ ee56661(); // tgen
+};
+//SIG(1 ee56661) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56661 ::bar(){vfunc_called(this, "_ZN7ee566613barEv");}
+ee56661 ::~ee56661(){ note_dtor("ee56661", this);} // tgen
+ee56661 ::ee56661(){ note_ctor("ee56661", this);} // tgen
+
+static void Test_ee56661()
+{
+ extern Class_Descriptor cd_ee56661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56661, buf);
+ ee56661 *dp, &lv = *(dp=new (buf) ee56661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee56661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee56661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), ABISELECT(16,8), "ee56661");
+ check_base_class_offset(lv, (dd6661*), ABISELECT(16,8), "ee56661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56661.e");
+ test_class_info(&lv, &cd_ee56661);
+ dp->~ee56661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56661(Test_ee56661, "ee56661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56661C1Ev();
+extern void _ZN7ee56661D1Ev();
+Name_Map name_map_ee56661[] = {
+ NSPAIR(_ZN7ee56661C1Ev),
+ NSPAIR(_ZN7ee56661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee56661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, ABISELECT(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 _ZTI7ee56661[];
+extern void _ZN7ee566613barEv();
+extern void _ZN6dd66613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566613barEv,_ZTv0_n16_N7ee566613barEv)();
+extern void ABISELECT(_ZThn16_N7ee566613barEv,_ZThn8_N7ee566613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56661[0]),
+ (VTBL_ENTRY)&_ZN7ee566613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56661[0]),
+ (VTBL_ENTRY)&_ZN6dd66613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566613barEv,_ZTv0_n16_N7ee566613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56661[];
+static VTT_ENTRY vtt_ee56661[] = {
+ {&(_ZTV7ee56661[3]), 3,10},
+ {&(_ZTV7ee56661[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56661[];
+extern VTBL_ENTRY _ZTV7ee56661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56661[];
+static VTBL_ENTRY alt_thunk_names847[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566613barEv,_ZTv0_n16_N7ee566613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566613barEv,_ZThn8_N7ee566613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56661 = { "ee56661", // class name
+ bases_ee56661, 4,
+ &(vtc_ee56661[0]), // expected_vtbl_contents
+ &(vtt_ee56661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56661),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56661),2, //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 ee66661 : dd6661 {
+ int e;
+ virtual void foo(); // _ZN7ee666613fooEv
+ virtual void bar(); // _ZN7ee666613barEv
+ ~ee66661(); // tgen
+ ee66661(); // tgen
+};
+//SIG(1 ee66661) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66661 ::foo(){vfunc_called(this, "_ZN7ee666613fooEv");}
+void ee66661 ::bar(){vfunc_called(this, "_ZN7ee666613barEv");}
+ee66661 ::~ee66661(){ note_dtor("ee66661", this);} // tgen
+ee66661 ::ee66661(){ note_ctor("ee66661", this);} // tgen
+
+static void Test_ee66661()
+{
+ extern Class_Descriptor cd_ee66661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66661, buf);
+ ee66661 *dp, &lv = *(dp=new (buf) ee66661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), 0, "ee66661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), 0, "ee66661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), 0, "ee66661");
+ check_base_class_offset(lv, (dd6661*), 0, "ee66661");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66661.e");
+ test_class_info(&lv, &cd_ee66661);
+ dp->~ee66661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66661(Test_ee66661, "ee66661", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66661C1Ev();
+extern void _ZN7ee66661D1Ev();
+Name_Map name_map_ee66661[] = {
+ NSPAIR(_ZN7ee66661C1Ev),
+ NSPAIR(_ZN7ee66661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee66661[] = {
+ // 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_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66661[];
+extern void _ZN7ee666613fooEv();
+extern void _ZN7ee666613barEv();
+static VTBL_ENTRY vtc_ee66661[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66661[0]),
+ (VTBL_ENTRY)&_ZN7ee666613fooEv,
+ (VTBL_ENTRY)&_ZN7ee666613barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66661[];
+extern VTBL_ENTRY _ZTV7ee66661[];
+Class_Descriptor cd_ee66661 = { "ee66661", // class name
+ bases_ee66661, 4,
+ &(vtc_ee66661[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66661),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 ee76661 : virtual dd6661 {
+ int e;
+ virtual void foo(); // _ZN7ee766613fooEv
+ virtual void bar(); // _ZN7ee766613barEv
+ ~ee76661(); // tgen
+ ee76661(); // tgen
+};
+//SIG(1 ee76661) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76661 ::foo(){vfunc_called(this, "_ZN7ee766613fooEv");}
+void ee76661 ::bar(){vfunc_called(this, "_ZN7ee766613barEv");}
+ee76661 ::~ee76661(){ note_dtor("ee76661", this);} // tgen
+ee76661 ::ee76661(){ note_ctor("ee76661", this);} // tgen
+
+static void Test_ee76661()
+{
+ extern Class_Descriptor cd_ee76661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76661, buf);
+ ee76661 *dp, &lv = *(dp=new (buf) ee76661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee76661");
+ check_base_class_offset(lv, (bb61*)(cc661*)(dd6661*), ABISELECT(16,8), "ee76661");
+ check_base_class_offset(lv, (cc661*)(dd6661*), ABISELECT(16,8), "ee76661");
+ check_base_class_offset(lv, (dd6661*), ABISELECT(16,8), "ee76661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76661.e");
+ test_class_info(&lv, &cd_ee76661);
+ dp->~ee76661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76661(Test_ee76661, "ee76661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76661C1Ev();
+extern void _ZN7ee76661D1Ev();
+Name_Map name_map_ee76661[] = {
+ NSPAIR(_ZN7ee76661C1Ev),
+ NSPAIR(_ZN7ee76661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd6661;
+extern VTBL_ENTRY _ZTI6dd6661[];
+extern VTBL_ENTRY _ZTV6dd6661[];
+static Base_Class bases_ee76661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6661, ABISELECT(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 _ZTI7ee76661[];
+extern void _ZN7ee766613fooEv();
+extern void _ZN7ee766613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766613fooEv,_ZTv0_n12_N7ee766613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766613fooEv,_ZThn8_N7ee766613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766613barEv,_ZTv0_n16_N7ee766613barEv)();
+extern void ABISELECT(_ZThn16_N7ee766613barEv,_ZThn8_N7ee766613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76661[0]),
+ (VTBL_ENTRY)&_ZN7ee766613fooEv,
+ (VTBL_ENTRY)&_ZN7ee766613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766613fooEv,_ZTv0_n12_N7ee766613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766613barEv,_ZTv0_n16_N7ee766613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76661[];
+static VTT_ENTRY vtt_ee76661[] = {
+ {&(_ZTV7ee76661[3]), 3,11},
+ {&(_ZTV7ee76661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76661[];
+extern VTBL_ENTRY _ZTV7ee76661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76661[];
+static VTBL_ENTRY alt_thunk_names848[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766613barEv,_ZTv0_n16_N7ee766613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766613barEv,_ZThn8_N7ee766613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766613fooEv,_ZTv0_n12_N7ee766613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766613fooEv,_ZThn8_N7ee766613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76661 = { "ee76661", // class name
+ bases_ee76661, 4,
+ &(vtc_ee76661[0]), // expected_vtbl_contents
+ &(vtt_ee76661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76661),2, //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 dd7661 : virtual cc661 {
+ int d;
+ virtual void bar(); // _ZN6dd76613barEv
+ virtual void foo(); // _ZN6dd76613fooEv
+ ~dd7661(); // tgen
+ dd7661(); // tgen
+};
+//SIG(-1 dd7661) C1{ VBC2{ BC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7661 ::bar(){vfunc_called(this, "_ZN6dd76613barEv");}
+void dd7661 ::foo(){vfunc_called(this, "_ZN6dd76613fooEv");}
+dd7661 ::~dd7661(){ note_dtor("dd7661", this);} // tgen
+dd7661 ::dd7661(){ note_ctor("dd7661", this);} // tgen
+
+static void Test_dd7661()
+{
+ extern Class_Descriptor cd_dd7661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7661, buf);
+ dd7661 *dp, &lv = *(dp=new (buf) dd7661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,8), "dd7661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,8), "dd7661");
+ check_base_class_offset(lv, (cc661*), ABISELECT(16,8), "dd7661");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7661.d");
+ test_class_info(&lv, &cd_dd7661);
+ dp->~dd7661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7661(Test_dd7661, "dd7661", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7661C1Ev();
+extern void _ZN6dd7661D1Ev();
+Name_Map name_map_dd7661[] = {
+ NSPAIR(_ZN6dd7661C1Ev),
+ NSPAIR(_ZN6dd7661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+static Base_Class bases_dd7661[] = {
+ // 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_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, ABISELECT(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 _ZTI6dd7661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7661[];
+static VTT_ENTRY vtt_dd7661[] = {
+ {&(_ZTV6dd7661[3]), 3,11},
+ {&(_ZTV6dd7661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static VTBL_ENTRY alt_thunk_names849[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7661 = { "dd7661", // class name
+ bases_dd7661, 3,
+ &(vtc_dd7661[0]), // expected_vtbl_contents
+ &(vtt_dd7661[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7661),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names849,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07661 : dd7661 {
+ int e;
+ ~ee07661(); // tgen
+ ee07661(); // tgen
+};
+//SIG(1 ee07661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07661 ::~ee07661(){ note_dtor("ee07661", this);} // tgen
+ee07661 ::ee07661(){ note_ctor("ee07661", this);} // tgen
+
+static void Test_ee07661()
+{
+ extern Class_Descriptor cd_ee07661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07661, buf);
+ ee07661 *dp, &lv = *(dp=new (buf) ee07661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee07661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee07661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(16,12), "ee07661");
+ check_base_class_offset(lv, (dd7661*), 0, "ee07661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07661.e");
+ test_class_info(&lv, &cd_ee07661);
+ dp->~ee07661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07661(Test_ee07661, "ee07661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07661C1Ev();
+extern void _ZN7ee07661D1Ev();
+Name_Map name_map_ee07661[] = {
+ NSPAIR(_ZN7ee07661C1Ev),
+ NSPAIR(_ZN7ee07661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee07661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee07661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee07661[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee07661[] = {
+ {&(_ZTV7ee07661[3]), 3,11},
+ {&(_tg__ZTV6dd7661__7ee07661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee07661[4]), 4,6},
+ {&(_ZTV7ee07661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07661[];
+extern VTBL_ENTRY _ZTV7ee07661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07661[];
+static VTBL_ENTRY alt_thunk_names850[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07661 = { "ee07661", // class name
+ bases_ee07661, 4,
+ &(vtc_ee07661[0]), // expected_vtbl_contents
+ &(vtt_ee07661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07661),4, //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 ee17661 : virtual dd7661 {
+ int e;
+ ~ee17661(); // tgen
+ ee17661(); // tgen
+};
+//SIG(1 ee17661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17661 ::~ee17661(){ note_dtor("ee17661", this);} // tgen
+ee17661 ::ee17661(){ note_ctor("ee17661", this);} // tgen
+
+static void Test_ee17661()
+{
+ extern Class_Descriptor cd_ee17661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17661, buf);
+ ee17661 *dp, &lv = *(dp=new (buf) ee17661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee17661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee17661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(32,16), "ee17661");
+ check_base_class_offset(lv, (dd7661*), ABISELECT(16,8), "ee17661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17661.e");
+ test_class_info(&lv, &cd_ee17661);
+ dp->~ee17661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17661(Test_ee17661, "ee17661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17661C1Ev();
+extern void _ZN7ee17661D1Ev();
+Name_Map name_map_ee17661[] = {
+ NSPAIR(_ZN7ee17661C1Ev),
+ NSPAIR(_ZN7ee17661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee17661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, 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 _ZTI7ee17661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17661[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee17661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee17661[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee17661[] = {
+ {&(_ZTV7ee17661[4]), 4,17},
+ {&(_ZTV7ee17661[9]), 9,17},
+ {&(_ZTV7ee17661[15]), 15,17},
+ {&(_tg__ZTV6dd7661__7ee17661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee17661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17661[];
+extern VTBL_ENTRY _ZTV7ee17661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17661[];
+static VTBL_ENTRY alt_thunk_names851[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17661 = { "ee17661", // class name
+ bases_ee17661, 4,
+ &(vtc_ee17661[0]), // expected_vtbl_contents
+ &(vtt_ee17661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17661),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17661),5, //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 ee27661 : dd7661 {
+ int e;
+ virtual void foo(); // _ZN7ee276613fooEv
+ ~ee27661(); // tgen
+ ee27661(); // tgen
+};
+//SIG(1 ee27661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27661 ::foo(){vfunc_called(this, "_ZN7ee276613fooEv");}
+ee27661 ::~ee27661(){ note_dtor("ee27661", this);} // tgen
+ee27661 ::ee27661(){ note_ctor("ee27661", this);} // tgen
+
+static void Test_ee27661()
+{
+ extern Class_Descriptor cd_ee27661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27661, buf);
+ ee27661 *dp, &lv = *(dp=new (buf) ee27661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee27661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee27661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(16,12), "ee27661");
+ check_base_class_offset(lv, (dd7661*), 0, "ee27661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27661.e");
+ test_class_info(&lv, &cd_ee27661);
+ dp->~ee27661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27661(Test_ee27661, "ee27661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27661C1Ev();
+extern void _ZN7ee27661D1Ev();
+Name_Map name_map_ee27661[] = {
+ NSPAIR(_ZN7ee27661C1Ev),
+ NSPAIR(_ZN7ee27661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee27661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN7ee276613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276613fooEv,_ZTv0_n12_N7ee276613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276613fooEv,_ZThn12_N7ee276613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN7ee276613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276613fooEv,_ZTv0_n12_N7ee276613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee27661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee27661[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee27661[] = {
+ {&(_ZTV7ee27661[3]), 3,11},
+ {&(_tg__ZTV6dd7661__7ee27661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee27661[4]), 4,6},
+ {&(_ZTV7ee27661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27661[];
+extern VTBL_ENTRY _ZTV7ee27661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27661[];
+static VTBL_ENTRY alt_thunk_names852[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276613fooEv,_ZTv0_n12_N7ee276613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276613fooEv,_ZThn12_N7ee276613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27661 = { "ee27661", // class name
+ bases_ee27661, 4,
+ &(vtc_ee27661[0]), // expected_vtbl_contents
+ &(vtt_ee27661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27661),4, //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 ee37661 : virtual dd7661 {
+ int e;
+ virtual void foo(); // _ZN7ee376613fooEv
+ ~ee37661(); // tgen
+ ee37661(); // tgen
+};
+//SIG(1 ee37661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37661 ::foo(){vfunc_called(this, "_ZN7ee376613fooEv");}
+ee37661 ::~ee37661(){ note_dtor("ee37661", this);} // tgen
+ee37661 ::ee37661(){ note_ctor("ee37661", this);} // tgen
+
+static void Test_ee37661()
+{
+ extern Class_Descriptor cd_ee37661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37661, buf);
+ ee37661 *dp, &lv = *(dp=new (buf) ee37661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee37661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee37661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(32,16), "ee37661");
+ check_base_class_offset(lv, (dd7661*), ABISELECT(16,8), "ee37661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37661.e");
+ test_class_info(&lv, &cd_ee37661);
+ dp->~ee37661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37661(Test_ee37661, "ee37661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37661C1Ev();
+extern void _ZN7ee37661D1Ev();
+Name_Map name_map_ee37661[] = {
+ NSPAIR(_ZN7ee37661C1Ev),
+ NSPAIR(_ZN7ee37661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee37661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, ABISELECT(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 _ZTI7ee37661[];
+extern void _ZN7ee376613fooEv();
+extern void _ZN6dd76613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376613fooEv,_ZTv0_n20_N7ee376613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376613fooEv,_ZThn8_N7ee376613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376613fooEv,_ZTv0_n12_N7ee376613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376613fooEv,_ZThn16_N7ee376613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37661[0]),
+ (VTBL_ENTRY)&_ZN7ee376613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376613fooEv,_ZTv0_n20_N7ee376613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376613fooEv,_ZTv0_n12_N7ee376613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee37661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee37661[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee37661[] = {
+ {&(_ZTV7ee37661[4]), 4,18},
+ {&(_ZTV7ee37661[10]), 10,18},
+ {&(_ZTV7ee37661[16]), 16,18},
+ {&(_tg__ZTV6dd7661__7ee37661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee37661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37661[];
+extern VTBL_ENTRY _ZTV7ee37661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37661[];
+static VTBL_ENTRY alt_thunk_names853[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376613fooEv,_ZTv0_n12_N7ee376613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376613fooEv,_ZThn16_N7ee376613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376613fooEv,_ZTv0_n20_N7ee376613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376613fooEv,_ZThn8_N7ee376613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37661 = { "ee37661", // class name
+ bases_ee37661, 4,
+ &(vtc_ee37661[0]), // expected_vtbl_contents
+ &(vtt_ee37661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37661),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37661),5, //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 ee47661 : dd7661 {
+ int e;
+ virtual void bar(); // _ZN7ee476613barEv
+ ~ee47661(); // tgen
+ ee47661(); // tgen
+};
+//SIG(1 ee47661) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47661 ::bar(){vfunc_called(this, "_ZN7ee476613barEv");}
+ee47661 ::~ee47661(){ note_dtor("ee47661", this);} // tgen
+ee47661 ::ee47661(){ note_ctor("ee47661", this);} // tgen
+
+static void Test_ee47661()
+{
+ extern Class_Descriptor cd_ee47661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47661, buf);
+ ee47661 *dp, &lv = *(dp=new (buf) ee47661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee47661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee47661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(16,12), "ee47661");
+ check_base_class_offset(lv, (dd7661*), 0, "ee47661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47661.e");
+ test_class_info(&lv, &cd_ee47661);
+ dp->~ee47661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47661(Test_ee47661, "ee47661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47661C1Ev();
+extern void _ZN7ee47661D1Ev();
+Name_Map name_map_ee47661[] = {
+ NSPAIR(_ZN7ee47661C1Ev),
+ NSPAIR(_ZN7ee47661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee47661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47661[];
+extern void _ZN7ee476613barEv();
+extern void _ZN6dd76613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476613barEv,_ZTv0_n16_N7ee476613barEv)();
+extern void ABISELECT(_ZThn16_N7ee476613barEv,_ZThn12_N7ee476613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47661[0]),
+ (VTBL_ENTRY)&_ZN7ee476613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476613barEv,_ZTv0_n16_N7ee476613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee47661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee47661[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee47661[] = {
+ {&(_ZTV7ee47661[3]), 3,11},
+ {&(_tg__ZTV6dd7661__7ee47661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee47661[4]), 4,6},
+ {&(_ZTV7ee47661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47661[];
+extern VTBL_ENTRY _ZTV7ee47661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47661[];
+static VTBL_ENTRY alt_thunk_names854[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476613barEv,_ZTv0_n16_N7ee476613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476613barEv,_ZThn12_N7ee476613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47661 = { "ee47661", // class name
+ bases_ee47661, 4,
+ &(vtc_ee47661[0]), // expected_vtbl_contents
+ &(vtt_ee47661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47661),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 ee57661 : virtual dd7661 {
+ int e;
+ virtual void bar(); // _ZN7ee576613barEv
+ ~ee57661(); // tgen
+ ee57661(); // tgen
+};
+//SIG(1 ee57661) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57661 ::bar(){vfunc_called(this, "_ZN7ee576613barEv");}
+ee57661 ::~ee57661(){ note_dtor("ee57661", this);} // tgen
+ee57661 ::ee57661(){ note_ctor("ee57661", this);} // tgen
+
+static void Test_ee57661()
+{
+ extern Class_Descriptor cd_ee57661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57661, buf);
+ ee57661 *dp, &lv = *(dp=new (buf) ee57661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee57661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee57661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(32,16), "ee57661");
+ check_base_class_offset(lv, (dd7661*), ABISELECT(16,8), "ee57661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57661.e");
+ test_class_info(&lv, &cd_ee57661);
+ dp->~ee57661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57661(Test_ee57661, "ee57661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57661C1Ev();
+extern void _ZN7ee57661D1Ev();
+Name_Map name_map_ee57661[] = {
+ NSPAIR(_ZN7ee57661C1Ev),
+ NSPAIR(_ZN7ee57661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee57661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, ABISELECT(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 _ZTI7ee57661[];
+extern void _ZN7ee576613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576613barEv,_ZTv0_n16_N7ee576613barEv)();
+extern void ABISELECT(_ZThn16_N7ee576613barEv,_ZThn8_N7ee576613barEv)() __attribute__((weak));
+extern void _ZN6dd76613fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576613barEv,_ZTv0_n16_N7ee576613barEv)();
+extern void ABISELECT(_ZThn32_N7ee576613barEv,_ZThn16_N7ee576613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57661[0]),
+ (VTBL_ENTRY)&_ZN7ee576613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576613barEv,_ZTv0_n16_N7ee576613barEv),
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576613barEv,_ZTv0_n16_N7ee576613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee57661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee57661[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee57661[] = {
+ {&(_ZTV7ee57661[4]), 4,18},
+ {&(_ZTV7ee57661[10]), 10,18},
+ {&(_ZTV7ee57661[16]), 16,18},
+ {&(_tg__ZTV6dd7661__7ee57661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee57661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57661[];
+extern VTBL_ENTRY _ZTV7ee57661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57661[];
+static VTBL_ENTRY alt_thunk_names855[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576613barEv,_ZTv0_n16_N7ee576613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576613barEv,_ZThn16_N7ee576613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576613barEv,_ZThn8_N7ee576613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57661 = { "ee57661", // class name
+ bases_ee57661, 4,
+ &(vtc_ee57661[0]), // expected_vtbl_contents
+ &(vtt_ee57661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57661),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57661),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 ee67661 : dd7661 {
+ int e;
+ virtual void foo(); // _ZN7ee676613fooEv
+ virtual void bar(); // _ZN7ee676613barEv
+ ~ee67661(); // tgen
+ ee67661(); // tgen
+};
+//SIG(1 ee67661) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67661 ::foo(){vfunc_called(this, "_ZN7ee676613fooEv");}
+void ee67661 ::bar(){vfunc_called(this, "_ZN7ee676613barEv");}
+ee67661 ::~ee67661(){ note_dtor("ee67661", this);} // tgen
+ee67661 ::ee67661(){ note_ctor("ee67661", this);} // tgen
+
+static void Test_ee67661()
+{
+ extern Class_Descriptor cd_ee67661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67661, buf);
+ ee67661 *dp, &lv = *(dp=new (buf) ee67661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(16,12), "ee67661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(16,12), "ee67661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(16,12), "ee67661");
+ check_base_class_offset(lv, (dd7661*), 0, "ee67661");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67661.e");
+ test_class_info(&lv, &cd_ee67661);
+ dp->~ee67661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67661(Test_ee67661, "ee67661", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67661C1Ev();
+extern void _ZN7ee67661D1Ev();
+Name_Map name_map_ee67661[] = {
+ NSPAIR(_ZN7ee67661C1Ev),
+ NSPAIR(_ZN7ee67661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee67661[] = {
+ // 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_bb61, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67661[];
+extern void _ZN7ee676613barEv();
+extern void _ZN7ee676613fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676613fooEv,_ZTv0_n12_N7ee676613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676613fooEv,_ZThn12_N7ee676613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676613barEv,_ZTv0_n16_N7ee676613barEv)();
+extern void ABISELECT(_ZThn16_N7ee676613barEv,_ZThn12_N7ee676613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67661[0]),
+ (VTBL_ENTRY)&_ZN7ee676613barEv,
+ (VTBL_ENTRY)&_ZN7ee676613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676613fooEv,_ZTv0_n12_N7ee676613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676613barEv,_ZTv0_n16_N7ee676613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee67661[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee67661[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee67661[] = {
+ {&(_ZTV7ee67661[3]), 3,11},
+ {&(_tg__ZTV6dd7661__7ee67661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee67661[4]), 4,6},
+ {&(_ZTV7ee67661[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67661[];
+extern VTBL_ENTRY _ZTV7ee67661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67661[];
+static VTBL_ENTRY alt_thunk_names856[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn12_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn12_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676613barEv,_ZTv0_n16_N7ee676613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676613barEv,_ZThn12_N7ee676613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676613fooEv,_ZTv0_n12_N7ee676613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676613fooEv,_ZThn12_N7ee676613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67661 = { "ee67661", // class name
+ bases_ee67661, 4,
+ &(vtc_ee67661[0]), // expected_vtbl_contents
+ &(vtt_ee67661[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67661),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67661),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67661),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 ee77661 : virtual dd7661 {
+ int e;
+ virtual void foo(); // _ZN7ee776613fooEv
+ virtual void bar(); // _ZN7ee776613barEv
+ ~ee77661(); // tgen
+ ee77661(); // tgen
+};
+//SIG(1 ee77661) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77661 ::foo(){vfunc_called(this, "_ZN7ee776613fooEv");}
+void ee77661 ::bar(){vfunc_called(this, "_ZN7ee776613barEv");}
+ee77661 ::~ee77661(){ note_dtor("ee77661", this);} // tgen
+ee77661 ::ee77661(){ note_ctor("ee77661", this);} // tgen
+
+static void Test_ee77661()
+{
+ extern Class_Descriptor cd_ee77661;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77661, buf);
+ ee77661 *dp, &lv = *(dp=new (buf) ee77661());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77661)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77661)");
+ check_base_class_offset(lv, (aa1*)(bb61*)(cc661*), ABISELECT(32,16), "ee77661");
+ check_base_class_offset(lv, (bb61*)(cc661*), ABISELECT(32,16), "ee77661");
+ check_base_class_offset(lv, (cc661*)(dd7661*), ABISELECT(32,16), "ee77661");
+ check_base_class_offset(lv, (dd7661*), ABISELECT(16,8), "ee77661");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77661.e");
+ test_class_info(&lv, &cd_ee77661);
+ dp->~ee77661();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77661(Test_ee77661, "ee77661", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77661C1Ev();
+extern void _ZN7ee77661D1Ev();
+Name_Map name_map_ee77661[] = {
+ NSPAIR(_ZN7ee77661C1Ev),
+ NSPAIR(_ZN7ee77661D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc661;
+extern VTBL_ENTRY _ZTI5cc661[];
+extern VTBL_ENTRY _ZTV5cc661[];
+extern Class_Descriptor cd_dd7661;
+extern VTBL_ENTRY _ZTI6dd7661[];
+extern VTBL_ENTRY _ZTV6dd7661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7661[];
+static Base_Class bases_ee77661[] = {
+ // 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_bb61, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc661, 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_dd7661, ABISELECT(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 _ZTI7ee77661[];
+extern void _ZN7ee776613fooEv();
+extern void _ZN7ee776613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776613barEv,_ZTv0_n16_N7ee776613barEv)();
+extern void ABISELECT(_ZThn16_N7ee776613barEv,_ZThn8_N7ee776613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776613fooEv,_ZTv0_n20_N7ee776613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776613fooEv,_ZThn8_N7ee776613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776613fooEv,_ZTv0_n12_N7ee776613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776613fooEv,_ZThn16_N7ee776613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776613barEv,_ZTv0_n16_N7ee776613barEv)();
+extern void ABISELECT(_ZThn32_N7ee776613barEv,_ZThn16_N7ee776613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77661[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77661[0]),
+ (VTBL_ENTRY)&_ZN7ee776613fooEv,
+ (VTBL_ENTRY)&_ZN7ee776613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776613barEv,_ZTv0_n16_N7ee776613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776613fooEv,_ZTv0_n20_N7ee776613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776613fooEv,_ZTv0_n12_N7ee776613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776613barEv,_ZTv0_n16_N7ee776613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77661[];
+extern void _ZN6dd76613barEv();
+extern void _ZN6dd76613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7661__7ee77661[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&_ZN6dd76613barEv,
+ (VTBL_ENTRY)&_ZN6dd76613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv)();
+extern void ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc661__6dd7661__7ee77661[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7661[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv),
+};
+static VTT_ENTRY vtt_ee77661[] = {
+ {&(_ZTV7ee77661[4]), 4,19},
+ {&(_ZTV7ee77661[11]), 11,19},
+ {&(_ZTV7ee77661[17]), 17,19},
+ {&(_tg__ZTV6dd7661__7ee77661[3]), 3,5},
+ {&(_tg__ZTV5cc661__6dd7661__7ee77661[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77661[];
+extern VTBL_ENTRY _ZTV7ee77661[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77661[];
+static VTBL_ENTRY alt_thunk_names857[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76613barEv,_ZTv0_n16_N6dd76613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613barEv,_ZThn8_N6dd76613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76613fooEv,_ZTv0_n12_N6dd76613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76613fooEv,_ZThn8_N6dd76613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776613fooEv,_ZTv0_n12_N7ee776613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776613fooEv,_ZThn16_N7ee776613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776613fooEv,_ZTv0_n20_N7ee776613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776613fooEv,_ZThn8_N7ee776613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776613barEv,_ZTv0_n16_N7ee776613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776613barEv,_ZThn16_N7ee776613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776613barEv,_ZThn8_N7ee776613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77661 = { "ee77661", // class name
+ bases_ee77661, 4,
+ &(vtc_ee77661[0]), // expected_vtbl_contents
+ &(vtt_ee77661[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77661),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77661),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77661),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 cc761 : virtual bb61 {
+ int c;
+ virtual void foo(); // _ZN5cc7613fooEv
+ virtual void bar(); // _ZN5cc7613barEv
+ ~cc761(); // tgen
+ cc761(); // tgen
+};
+//SIG(-1 cc761) C1{ VBC2{ BC3{ v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc761 ::foo(){vfunc_called(this, "_ZN5cc7613fooEv");}
+void cc761 ::bar(){vfunc_called(this, "_ZN5cc7613barEv");}
+cc761 ::~cc761(){ note_dtor("cc761", this);} // tgen
+cc761 ::cc761(){ note_ctor("cc761", this);} // tgen
+
+static void Test_cc761()
+{
+ extern Class_Descriptor cd_cc761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc761, buf);
+ cc761 *dp, &lv = *(dp=new (buf) cc761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,8), "cc761");
+ check_base_class_offset(lv, (bb61*), ABISELECT(16,8), "cc761");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc761.c");
+ test_class_info(&lv, &cd_cc761);
+ dp->~cc761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc761(Test_cc761, "cc761", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc761C1Ev();
+extern void _ZN5cc761D1Ev();
+Name_Map name_map_cc761[] = {
+ NSPAIR(_ZN5cc761C1Ev),
+ NSPAIR(_ZN5cc761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_cc761[] = {
+ // 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_bb61, ABISELECT(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 _ZTI5cc761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV5cc761[];
+static VTT_ENTRY vtt_cc761[] = {
+ {&(_ZTV5cc761[3]), 3,11},
+ {&(_ZTV5cc761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static VTBL_ENTRY alt_thunk_names858[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc761 = { "cc761", // class name
+ bases_cc761, 2,
+ &(vtc_cc761[0]), // expected_vtbl_contents
+ &(vtt_cc761[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc761),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names858,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0761 : cc761 {
+ int d;
+ ~dd0761(); // tgen
+ dd0761(); // tgen
+};
+//SIG(-1 dd0761) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0761 ::~dd0761(){ note_dtor("dd0761", this);} // tgen
+dd0761 ::dd0761(){ note_ctor("dd0761", this);} // tgen
+
+static void Test_dd0761()
+{
+ extern Class_Descriptor cd_dd0761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0761, buf);
+ dd0761 *dp, &lv = *(dp=new (buf) dd0761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd0761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(16,12), "dd0761");
+ check_base_class_offset(lv, (cc761*), 0, "dd0761");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0761.d");
+ test_class_info(&lv, &cd_dd0761);
+ dp->~dd0761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0761(Test_dd0761, "dd0761", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0761C1Ev();
+extern void _ZN6dd0761D1Ev();
+Name_Map name_map_dd0761[] = {
+ NSPAIR(_ZN6dd0761C1Ev),
+ NSPAIR(_ZN6dd0761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd0761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd0761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd0761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd0761[] = {
+ {&(_ZTV6dd0761[3]), 3,11},
+ {&(_tg__ZTV5cc761__6dd0761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd0761[4]), 4,6},
+ {&(_ZTV6dd0761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static VTBL_ENTRY alt_thunk_names859[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0761 = { "dd0761", // class name
+ bases_dd0761, 3,
+ &(vtc_dd0761[0]), // expected_vtbl_contents
+ &(vtt_dd0761[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0761),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names859,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00761 : dd0761 {
+ int e;
+ ~ee00761(); // tgen
+ ee00761(); // tgen
+};
+//SIG(1 ee00761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00761 ::~ee00761(){ note_dtor("ee00761", this);} // tgen
+ee00761 ::ee00761(){ note_ctor("ee00761", this);} // tgen
+
+static void Test_ee00761()
+{
+ extern Class_Descriptor cd_ee00761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00761, buf);
+ ee00761 *dp, &lv = *(dp=new (buf) ee00761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee00761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(24,16), "ee00761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), 0, "ee00761");
+ check_base_class_offset(lv, (dd0761*), 0, "ee00761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00761.e");
+ test_class_info(&lv, &cd_ee00761);
+ dp->~ee00761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00761(Test_ee00761, "ee00761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00761C1Ev();
+extern void _ZN7ee00761D1Ev();
+Name_Map name_map_ee00761[] = {
+ NSPAIR(_ZN7ee00761C1Ev),
+ NSPAIR(_ZN7ee00761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee00761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee00761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee00761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee00761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee00761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee00761[] = {
+ {&(_ZTV7ee00761[3]), 3,11},
+ {&(_tg__ZTV6dd0761__7ee00761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee00761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee00761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee00761[4]), 4,6},
+ {&(_ZTV7ee00761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00761[];
+extern VTBL_ENTRY _ZTV7ee00761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00761[];
+static VTBL_ENTRY alt_thunk_names860[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00761 = { "ee00761", // class name
+ bases_ee00761, 4,
+ &(vtc_ee00761[0]), // expected_vtbl_contents
+ &(vtt_ee00761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00761),6, //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 ee10761 : virtual dd0761 {
+ int e;
+ ~ee10761(); // tgen
+ ee10761(); // tgen
+};
+//SIG(1 ee10761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10761 ::~ee10761(){ note_dtor("ee10761", this);} // tgen
+ee10761 ::ee10761(){ note_ctor("ee10761", this);} // tgen
+
+static void Test_ee10761()
+{
+ extern Class_Descriptor cd_ee10761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10761, buf);
+ ee10761 *dp, &lv = *(dp=new (buf) ee10761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee10761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(32,20), "ee10761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), ABISELECT(16,8), "ee10761");
+ check_base_class_offset(lv, (dd0761*), ABISELECT(16,8), "ee10761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10761.e");
+ test_class_info(&lv, &cd_ee10761);
+ dp->~ee10761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10761(Test_ee10761, "ee10761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10761C1Ev();
+extern void _ZN7ee10761D1Ev();
+Name_Map name_map_ee10761[] = {
+ NSPAIR(_ZN7ee10761C1Ev),
+ NSPAIR(_ZN7ee10761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee10761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, 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 _ZTI7ee10761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10761[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee10761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee10761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee10761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee10761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee10761[] = {
+ {&(_ZTV7ee10761[4]), 4,17},
+ {&(_ZTV7ee10761[9]), 9,17},
+ {&(_ZTV7ee10761[15]), 15,17},
+ {&(_tg__ZTV6dd0761__7ee10761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee10761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee10761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee10761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10761[];
+extern VTBL_ENTRY _ZTV7ee10761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10761[];
+static VTBL_ENTRY alt_thunk_names861[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10761 = { "ee10761", // class name
+ bases_ee10761, 4,
+ &(vtc_ee10761[0]), // expected_vtbl_contents
+ &(vtt_ee10761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10761),7, //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 ee20761 : dd0761 {
+ int e;
+ virtual void foo(); // _ZN7ee207613fooEv
+ ~ee20761(); // tgen
+ ee20761(); // tgen
+};
+//SIG(1 ee20761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20761 ::foo(){vfunc_called(this, "_ZN7ee207613fooEv");}
+ee20761 ::~ee20761(){ note_dtor("ee20761", this);} // tgen
+ee20761 ::ee20761(){ note_ctor("ee20761", this);} // tgen
+
+static void Test_ee20761()
+{
+ extern Class_Descriptor cd_ee20761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20761, buf);
+ ee20761 *dp, &lv = *(dp=new (buf) ee20761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee20761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(24,16), "ee20761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), 0, "ee20761");
+ check_base_class_offset(lv, (dd0761*), 0, "ee20761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20761.e");
+ test_class_info(&lv, &cd_ee20761);
+ dp->~ee20761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20761(Test_ee20761, "ee20761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20761C1Ev();
+extern void _ZN7ee20761D1Ev();
+Name_Map name_map_ee20761[] = {
+ NSPAIR(_ZN7ee20761C1Ev),
+ NSPAIR(_ZN7ee20761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee20761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20761[];
+extern void _ZN7ee207613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207613fooEv,_ZTv0_n12_N7ee207613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207613fooEv,_ZThn16_N7ee207613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20761[0]),
+ (VTBL_ENTRY)&_ZN7ee207613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207613fooEv,_ZTv0_n12_N7ee207613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee20761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee20761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee20761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee20761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee20761[] = {
+ {&(_ZTV7ee20761[3]), 3,11},
+ {&(_tg__ZTV6dd0761__7ee20761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee20761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee20761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee20761[4]), 4,6},
+ {&(_ZTV7ee20761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20761[];
+extern VTBL_ENTRY _ZTV7ee20761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20761[];
+static VTBL_ENTRY alt_thunk_names862[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207613fooEv,_ZTv0_n12_N7ee207613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207613fooEv,_ZThn16_N7ee207613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20761 = { "ee20761", // class name
+ bases_ee20761, 4,
+ &(vtc_ee20761[0]), // expected_vtbl_contents
+ &(vtt_ee20761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20761),6, //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 ee30761 : virtual dd0761 {
+ int e;
+ virtual void foo(); // _ZN7ee307613fooEv
+ ~ee30761(); // tgen
+ ee30761(); // tgen
+};
+//SIG(1 ee30761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30761 ::foo(){vfunc_called(this, "_ZN7ee307613fooEv");}
+ee30761 ::~ee30761(){ note_dtor("ee30761", this);} // tgen
+ee30761 ::ee30761(){ note_ctor("ee30761", this);} // tgen
+
+static void Test_ee30761()
+{
+ extern Class_Descriptor cd_ee30761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30761, buf);
+ ee30761 *dp, &lv = *(dp=new (buf) ee30761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee30761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(32,20), "ee30761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), ABISELECT(16,8), "ee30761");
+ check_base_class_offset(lv, (dd0761*), ABISELECT(16,8), "ee30761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30761.e");
+ test_class_info(&lv, &cd_ee30761);
+ dp->~ee30761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30761(Test_ee30761, "ee30761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30761C1Ev();
+extern void _ZN7ee30761D1Ev();
+Name_Map name_map_ee30761[] = {
+ NSPAIR(_ZN7ee30761C1Ev),
+ NSPAIR(_ZN7ee30761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee30761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, ABISELECT(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 _ZTI7ee30761[];
+extern void _ZN7ee307613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307613fooEv,_ZTv0_n16_N7ee307613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307613fooEv,_ZThn8_N7ee307613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307613fooEv,_ZTv0_n12_N7ee307613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307613fooEv,_ZThn20_N7ee307613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30761[0]),
+ (VTBL_ENTRY)&_ZN7ee307613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307613fooEv,_ZTv0_n16_N7ee307613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307613fooEv,_ZTv0_n12_N7ee307613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee30761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee30761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee30761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee30761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee30761[] = {
+ {&(_ZTV7ee30761[4]), 4,18},
+ {&(_ZTV7ee30761[10]), 10,18},
+ {&(_ZTV7ee30761[16]), 16,18},
+ {&(_tg__ZTV6dd0761__7ee30761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee30761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee30761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee30761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30761[];
+extern VTBL_ENTRY _ZTV7ee30761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30761[];
+static VTBL_ENTRY alt_thunk_names863[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307613fooEv,_ZTv0_n12_N7ee307613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307613fooEv,_ZThn20_N7ee307613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307613fooEv,_ZTv0_n16_N7ee307613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307613fooEv,_ZThn8_N7ee307613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30761 = { "ee30761", // class name
+ bases_ee30761, 4,
+ &(vtc_ee30761[0]), // expected_vtbl_contents
+ &(vtt_ee30761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30761),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names863,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40761 : dd0761 {
+ int e;
+ virtual void bar(); // _ZN7ee407613barEv
+ ~ee40761(); // tgen
+ ee40761(); // tgen
+};
+//SIG(1 ee40761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40761 ::bar(){vfunc_called(this, "_ZN7ee407613barEv");}
+ee40761 ::~ee40761(){ note_dtor("ee40761", this);} // tgen
+ee40761 ::ee40761(){ note_ctor("ee40761", this);} // tgen
+
+static void Test_ee40761()
+{
+ extern Class_Descriptor cd_ee40761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40761, buf);
+ ee40761 *dp, &lv = *(dp=new (buf) ee40761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee40761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(24,16), "ee40761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), 0, "ee40761");
+ check_base_class_offset(lv, (dd0761*), 0, "ee40761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40761.e");
+ test_class_info(&lv, &cd_ee40761);
+ dp->~ee40761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40761(Test_ee40761, "ee40761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40761C1Ev();
+extern void _ZN7ee40761D1Ev();
+Name_Map name_map_ee40761[] = {
+ NSPAIR(_ZN7ee40761C1Ev),
+ NSPAIR(_ZN7ee40761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee40761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN7ee407613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee407613barEv,_ZTv0_n16_N7ee407613barEv)();
+extern void ABISELECT(_ZThn24_N7ee407613barEv,_ZThn16_N7ee407613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN7ee407613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407613barEv,_ZTv0_n16_N7ee407613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee40761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee40761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee40761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee40761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee40761[] = {
+ {&(_ZTV7ee40761[3]), 3,11},
+ {&(_tg__ZTV6dd0761__7ee40761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee40761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee40761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee40761[4]), 4,6},
+ {&(_ZTV7ee40761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40761[];
+extern VTBL_ENTRY _ZTV7ee40761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40761[];
+static VTBL_ENTRY alt_thunk_names864[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407613barEv,_ZTv0_n16_N7ee407613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407613barEv,_ZThn16_N7ee407613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40761 = { "ee40761", // class name
+ bases_ee40761, 4,
+ &(vtc_ee40761[0]), // expected_vtbl_contents
+ &(vtt_ee40761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40761),6, //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 ee50761 : virtual dd0761 {
+ int e;
+ virtual void bar(); // _ZN7ee507613barEv
+ ~ee50761(); // tgen
+ ee50761(); // tgen
+};
+//SIG(1 ee50761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50761 ::bar(){vfunc_called(this, "_ZN7ee507613barEv");}
+ee50761 ::~ee50761(){ note_dtor("ee50761", this);} // tgen
+ee50761 ::ee50761(){ note_ctor("ee50761", this);} // tgen
+
+static void Test_ee50761()
+{
+ extern Class_Descriptor cd_ee50761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50761, buf);
+ ee50761 *dp, &lv = *(dp=new (buf) ee50761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee50761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(32,20), "ee50761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), ABISELECT(16,8), "ee50761");
+ check_base_class_offset(lv, (dd0761*), ABISELECT(16,8), "ee50761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50761.e");
+ test_class_info(&lv, &cd_ee50761);
+ dp->~ee50761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50761(Test_ee50761, "ee50761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50761C1Ev();
+extern void _ZN7ee50761D1Ev();
+Name_Map name_map_ee50761[] = {
+ NSPAIR(_ZN7ee50761C1Ev),
+ NSPAIR(_ZN7ee50761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee50761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, ABISELECT(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 _ZTI7ee50761[];
+extern void _ZN7ee507613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507613barEv,_ZTv0_n20_N7ee507613barEv)();
+extern void ABISELECT(_ZThn16_N7ee507613barEv,_ZThn8_N7ee507613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507613barEv,_ZTv0_n16_N7ee507613barEv)();
+extern void ABISELECT(_ZThn32_N7ee507613barEv,_ZThn20_N7ee507613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50761[0]),
+ (VTBL_ENTRY)&_ZN7ee507613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507613barEv,_ZTv0_n20_N7ee507613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507613barEv,_ZTv0_n16_N7ee507613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee50761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee50761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee50761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee50761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee50761[] = {
+ {&(_ZTV7ee50761[4]), 4,18},
+ {&(_ZTV7ee50761[10]), 10,18},
+ {&(_ZTV7ee50761[16]), 16,18},
+ {&(_tg__ZTV6dd0761__7ee50761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee50761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee50761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee50761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50761[];
+extern VTBL_ENTRY _ZTV7ee50761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50761[];
+static VTBL_ENTRY alt_thunk_names865[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507613barEv,_ZTv0_n16_N7ee507613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507613barEv,_ZThn20_N7ee507613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507613barEv,_ZTv0_n20_N7ee507613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507613barEv,_ZThn8_N7ee507613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50761 = { "ee50761", // class name
+ bases_ee50761, 4,
+ &(vtc_ee50761[0]), // expected_vtbl_contents
+ &(vtt_ee50761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50761),7, //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 ee60761 : dd0761 {
+ int e;
+ virtual void foo(); // _ZN7ee607613fooEv
+ virtual void bar(); // _ZN7ee607613barEv
+ ~ee60761(); // tgen
+ ee60761(); // tgen
+};
+//SIG(1 ee60761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60761 ::foo(){vfunc_called(this, "_ZN7ee607613fooEv");}
+void ee60761 ::bar(){vfunc_called(this, "_ZN7ee607613barEv");}
+ee60761 ::~ee60761(){ note_dtor("ee60761", this);} // tgen
+ee60761 ::ee60761(){ note_ctor("ee60761", this);} // tgen
+
+static void Test_ee60761()
+{
+ extern Class_Descriptor cd_ee60761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60761, buf);
+ ee60761 *dp, &lv = *(dp=new (buf) ee60761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee60761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(24,16), "ee60761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), 0, "ee60761");
+ check_base_class_offset(lv, (dd0761*), 0, "ee60761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60761.e");
+ test_class_info(&lv, &cd_ee60761);
+ dp->~ee60761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60761(Test_ee60761, "ee60761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60761C1Ev();
+extern void _ZN7ee60761D1Ev();
+Name_Map name_map_ee60761[] = {
+ NSPAIR(_ZN7ee60761C1Ev),
+ NSPAIR(_ZN7ee60761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee60761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60761[];
+extern void _ZN7ee607613fooEv();
+extern void _ZN7ee607613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607613fooEv,_ZTv0_n12_N7ee607613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607613fooEv,_ZThn16_N7ee607613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607613barEv,_ZTv0_n16_N7ee607613barEv)();
+extern void ABISELECT(_ZThn24_N7ee607613barEv,_ZThn16_N7ee607613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60761[0]),
+ (VTBL_ENTRY)&_ZN7ee607613fooEv,
+ (VTBL_ENTRY)&_ZN7ee607613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607613fooEv,_ZTv0_n12_N7ee607613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607613barEv,_ZTv0_n16_N7ee607613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee60761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee60761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee60761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee60761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee60761[] = {
+ {&(_ZTV7ee60761[3]), 3,11},
+ {&(_tg__ZTV6dd0761__7ee60761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee60761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee60761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee60761[4]), 4,6},
+ {&(_ZTV7ee60761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60761[];
+extern VTBL_ENTRY _ZTV7ee60761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60761[];
+static VTBL_ENTRY alt_thunk_names866[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607613barEv,_ZTv0_n16_N7ee607613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607613barEv,_ZThn16_N7ee607613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607613fooEv,_ZTv0_n12_N7ee607613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607613fooEv,_ZThn16_N7ee607613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60761 = { "ee60761", // class name
+ bases_ee60761, 4,
+ &(vtc_ee60761[0]), // expected_vtbl_contents
+ &(vtt_ee60761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60761),6, //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 ee70761 : virtual dd0761 {
+ int e;
+ virtual void foo(); // _ZN7ee707613fooEv
+ virtual void bar(); // _ZN7ee707613barEv
+ ~ee70761(); // tgen
+ ee70761(); // tgen
+};
+//SIG(1 ee70761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70761 ::foo(){vfunc_called(this, "_ZN7ee707613fooEv");}
+void ee70761 ::bar(){vfunc_called(this, "_ZN7ee707613barEv");}
+ee70761 ::~ee70761(){ note_dtor("ee70761", this);} // tgen
+ee70761 ::ee70761(){ note_ctor("ee70761", this);} // tgen
+
+static void Test_ee70761()
+{
+ extern Class_Descriptor cd_ee70761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70761, buf);
+ ee70761 *dp, &lv = *(dp=new (buf) ee70761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee70761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd0761*), ABISELECT(32,20), "ee70761");
+ check_base_class_offset(lv, (cc761*)(dd0761*), ABISELECT(16,8), "ee70761");
+ check_base_class_offset(lv, (dd0761*), ABISELECT(16,8), "ee70761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70761.e");
+ test_class_info(&lv, &cd_ee70761);
+ dp->~ee70761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70761(Test_ee70761, "ee70761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70761C1Ev();
+extern void _ZN7ee70761D1Ev();
+Name_Map name_map_ee70761[] = {
+ NSPAIR(_ZN7ee70761C1Ev),
+ NSPAIR(_ZN7ee70761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd0761;
+extern VTBL_ENTRY _ZTI6dd0761[];
+extern VTBL_ENTRY _ZTV6dd0761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0761[];
+static Base_Class bases_ee70761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0761, ABISELECT(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 _ZTI7ee70761[];
+extern void _ZN7ee707613fooEv();
+extern void _ZN7ee707613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707613fooEv,_ZTv0_n16_N7ee707613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707613fooEv,_ZThn8_N7ee707613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707613barEv,_ZTv0_n20_N7ee707613barEv)();
+extern void ABISELECT(_ZThn16_N7ee707613barEv,_ZThn8_N7ee707613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707613fooEv,_ZTv0_n12_N7ee707613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707613fooEv,_ZThn20_N7ee707613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707613barEv,_ZTv0_n16_N7ee707613barEv)();
+extern void ABISELECT(_ZThn32_N7ee707613barEv,_ZThn20_N7ee707613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70761[0]),
+ (VTBL_ENTRY)&_ZN7ee707613fooEv,
+ (VTBL_ENTRY)&_ZN7ee707613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707613fooEv,_ZTv0_n16_N7ee707613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707613barEv,_ZTv0_n20_N7ee707613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707613fooEv,_ZTv0_n12_N7ee707613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707613barEv,_ZTv0_n16_N7ee707613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd0761__7ee70761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd0761__7ee70761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd0761__7ee70761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd0761__7ee70761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee70761[] = {
+ {&(_ZTV7ee70761[4]), 4,19},
+ {&(_ZTV7ee70761[11]), 11,19},
+ {&(_ZTV7ee70761[17]), 17,19},
+ {&(_tg__ZTV6dd0761__7ee70761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd0761__7ee70761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd0761__7ee70761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd0761__7ee70761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70761[];
+extern VTBL_ENTRY _ZTV7ee70761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70761[];
+static VTBL_ENTRY alt_thunk_names867[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707613barEv,_ZTv0_n16_N7ee707613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707613barEv,_ZThn20_N7ee707613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707613fooEv,_ZTv0_n12_N7ee707613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707613fooEv,_ZThn20_N7ee707613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707613barEv,_ZTv0_n20_N7ee707613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707613barEv,_ZThn8_N7ee707613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707613fooEv,_ZTv0_n16_N7ee707613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707613fooEv,_ZThn8_N7ee707613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70761 = { "ee70761", // class name
+ bases_ee70761, 4,
+ &(vtc_ee70761[0]), // expected_vtbl_contents
+ &(vtt_ee70761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70761),7, //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 dd1761 : virtual cc761 {
+ int d;
+ ~dd1761(); // tgen
+ dd1761(); // tgen
+};
+//SIG(-1 dd1761) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1761 ::~dd1761(){ note_dtor("dd1761", this);} // tgen
+dd1761 ::dd1761(){ note_ctor("dd1761", this);} // tgen
+
+static void Test_dd1761()
+{
+ extern Class_Descriptor cd_dd1761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1761, buf);
+ dd1761 *dp, &lv = *(dp=new (buf) dd1761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd1761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,16), "dd1761");
+ check_base_class_offset(lv, (cc761*), ABISELECT(16,8), "dd1761");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1761.d");
+ test_class_info(&lv, &cd_dd1761);
+ dp->~dd1761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1761(Test_dd1761, "dd1761", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1761C1Ev();
+extern void _ZN6dd1761D1Ev();
+Name_Map name_map_dd1761[] = {
+ NSPAIR(_ZN6dd1761C1Ev),
+ NSPAIR(_ZN6dd1761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd1761[] = {
+ // 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_bb61, 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_cc761, 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 _ZTI6dd1761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd1761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd1761[] = {
+ {&(_ZTV6dd1761[4]), 4,17},
+ {&(_ZTV6dd1761[9]), 9,17},
+ {&(_ZTV6dd1761[15]), 15,17},
+ {&(_tg__ZTV5cc761__6dd1761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd1761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static VTBL_ENTRY alt_thunk_names868[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1761 = { "dd1761", // class name
+ bases_dd1761, 3,
+ &(vtc_dd1761[0]), // expected_vtbl_contents
+ &(vtt_dd1761[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1761),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names868,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01761 : dd1761 {
+ int e;
+ ~ee01761(); // tgen
+ ee01761(); // tgen
+};
+//SIG(1 ee01761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01761 ::~ee01761(){ note_dtor("ee01761", this);} // tgen
+ee01761 ::ee01761(){ note_ctor("ee01761", this);} // tgen
+
+static void Test_ee01761()
+{
+ extern Class_Descriptor cd_ee01761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01761, buf);
+ ee01761 *dp, &lv = *(dp=new (buf) ee01761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee01761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee01761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(16,12), "ee01761");
+ check_base_class_offset(lv, (dd1761*), 0, "ee01761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01761.e");
+ test_class_info(&lv, &cd_ee01761);
+ dp->~ee01761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01761(Test_ee01761, "ee01761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01761C1Ev();
+extern void _ZN7ee01761D1Ev();
+Name_Map name_map_ee01761[] = {
+ NSPAIR(_ZN7ee01761C1Ev),
+ NSPAIR(_ZN7ee01761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee01761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01761[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee01761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee01761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee01761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee01761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee01761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee01761[] = {
+ {&(_ZTV7ee01761[4]), 4,17},
+ {&(_tg__ZTV6dd1761__7ee01761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee01761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee01761[4]), 4,6},
+ {&(_ZTV7ee01761[9]), 9,17},
+ {&(_ZTV7ee01761[15]), 15,17},
+ {&(_tg__ZTV5cc761__7ee01761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee01761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01761[];
+extern VTBL_ENTRY _ZTV7ee01761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01761[];
+static VTBL_ENTRY alt_thunk_names869[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01761 = { "ee01761", // class name
+ bases_ee01761, 4,
+ &(vtc_ee01761[0]), // expected_vtbl_contents
+ &(vtt_ee01761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01761),8, //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 ee11761 : virtual dd1761 {
+ int e;
+ ~ee11761(); // tgen
+ ee11761(); // tgen
+};
+//SIG(1 ee11761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11761 ::~ee11761(){ note_dtor("ee11761", this);} // tgen
+ee11761 ::ee11761(){ note_ctor("ee11761", this);} // tgen
+
+static void Test_ee11761()
+{
+ extern Class_Descriptor cd_ee11761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11761, buf);
+ ee11761 *dp, &lv = *(dp=new (buf) ee11761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee11761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee11761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(32,16), "ee11761");
+ check_base_class_offset(lv, (dd1761*), ABISELECT(16,8), "ee11761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11761.e");
+ test_class_info(&lv, &cd_ee11761);
+ dp->~ee11761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11761(Test_ee11761, "ee11761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11761C1Ev();
+extern void _ZN7ee11761D1Ev();
+Name_Map name_map_ee11761[] = {
+ NSPAIR(_ZN7ee11761C1Ev),
+ NSPAIR(_ZN7ee11761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee11761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, ABISELECT(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 _ZTI7ee11761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11761[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11761[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee11761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee11761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee11761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee11761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee11761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee11761[] = {
+ {&(_ZTV7ee11761[5]), 5,22},
+ {&(_ZTV7ee11761[9]), 9,22},
+ {&(_ZTV7ee11761[14]), 14,22},
+ {&(_ZTV7ee11761[20]), 20,22},
+ {&(_tg__ZTV6dd1761__7ee11761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee11761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee11761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee11761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee11761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11761[];
+extern VTBL_ENTRY _ZTV7ee11761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11761[];
+static VTBL_ENTRY alt_thunk_names870[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11761 = { "ee11761", // class name
+ bases_ee11761, 4,
+ &(vtc_ee11761[0]), // expected_vtbl_contents
+ &(vtt_ee11761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11761),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11761),9, //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 ee21761 : dd1761 {
+ int e;
+ virtual void foo(); // _ZN7ee217613fooEv
+ ~ee21761(); // tgen
+ ee21761(); // tgen
+};
+//SIG(1 ee21761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21761 ::foo(){vfunc_called(this, "_ZN7ee217613fooEv");}
+ee21761 ::~ee21761(){ note_dtor("ee21761", this);} // tgen
+ee21761 ::ee21761(){ note_ctor("ee21761", this);} // tgen
+
+static void Test_ee21761()
+{
+ extern Class_Descriptor cd_ee21761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21761, buf);
+ ee21761 *dp, &lv = *(dp=new (buf) ee21761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee21761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee21761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(16,12), "ee21761");
+ check_base_class_offset(lv, (dd1761*), 0, "ee21761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21761.e");
+ test_class_info(&lv, &cd_ee21761);
+ dp->~ee21761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21761(Test_ee21761, "ee21761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21761C1Ev();
+extern void _ZN7ee21761D1Ev();
+Name_Map name_map_ee21761[] = {
+ NSPAIR(_ZN7ee21761C1Ev),
+ NSPAIR(_ZN7ee21761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee21761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21761[];
+extern void _ZN7ee217613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217613fooEv,_ZTv0_n16_N7ee217613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217613fooEv,_ZThn12_N7ee217613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217613fooEv,_ZTv0_n12_N7ee217613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217613fooEv,_ZThn20_N7ee217613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21761[0]),
+ (VTBL_ENTRY)&_ZN7ee217613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217613fooEv,_ZTv0_n16_N7ee217613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217613fooEv,_ZTv0_n12_N7ee217613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee21761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee21761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee21761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee21761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee21761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee21761[] = {
+ {&(_ZTV7ee21761[4]), 4,18},
+ {&(_tg__ZTV6dd1761__7ee21761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee21761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee21761[4]), 4,6},
+ {&(_ZTV7ee21761[10]), 10,18},
+ {&(_ZTV7ee21761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee21761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee21761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21761[];
+extern VTBL_ENTRY _ZTV7ee21761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21761[];
+static VTBL_ENTRY alt_thunk_names871[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217613fooEv,_ZTv0_n12_N7ee217613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217613fooEv,_ZThn20_N7ee217613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217613fooEv,_ZTv0_n16_N7ee217613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217613fooEv,_ZThn12_N7ee217613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21761 = { "ee21761", // class name
+ bases_ee21761, 4,
+ &(vtc_ee21761[0]), // expected_vtbl_contents
+ &(vtt_ee21761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names871,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31761 : virtual dd1761 {
+ int e;
+ virtual void foo(); // _ZN7ee317613fooEv
+ ~ee31761(); // tgen
+ ee31761(); // tgen
+};
+//SIG(1 ee31761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31761 ::foo(){vfunc_called(this, "_ZN7ee317613fooEv");}
+ee31761 ::~ee31761(){ note_dtor("ee31761", this);} // tgen
+ee31761 ::ee31761(){ note_ctor("ee31761", this);} // tgen
+
+static void Test_ee31761()
+{
+ extern Class_Descriptor cd_ee31761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31761, buf);
+ ee31761 *dp, &lv = *(dp=new (buf) ee31761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee31761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee31761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(32,16), "ee31761");
+ check_base_class_offset(lv, (dd1761*), ABISELECT(16,8), "ee31761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31761.e");
+ test_class_info(&lv, &cd_ee31761);
+ dp->~ee31761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31761(Test_ee31761, "ee31761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31761C1Ev();
+extern void _ZN7ee31761D1Ev();
+Name_Map name_map_ee31761[] = {
+ NSPAIR(_ZN7ee31761C1Ev),
+ NSPAIR(_ZN7ee31761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee31761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 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 _ZTI7ee31761[];
+extern void _ZN7ee317613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317613fooEv,_ZTv0_n16_N7ee317613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317613fooEv,_ZThn16_N7ee317613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317613fooEv,_ZTv0_n12_N7ee317613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317613fooEv,_ZThn24_N7ee317613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31761[0]),
+ (VTBL_ENTRY)&_ZN7ee317613fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31761[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317613fooEv,_ZTv0_n16_N7ee317613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317613fooEv,_ZTv0_n12_N7ee317613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee31761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee31761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee31761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee31761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee31761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee31761[] = {
+ {&(_ZTV7ee31761[5]), 5,23},
+ {&(_ZTV7ee31761[10]), 10,23},
+ {&(_ZTV7ee31761[15]), 15,23},
+ {&(_ZTV7ee31761[21]), 21,23},
+ {&(_tg__ZTV6dd1761__7ee31761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee31761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee31761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee31761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee31761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31761[];
+extern VTBL_ENTRY _ZTV7ee31761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31761[];
+static VTBL_ENTRY alt_thunk_names872[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317613fooEv,_ZTv0_n12_N7ee317613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317613fooEv,_ZThn24_N7ee317613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317613fooEv,_ZTv0_n16_N7ee317613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317613fooEv,_ZThn16_N7ee317613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31761 = { "ee31761", // class name
+ bases_ee31761, 4,
+ &(vtc_ee31761[0]), // expected_vtbl_contents
+ &(vtt_ee31761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31761),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names872,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41761 : dd1761 {
+ int e;
+ virtual void bar(); // _ZN7ee417613barEv
+ ~ee41761(); // tgen
+ ee41761(); // tgen
+};
+//SIG(1 ee41761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41761 ::bar(){vfunc_called(this, "_ZN7ee417613barEv");}
+ee41761 ::~ee41761(){ note_dtor("ee41761", this);} // tgen
+ee41761 ::ee41761(){ note_ctor("ee41761", this);} // tgen
+
+static void Test_ee41761()
+{
+ extern Class_Descriptor cd_ee41761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41761, buf);
+ ee41761 *dp, &lv = *(dp=new (buf) ee41761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee41761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee41761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(16,12), "ee41761");
+ check_base_class_offset(lv, (dd1761*), 0, "ee41761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41761.e");
+ test_class_info(&lv, &cd_ee41761);
+ dp->~ee41761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41761(Test_ee41761, "ee41761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41761C1Ev();
+extern void _ZN7ee41761D1Ev();
+Name_Map name_map_ee41761[] = {
+ NSPAIR(_ZN7ee41761C1Ev),
+ NSPAIR(_ZN7ee41761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee41761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41761[];
+extern void _ZN7ee417613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417613barEv,_ZTv0_n20_N7ee417613barEv)();
+extern void ABISELECT(_ZThn16_N7ee417613barEv,_ZThn12_N7ee417613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417613barEv,_ZTv0_n16_N7ee417613barEv)();
+extern void ABISELECT(_ZThn32_N7ee417613barEv,_ZThn20_N7ee417613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41761[0]),
+ (VTBL_ENTRY)&_ZN7ee417613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417613barEv,_ZTv0_n20_N7ee417613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417613barEv,_ZTv0_n16_N7ee417613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee41761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee41761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee41761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee41761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee41761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee41761[] = {
+ {&(_ZTV7ee41761[4]), 4,18},
+ {&(_tg__ZTV6dd1761__7ee41761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee41761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee41761[4]), 4,6},
+ {&(_ZTV7ee41761[10]), 10,18},
+ {&(_ZTV7ee41761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee41761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee41761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41761[];
+extern VTBL_ENTRY _ZTV7ee41761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41761[];
+static VTBL_ENTRY alt_thunk_names873[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417613barEv,_ZTv0_n16_N7ee417613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417613barEv,_ZThn20_N7ee417613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417613barEv,_ZTv0_n20_N7ee417613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417613barEv,_ZThn12_N7ee417613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41761 = { "ee41761", // class name
+ bases_ee41761, 4,
+ &(vtc_ee41761[0]), // expected_vtbl_contents
+ &(vtt_ee41761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names873,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51761 : virtual dd1761 {
+ int e;
+ virtual void bar(); // _ZN7ee517613barEv
+ ~ee51761(); // tgen
+ ee51761(); // tgen
+};
+//SIG(1 ee51761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51761 ::bar(){vfunc_called(this, "_ZN7ee517613barEv");}
+ee51761 ::~ee51761(){ note_dtor("ee51761", this);} // tgen
+ee51761 ::ee51761(){ note_ctor("ee51761", this);} // tgen
+
+static void Test_ee51761()
+{
+ extern Class_Descriptor cd_ee51761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51761, buf);
+ ee51761 *dp, &lv = *(dp=new (buf) ee51761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee51761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee51761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(32,16), "ee51761");
+ check_base_class_offset(lv, (dd1761*), ABISELECT(16,8), "ee51761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51761.e");
+ test_class_info(&lv, &cd_ee51761);
+ dp->~ee51761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51761(Test_ee51761, "ee51761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51761C1Ev();
+extern void _ZN7ee51761D1Ev();
+Name_Map name_map_ee51761[] = {
+ NSPAIR(_ZN7ee51761C1Ev),
+ NSPAIR(_ZN7ee51761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee51761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 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 _ZTI7ee51761[];
+extern void _ZN7ee517613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517613barEv,_ZTv0_n20_N7ee517613barEv)();
+extern void ABISELECT(_ZThn32_N7ee517613barEv,_ZThn16_N7ee517613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517613barEv,_ZTv0_n16_N7ee517613barEv)();
+extern void ABISELECT(_ZThn48_N7ee517613barEv,_ZThn24_N7ee517613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51761[0]),
+ (VTBL_ENTRY)&_ZN7ee517613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51761[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517613barEv,_ZTv0_n20_N7ee517613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517613barEv,_ZTv0_n16_N7ee517613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee51761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee51761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee51761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee51761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee51761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee51761[] = {
+ {&(_ZTV7ee51761[5]), 5,23},
+ {&(_ZTV7ee51761[10]), 10,23},
+ {&(_ZTV7ee51761[15]), 15,23},
+ {&(_ZTV7ee51761[21]), 21,23},
+ {&(_tg__ZTV6dd1761__7ee51761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee51761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee51761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee51761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee51761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51761[];
+extern VTBL_ENTRY _ZTV7ee51761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51761[];
+static VTBL_ENTRY alt_thunk_names874[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517613barEv,_ZTv0_n16_N7ee517613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517613barEv,_ZThn24_N7ee517613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517613barEv,_ZTv0_n20_N7ee517613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517613barEv,_ZThn16_N7ee517613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51761 = { "ee51761", // class name
+ bases_ee51761, 4,
+ &(vtc_ee51761[0]), // expected_vtbl_contents
+ &(vtt_ee51761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51761),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names874,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61761 : dd1761 {
+ int e;
+ virtual void foo(); // _ZN7ee617613fooEv
+ virtual void bar(); // _ZN7ee617613barEv
+ ~ee61761(); // tgen
+ ee61761(); // tgen
+};
+//SIG(1 ee61761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61761 ::foo(){vfunc_called(this, "_ZN7ee617613fooEv");}
+void ee61761 ::bar(){vfunc_called(this, "_ZN7ee617613barEv");}
+ee61761 ::~ee61761(){ note_dtor("ee61761", this);} // tgen
+ee61761 ::ee61761(){ note_ctor("ee61761", this);} // tgen
+
+static void Test_ee61761()
+{
+ extern Class_Descriptor cd_ee61761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61761, buf);
+ ee61761 *dp, &lv = *(dp=new (buf) ee61761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee61761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee61761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(16,12), "ee61761");
+ check_base_class_offset(lv, (dd1761*), 0, "ee61761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61761.e");
+ test_class_info(&lv, &cd_ee61761);
+ dp->~ee61761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61761(Test_ee61761, "ee61761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61761C1Ev();
+extern void _ZN7ee61761D1Ev();
+Name_Map name_map_ee61761[] = {
+ NSPAIR(_ZN7ee61761C1Ev),
+ NSPAIR(_ZN7ee61761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee61761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61761[];
+extern void _ZN7ee617613fooEv();
+extern void _ZN7ee617613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617613fooEv,_ZTv0_n16_N7ee617613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617613fooEv,_ZThn12_N7ee617613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617613barEv,_ZTv0_n20_N7ee617613barEv)();
+extern void ABISELECT(_ZThn16_N7ee617613barEv,_ZThn12_N7ee617613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617613fooEv,_ZTv0_n12_N7ee617613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617613fooEv,_ZThn20_N7ee617613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617613barEv,_ZTv0_n16_N7ee617613barEv)();
+extern void ABISELECT(_ZThn32_N7ee617613barEv,_ZThn20_N7ee617613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61761[0]),
+ (VTBL_ENTRY)&_ZN7ee617613fooEv,
+ (VTBL_ENTRY)&_ZN7ee617613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617613fooEv,_ZTv0_n16_N7ee617613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617613barEv,_ZTv0_n20_N7ee617613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617613fooEv,_ZTv0_n12_N7ee617613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617613barEv,_ZTv0_n16_N7ee617613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee61761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee61761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee61761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee61761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee61761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee61761[] = {
+ {&(_ZTV7ee61761[4]), 4,19},
+ {&(_tg__ZTV6dd1761__7ee61761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee61761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee61761[4]), 4,6},
+ {&(_ZTV7ee61761[11]), 11,19},
+ {&(_ZTV7ee61761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee61761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee61761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61761[];
+extern VTBL_ENTRY _ZTV7ee61761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61761[];
+static VTBL_ENTRY alt_thunk_names875[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617613barEv,_ZTv0_n16_N7ee617613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617613barEv,_ZThn20_N7ee617613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617613fooEv,_ZTv0_n12_N7ee617613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617613fooEv,_ZThn20_N7ee617613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617613barEv,_ZTv0_n20_N7ee617613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617613barEv,_ZThn12_N7ee617613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617613fooEv,_ZTv0_n16_N7ee617613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617613fooEv,_ZThn12_N7ee617613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61761 = { "ee61761", // class name
+ bases_ee61761, 4,
+ &(vtc_ee61761[0]), // expected_vtbl_contents
+ &(vtt_ee61761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names875,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71761 : virtual dd1761 {
+ int e;
+ virtual void foo(); // _ZN7ee717613fooEv
+ virtual void bar(); // _ZN7ee717613barEv
+ ~ee71761(); // tgen
+ ee71761(); // tgen
+};
+//SIG(1 ee71761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71761 ::foo(){vfunc_called(this, "_ZN7ee717613fooEv");}
+void ee71761 ::bar(){vfunc_called(this, "_ZN7ee717613barEv");}
+ee71761 ::~ee71761(){ note_dtor("ee71761", this);} // tgen
+ee71761 ::ee71761(){ note_ctor("ee71761", this);} // tgen
+
+static void Test_ee71761()
+{
+ extern Class_Descriptor cd_ee71761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71761, buf);
+ ee71761 *dp, &lv = *(dp=new (buf) ee71761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee71761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee71761");
+ check_base_class_offset(lv, (cc761*)(dd1761*), ABISELECT(32,16), "ee71761");
+ check_base_class_offset(lv, (dd1761*), ABISELECT(16,8), "ee71761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71761.e");
+ test_class_info(&lv, &cd_ee71761);
+ dp->~ee71761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71761(Test_ee71761, "ee71761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71761C1Ev();
+extern void _ZN7ee71761D1Ev();
+Name_Map name_map_ee71761[] = {
+ NSPAIR(_ZN7ee71761C1Ev),
+ NSPAIR(_ZN7ee71761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd1761;
+extern VTBL_ENTRY _ZTI6dd1761[];
+extern VTBL_ENTRY _ZTV6dd1761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1761[];
+static Base_Class bases_ee71761[] = {
+ // 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_bb61, 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_cc761, 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_dd1761, 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 _ZTI7ee71761[];
+extern void _ZN7ee717613fooEv();
+extern void _ZN7ee717613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717613fooEv,_ZTv0_n16_N7ee717613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717613fooEv,_ZThn16_N7ee717613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717613barEv,_ZTv0_n20_N7ee717613barEv)();
+extern void ABISELECT(_ZThn32_N7ee717613barEv,_ZThn16_N7ee717613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717613fooEv,_ZTv0_n12_N7ee717613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717613fooEv,_ZThn24_N7ee717613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717613barEv,_ZTv0_n16_N7ee717613barEv)();
+extern void ABISELECT(_ZThn48_N7ee717613barEv,_ZThn24_N7ee717613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71761[0]),
+ (VTBL_ENTRY)&_ZN7ee717613fooEv,
+ (VTBL_ENTRY)&_ZN7ee717613barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71761[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717613fooEv,_ZTv0_n16_N7ee717613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717613barEv,_ZTv0_n20_N7ee717613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717613fooEv,_ZTv0_n12_N7ee717613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717613barEv,_ZTv0_n16_N7ee717613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71761[];
+static VTBL_ENTRY _tg__ZTV6dd1761__7ee71761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd1761__7ee71761[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd1761__7ee71761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee71761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee71761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee71761[] = {
+ {&(_ZTV7ee71761[5]), 5,24},
+ {&(_ZTV7ee71761[11]), 11,24},
+ {&(_ZTV7ee71761[16]), 16,24},
+ {&(_ZTV7ee71761[22]), 22,24},
+ {&(_tg__ZTV6dd1761__7ee71761[4]), 4,4},
+ {&(_tg__ZTV5cc761__6dd1761__7ee71761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd1761__7ee71761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee71761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee71761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71761[];
+extern VTBL_ENTRY _ZTV7ee71761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71761[];
+static VTBL_ENTRY alt_thunk_names876[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717613barEv,_ZTv0_n16_N7ee717613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717613barEv,_ZThn24_N7ee717613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717613fooEv,_ZTv0_n12_N7ee717613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717613fooEv,_ZThn24_N7ee717613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717613barEv,_ZTv0_n20_N7ee717613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717613barEv,_ZThn16_N7ee717613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717613fooEv,_ZTv0_n16_N7ee717613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717613fooEv,_ZThn16_N7ee717613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71761 = { "ee71761", // class name
+ bases_ee71761, 4,
+ &(vtc_ee71761[0]), // expected_vtbl_contents
+ &(vtt_ee71761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71761),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names876,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2761 : cc761 {
+ int d;
+ virtual void foo(); // _ZN6dd27613fooEv
+ ~dd2761(); // tgen
+ dd2761(); // tgen
+};
+//SIG(-1 dd2761) C1{ BC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2761 ::foo(){vfunc_called(this, "_ZN6dd27613fooEv");}
+dd2761 ::~dd2761(){ note_dtor("dd2761", this);} // tgen
+dd2761 ::dd2761(){ note_ctor("dd2761", this);} // tgen
+
+static void Test_dd2761()
+{
+ extern Class_Descriptor cd_dd2761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2761, buf);
+ dd2761 *dp, &lv = *(dp=new (buf) dd2761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd2761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(16,12), "dd2761");
+ check_base_class_offset(lv, (cc761*), 0, "dd2761");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2761.d");
+ test_class_info(&lv, &cd_dd2761);
+ dp->~dd2761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2761(Test_dd2761, "dd2761", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2761C1Ev();
+extern void _ZN6dd2761D1Ev();
+Name_Map name_map_dd2761[] = {
+ NSPAIR(_ZN6dd2761C1Ev),
+ NSPAIR(_ZN6dd2761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd2761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd2761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd2761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd2761[] = {
+ {&(_ZTV6dd2761[3]), 3,11},
+ {&(_tg__ZTV5cc761__6dd2761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd2761[4]), 4,6},
+ {&(_ZTV6dd2761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static VTBL_ENTRY alt_thunk_names877[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2761 = { "dd2761", // class name
+ bases_dd2761, 3,
+ &(vtc_dd2761[0]), // expected_vtbl_contents
+ &(vtt_dd2761[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2761),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names877,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02761 : dd2761 {
+ int e;
+ ~ee02761(); // tgen
+ ee02761(); // tgen
+};
+//SIG(1 ee02761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02761 ::~ee02761(){ note_dtor("ee02761", this);} // tgen
+ee02761 ::ee02761(){ note_ctor("ee02761", this);} // tgen
+
+static void Test_ee02761()
+{
+ extern Class_Descriptor cd_ee02761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02761, buf);
+ ee02761 *dp, &lv = *(dp=new (buf) ee02761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee02761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(24,16), "ee02761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), 0, "ee02761");
+ check_base_class_offset(lv, (dd2761*), 0, "ee02761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02761.e");
+ test_class_info(&lv, &cd_ee02761);
+ dp->~ee02761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02761(Test_ee02761, "ee02761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02761C1Ev();
+extern void _ZN7ee02761D1Ev();
+Name_Map name_map_ee02761[] = {
+ NSPAIR(_ZN7ee02761C1Ev),
+ NSPAIR(_ZN7ee02761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee02761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee02761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee02761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee02761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee02761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee02761[] = {
+ {&(_ZTV7ee02761[3]), 3,11},
+ {&(_tg__ZTV6dd2761__7ee02761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee02761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee02761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee02761[4]), 4,6},
+ {&(_ZTV7ee02761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02761[];
+extern VTBL_ENTRY _ZTV7ee02761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02761[];
+static VTBL_ENTRY alt_thunk_names878[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02761 = { "ee02761", // class name
+ bases_ee02761, 4,
+ &(vtc_ee02761[0]), // expected_vtbl_contents
+ &(vtt_ee02761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02761),6, //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 ee12761 : virtual dd2761 {
+ int e;
+ ~ee12761(); // tgen
+ ee12761(); // tgen
+};
+//SIG(1 ee12761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12761 ::~ee12761(){ note_dtor("ee12761", this);} // tgen
+ee12761 ::ee12761(){ note_ctor("ee12761", this);} // tgen
+
+static void Test_ee12761()
+{
+ extern Class_Descriptor cd_ee12761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12761, buf);
+ ee12761 *dp, &lv = *(dp=new (buf) ee12761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee12761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(32,20), "ee12761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), ABISELECT(16,8), "ee12761");
+ check_base_class_offset(lv, (dd2761*), ABISELECT(16,8), "ee12761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12761.e");
+ test_class_info(&lv, &cd_ee12761);
+ dp->~ee12761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12761(Test_ee12761, "ee12761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12761C1Ev();
+extern void _ZN7ee12761D1Ev();
+Name_Map name_map_ee12761[] = {
+ NSPAIR(_ZN7ee12761C1Ev),
+ NSPAIR(_ZN7ee12761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee12761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, 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 _ZTI7ee12761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12761[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee12761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee12761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee12761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee12761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee12761[] = {
+ {&(_ZTV7ee12761[4]), 4,17},
+ {&(_ZTV7ee12761[9]), 9,17},
+ {&(_ZTV7ee12761[15]), 15,17},
+ {&(_tg__ZTV6dd2761__7ee12761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee12761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee12761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee12761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12761[];
+extern VTBL_ENTRY _ZTV7ee12761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12761[];
+static VTBL_ENTRY alt_thunk_names879[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12761 = { "ee12761", // class name
+ bases_ee12761, 4,
+ &(vtc_ee12761[0]), // expected_vtbl_contents
+ &(vtt_ee12761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12761),7, //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 ee22761 : dd2761 {
+ int e;
+ virtual void foo(); // _ZN7ee227613fooEv
+ ~ee22761(); // tgen
+ ee22761(); // tgen
+};
+//SIG(1 ee22761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22761 ::foo(){vfunc_called(this, "_ZN7ee227613fooEv");}
+ee22761 ::~ee22761(){ note_dtor("ee22761", this);} // tgen
+ee22761 ::ee22761(){ note_ctor("ee22761", this);} // tgen
+
+static void Test_ee22761()
+{
+ extern Class_Descriptor cd_ee22761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22761, buf);
+ ee22761 *dp, &lv = *(dp=new (buf) ee22761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee22761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(24,16), "ee22761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), 0, "ee22761");
+ check_base_class_offset(lv, (dd2761*), 0, "ee22761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22761.e");
+ test_class_info(&lv, &cd_ee22761);
+ dp->~ee22761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22761(Test_ee22761, "ee22761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22761C1Ev();
+extern void _ZN7ee22761D1Ev();
+Name_Map name_map_ee22761[] = {
+ NSPAIR(_ZN7ee22761C1Ev),
+ NSPAIR(_ZN7ee22761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee22761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22761[];
+extern void _ZN7ee227613fooEv();
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227613fooEv,_ZTv0_n12_N7ee227613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227613fooEv,_ZThn16_N7ee227613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22761[0]),
+ (VTBL_ENTRY)&_ZN7ee227613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227613fooEv,_ZTv0_n12_N7ee227613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee22761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee22761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee22761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee22761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee22761[] = {
+ {&(_ZTV7ee22761[3]), 3,11},
+ {&(_tg__ZTV6dd2761__7ee22761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee22761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee22761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee22761[4]), 4,6},
+ {&(_ZTV7ee22761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22761[];
+extern VTBL_ENTRY _ZTV7ee22761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22761[];
+static VTBL_ENTRY alt_thunk_names880[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227613fooEv,_ZTv0_n12_N7ee227613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227613fooEv,_ZThn16_N7ee227613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22761 = { "ee22761", // class name
+ bases_ee22761, 4,
+ &(vtc_ee22761[0]), // expected_vtbl_contents
+ &(vtt_ee22761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22761),6, //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 ee32761 : virtual dd2761 {
+ int e;
+ virtual void foo(); // _ZN7ee327613fooEv
+ ~ee32761(); // tgen
+ ee32761(); // tgen
+};
+//SIG(1 ee32761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32761 ::foo(){vfunc_called(this, "_ZN7ee327613fooEv");}
+ee32761 ::~ee32761(){ note_dtor("ee32761", this);} // tgen
+ee32761 ::ee32761(){ note_ctor("ee32761", this);} // tgen
+
+static void Test_ee32761()
+{
+ extern Class_Descriptor cd_ee32761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32761, buf);
+ ee32761 *dp, &lv = *(dp=new (buf) ee32761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee32761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(32,20), "ee32761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), ABISELECT(16,8), "ee32761");
+ check_base_class_offset(lv, (dd2761*), ABISELECT(16,8), "ee32761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32761.e");
+ test_class_info(&lv, &cd_ee32761);
+ dp->~ee32761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32761(Test_ee32761, "ee32761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32761C1Ev();
+extern void _ZN7ee32761D1Ev();
+Name_Map name_map_ee32761[] = {
+ NSPAIR(_ZN7ee32761C1Ev),
+ NSPAIR(_ZN7ee32761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee32761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, ABISELECT(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 _ZTI7ee32761[];
+extern void _ZN7ee327613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327613fooEv,_ZTv0_n16_N7ee327613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327613fooEv,_ZThn8_N7ee327613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327613fooEv,_ZTv0_n12_N7ee327613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327613fooEv,_ZThn20_N7ee327613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32761[0]),
+ (VTBL_ENTRY)&_ZN7ee327613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327613fooEv,_ZTv0_n16_N7ee327613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327613fooEv,_ZTv0_n12_N7ee327613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee32761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee32761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee32761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee32761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee32761[] = {
+ {&(_ZTV7ee32761[4]), 4,18},
+ {&(_ZTV7ee32761[10]), 10,18},
+ {&(_ZTV7ee32761[16]), 16,18},
+ {&(_tg__ZTV6dd2761__7ee32761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee32761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee32761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee32761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32761[];
+extern VTBL_ENTRY _ZTV7ee32761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32761[];
+static VTBL_ENTRY alt_thunk_names881[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327613fooEv,_ZTv0_n12_N7ee327613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327613fooEv,_ZThn20_N7ee327613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327613fooEv,_ZTv0_n16_N7ee327613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327613fooEv,_ZThn8_N7ee327613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32761 = { "ee32761", // class name
+ bases_ee32761, 4,
+ &(vtc_ee32761[0]), // expected_vtbl_contents
+ &(vtt_ee32761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32761),7, //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 ee42761 : dd2761 {
+ int e;
+ virtual void bar(); // _ZN7ee427613barEv
+ ~ee42761(); // tgen
+ ee42761(); // tgen
+};
+//SIG(1 ee42761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42761 ::bar(){vfunc_called(this, "_ZN7ee427613barEv");}
+ee42761 ::~ee42761(){ note_dtor("ee42761", this);} // tgen
+ee42761 ::ee42761(){ note_ctor("ee42761", this);} // tgen
+
+static void Test_ee42761()
+{
+ extern Class_Descriptor cd_ee42761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42761, buf);
+ ee42761 *dp, &lv = *(dp=new (buf) ee42761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee42761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(24,16), "ee42761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), 0, "ee42761");
+ check_base_class_offset(lv, (dd2761*), 0, "ee42761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42761.e");
+ test_class_info(&lv, &cd_ee42761);
+ dp->~ee42761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42761(Test_ee42761, "ee42761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42761C1Ev();
+extern void _ZN7ee42761D1Ev();
+Name_Map name_map_ee42761[] = {
+ NSPAIR(_ZN7ee42761C1Ev),
+ NSPAIR(_ZN7ee42761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee42761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN7ee427613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee427613barEv,_ZTv0_n16_N7ee427613barEv)();
+extern void ABISELECT(_ZThn24_N7ee427613barEv,_ZThn16_N7ee427613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN7ee427613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427613barEv,_ZTv0_n16_N7ee427613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee42761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee42761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee42761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee42761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee42761[] = {
+ {&(_ZTV7ee42761[3]), 3,11},
+ {&(_tg__ZTV6dd2761__7ee42761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee42761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee42761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee42761[4]), 4,6},
+ {&(_ZTV7ee42761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42761[];
+extern VTBL_ENTRY _ZTV7ee42761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42761[];
+static VTBL_ENTRY alt_thunk_names882[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427613barEv,_ZTv0_n16_N7ee427613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427613barEv,_ZThn16_N7ee427613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42761 = { "ee42761", // class name
+ bases_ee42761, 4,
+ &(vtc_ee42761[0]), // expected_vtbl_contents
+ &(vtt_ee42761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42761),6, //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 ee52761 : virtual dd2761 {
+ int e;
+ virtual void bar(); // _ZN7ee527613barEv
+ ~ee52761(); // tgen
+ ee52761(); // tgen
+};
+//SIG(1 ee52761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52761 ::bar(){vfunc_called(this, "_ZN7ee527613barEv");}
+ee52761 ::~ee52761(){ note_dtor("ee52761", this);} // tgen
+ee52761 ::ee52761(){ note_ctor("ee52761", this);} // tgen
+
+static void Test_ee52761()
+{
+ extern Class_Descriptor cd_ee52761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52761, buf);
+ ee52761 *dp, &lv = *(dp=new (buf) ee52761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee52761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(32,20), "ee52761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), ABISELECT(16,8), "ee52761");
+ check_base_class_offset(lv, (dd2761*), ABISELECT(16,8), "ee52761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52761.e");
+ test_class_info(&lv, &cd_ee52761);
+ dp->~ee52761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52761(Test_ee52761, "ee52761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52761C1Ev();
+extern void _ZN7ee52761D1Ev();
+Name_Map name_map_ee52761[] = {
+ NSPAIR(_ZN7ee52761C1Ev),
+ NSPAIR(_ZN7ee52761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee52761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, ABISELECT(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 _ZTI7ee52761[];
+extern void _ZN7ee527613barEv();
+extern void _ZN6dd27613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527613barEv,_ZTv0_n20_N7ee527613barEv)();
+extern void ABISELECT(_ZThn16_N7ee527613barEv,_ZThn8_N7ee527613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527613barEv,_ZTv0_n16_N7ee527613barEv)();
+extern void ABISELECT(_ZThn32_N7ee527613barEv,_ZThn20_N7ee527613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52761[0]),
+ (VTBL_ENTRY)&_ZN7ee527613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527613barEv,_ZTv0_n20_N7ee527613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527613barEv,_ZTv0_n16_N7ee527613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee52761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee52761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee52761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee52761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee52761[] = {
+ {&(_ZTV7ee52761[4]), 4,18},
+ {&(_ZTV7ee52761[10]), 10,18},
+ {&(_ZTV7ee52761[16]), 16,18},
+ {&(_tg__ZTV6dd2761__7ee52761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee52761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee52761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee52761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52761[];
+extern VTBL_ENTRY _ZTV7ee52761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52761[];
+static VTBL_ENTRY alt_thunk_names883[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527613barEv,_ZTv0_n16_N7ee527613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527613barEv,_ZThn20_N7ee527613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527613barEv,_ZTv0_n20_N7ee527613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527613barEv,_ZThn8_N7ee527613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52761 = { "ee52761", // class name
+ bases_ee52761, 4,
+ &(vtc_ee52761[0]), // expected_vtbl_contents
+ &(vtt_ee52761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52761),7, //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 ee62761 : dd2761 {
+ int e;
+ virtual void foo(); // _ZN7ee627613fooEv
+ virtual void bar(); // _ZN7ee627613barEv
+ ~ee62761(); // tgen
+ ee62761(); // tgen
+};
+//SIG(1 ee62761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62761 ::foo(){vfunc_called(this, "_ZN7ee627613fooEv");}
+void ee62761 ::bar(){vfunc_called(this, "_ZN7ee627613barEv");}
+ee62761 ::~ee62761(){ note_dtor("ee62761", this);} // tgen
+ee62761 ::ee62761(){ note_ctor("ee62761", this);} // tgen
+
+static void Test_ee62761()
+{
+ extern Class_Descriptor cd_ee62761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62761, buf);
+ ee62761 *dp, &lv = *(dp=new (buf) ee62761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee62761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(24,16), "ee62761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), 0, "ee62761");
+ check_base_class_offset(lv, (dd2761*), 0, "ee62761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62761.e");
+ test_class_info(&lv, &cd_ee62761);
+ dp->~ee62761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62761(Test_ee62761, "ee62761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62761C1Ev();
+extern void _ZN7ee62761D1Ev();
+Name_Map name_map_ee62761[] = {
+ NSPAIR(_ZN7ee62761C1Ev),
+ NSPAIR(_ZN7ee62761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee62761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62761[];
+extern void _ZN7ee627613fooEv();
+extern void _ZN7ee627613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627613fooEv,_ZTv0_n12_N7ee627613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627613fooEv,_ZThn16_N7ee627613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627613barEv,_ZTv0_n16_N7ee627613barEv)();
+extern void ABISELECT(_ZThn24_N7ee627613barEv,_ZThn16_N7ee627613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62761[0]),
+ (VTBL_ENTRY)&_ZN7ee627613fooEv,
+ (VTBL_ENTRY)&_ZN7ee627613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627613fooEv,_ZTv0_n12_N7ee627613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627613barEv,_ZTv0_n16_N7ee627613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee62761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee62761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee62761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee62761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee62761[] = {
+ {&(_ZTV7ee62761[3]), 3,11},
+ {&(_tg__ZTV6dd2761__7ee62761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee62761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee62761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee62761[4]), 4,6},
+ {&(_ZTV7ee62761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62761[];
+extern VTBL_ENTRY _ZTV7ee62761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62761[];
+static VTBL_ENTRY alt_thunk_names884[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27613fooEv,_ZThn16_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627613barEv,_ZTv0_n16_N7ee627613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627613barEv,_ZThn16_N7ee627613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627613fooEv,_ZTv0_n12_N7ee627613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627613fooEv,_ZThn16_N7ee627613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62761 = { "ee62761", // class name
+ bases_ee62761, 4,
+ &(vtc_ee62761[0]), // expected_vtbl_contents
+ &(vtt_ee62761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62761),6, //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 ee72761 : virtual dd2761 {
+ int e;
+ virtual void foo(); // _ZN7ee727613fooEv
+ virtual void bar(); // _ZN7ee727613barEv
+ ~ee72761(); // tgen
+ ee72761(); // tgen
+};
+//SIG(1 ee72761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72761 ::foo(){vfunc_called(this, "_ZN7ee727613fooEv");}
+void ee72761 ::bar(){vfunc_called(this, "_ZN7ee727613barEv");}
+ee72761 ::~ee72761(){ note_dtor("ee72761", this);} // tgen
+ee72761 ::ee72761(){ note_ctor("ee72761", this);} // tgen
+
+static void Test_ee72761()
+{
+ extern Class_Descriptor cd_ee72761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72761, buf);
+ ee72761 *dp, &lv = *(dp=new (buf) ee72761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee72761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd2761*), ABISELECT(32,20), "ee72761");
+ check_base_class_offset(lv, (cc761*)(dd2761*), ABISELECT(16,8), "ee72761");
+ check_base_class_offset(lv, (dd2761*), ABISELECT(16,8), "ee72761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72761.e");
+ test_class_info(&lv, &cd_ee72761);
+ dp->~ee72761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72761(Test_ee72761, "ee72761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72761C1Ev();
+extern void _ZN7ee72761D1Ev();
+Name_Map name_map_ee72761[] = {
+ NSPAIR(_ZN7ee72761C1Ev),
+ NSPAIR(_ZN7ee72761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd2761;
+extern VTBL_ENTRY _ZTI6dd2761[];
+extern VTBL_ENTRY _ZTV6dd2761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2761[];
+static Base_Class bases_ee72761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2761, ABISELECT(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 _ZTI7ee72761[];
+extern void _ZN7ee727613fooEv();
+extern void _ZN7ee727613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727613fooEv,_ZTv0_n16_N7ee727613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727613fooEv,_ZThn8_N7ee727613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727613barEv,_ZTv0_n20_N7ee727613barEv)();
+extern void ABISELECT(_ZThn16_N7ee727613barEv,_ZThn8_N7ee727613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727613fooEv,_ZTv0_n12_N7ee727613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727613fooEv,_ZThn20_N7ee727613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727613barEv,_ZTv0_n16_N7ee727613barEv)();
+extern void ABISELECT(_ZThn32_N7ee727613barEv,_ZThn20_N7ee727613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72761[0]),
+ (VTBL_ENTRY)&_ZN7ee727613fooEv,
+ (VTBL_ENTRY)&_ZN7ee727613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727613fooEv,_ZTv0_n16_N7ee727613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727613barEv,_ZTv0_n20_N7ee727613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727613fooEv,_ZTv0_n12_N7ee727613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727613barEv,_ZTv0_n16_N7ee727613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72761[];
+extern void _ZN6dd27613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV6dd2761__7ee72761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&_ZN6dd27613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd2761__7ee72761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd2761__7ee72761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd2761__7ee72761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee72761[] = {
+ {&(_ZTV7ee72761[4]), 4,19},
+ {&(_ZTV7ee72761[11]), 11,19},
+ {&(_ZTV7ee72761[17]), 17,19},
+ {&(_tg__ZTV6dd2761__7ee72761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd2761__7ee72761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd2761__7ee72761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd2761__7ee72761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72761[];
+extern VTBL_ENTRY _ZTV7ee72761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72761[];
+static VTBL_ENTRY alt_thunk_names885[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27613fooEv,_ZTv0_n12_N6dd27613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27613fooEv,_ZThn12_N6dd27613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727613barEv,_ZTv0_n16_N7ee727613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727613barEv,_ZThn20_N7ee727613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727613fooEv,_ZTv0_n12_N7ee727613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727613fooEv,_ZThn20_N7ee727613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727613barEv,_ZTv0_n20_N7ee727613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727613barEv,_ZThn8_N7ee727613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727613fooEv,_ZTv0_n16_N7ee727613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727613fooEv,_ZThn8_N7ee727613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72761 = { "ee72761", // class name
+ bases_ee72761, 4,
+ &(vtc_ee72761[0]), // expected_vtbl_contents
+ &(vtt_ee72761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72761),7, //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 dd3761 : virtual cc761 {
+ int d;
+ virtual void foo(); // _ZN6dd37613fooEv
+ ~dd3761(); // tgen
+ dd3761(); // tgen
+};
+//SIG(-1 dd3761) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3761 ::foo(){vfunc_called(this, "_ZN6dd37613fooEv");}
+dd3761 ::~dd3761(){ note_dtor("dd3761", this);} // tgen
+dd3761 ::dd3761(){ note_ctor("dd3761", this);} // tgen
+
+static void Test_dd3761()
+{
+ extern Class_Descriptor cd_dd3761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3761, buf);
+ dd3761 *dp, &lv = *(dp=new (buf) dd3761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd3761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,16), "dd3761");
+ check_base_class_offset(lv, (cc761*), ABISELECT(16,8), "dd3761");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3761.d");
+ test_class_info(&lv, &cd_dd3761);
+ dp->~dd3761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3761(Test_dd3761, "dd3761", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3761C1Ev();
+extern void _ZN6dd3761D1Ev();
+Name_Map name_map_dd3761[] = {
+ NSPAIR(_ZN6dd3761C1Ev),
+ NSPAIR(_ZN6dd3761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd3761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(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 _ZTI6dd3761[];
+extern void _ZN6dd37613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd3761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd3761[] = {
+ {&(_ZTV6dd3761[4]), 4,18},
+ {&(_ZTV6dd3761[10]), 10,18},
+ {&(_ZTV6dd3761[16]), 16,18},
+ {&(_tg__ZTV5cc761__6dd3761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd3761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static VTBL_ENTRY alt_thunk_names886[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3761 = { "dd3761", // class name
+ bases_dd3761, 3,
+ &(vtc_dd3761[0]), // expected_vtbl_contents
+ &(vtt_dd3761[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3761),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names886,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03761 : dd3761 {
+ int e;
+ ~ee03761(); // tgen
+ ee03761(); // tgen
+};
+//SIG(1 ee03761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03761 ::~ee03761(){ note_dtor("ee03761", this);} // tgen
+ee03761 ::ee03761(){ note_ctor("ee03761", this);} // tgen
+
+static void Test_ee03761()
+{
+ extern Class_Descriptor cd_ee03761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03761, buf);
+ ee03761 *dp, &lv = *(dp=new (buf) ee03761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee03761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee03761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(16,12), "ee03761");
+ check_base_class_offset(lv, (dd3761*), 0, "ee03761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03761.e");
+ test_class_info(&lv, &cd_ee03761);
+ dp->~ee03761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03761(Test_ee03761, "ee03761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03761C1Ev();
+extern void _ZN7ee03761D1Ev();
+Name_Map name_map_ee03761[] = {
+ NSPAIR(_ZN7ee03761C1Ev),
+ NSPAIR(_ZN7ee03761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee03761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03761[];
+extern void _ZN6dd37613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee03761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee03761[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee03761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee03761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee03761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee03761[] = {
+ {&(_ZTV7ee03761[4]), 4,18},
+ {&(_tg__ZTV6dd3761__7ee03761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee03761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee03761[4]), 4,6},
+ {&(_ZTV7ee03761[10]), 10,18},
+ {&(_ZTV7ee03761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee03761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee03761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03761[];
+extern VTBL_ENTRY _ZTV7ee03761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03761[];
+static VTBL_ENTRY alt_thunk_names887[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03761 = { "ee03761", // class name
+ bases_ee03761, 4,
+ &(vtc_ee03761[0]), // expected_vtbl_contents
+ &(vtt_ee03761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names887,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13761 : virtual dd3761 {
+ int e;
+ ~ee13761(); // tgen
+ ee13761(); // tgen
+};
+//SIG(1 ee13761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13761 ::~ee13761(){ note_dtor("ee13761", this);} // tgen
+ee13761 ::ee13761(){ note_ctor("ee13761", this);} // tgen
+
+static void Test_ee13761()
+{
+ extern Class_Descriptor cd_ee13761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13761, buf);
+ ee13761 *dp, &lv = *(dp=new (buf) ee13761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee13761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee13761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(32,16), "ee13761");
+ check_base_class_offset(lv, (dd3761*), ABISELECT(16,8), "ee13761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13761.e");
+ test_class_info(&lv, &cd_ee13761);
+ dp->~ee13761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13761(Test_ee13761, "ee13761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13761C1Ev();
+extern void _ZN7ee13761D1Ev();
+Name_Map name_map_ee13761[] = {
+ NSPAIR(_ZN7ee13761C1Ev),
+ NSPAIR(_ZN7ee13761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee13761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, ABISELECT(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 _ZTI7ee13761[];
+extern void _ZN6dd37613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13761[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee13761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee13761[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee13761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee13761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee13761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee13761[] = {
+ {&(_ZTV7ee13761[5]), 5,24},
+ {&(_ZTV7ee13761[10]), 10,24},
+ {&(_ZTV7ee13761[16]), 16,24},
+ {&(_ZTV7ee13761[22]), 22,24},
+ {&(_tg__ZTV6dd3761__7ee13761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee13761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee13761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee13761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee13761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13761[];
+extern VTBL_ENTRY _ZTV7ee13761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13761[];
+static VTBL_ENTRY alt_thunk_names888[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13761 = { "ee13761", // class name
+ bases_ee13761, 4,
+ &(vtc_ee13761[0]), // expected_vtbl_contents
+ &(vtt_ee13761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13761),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13761),9, //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 ee23761 : dd3761 {
+ int e;
+ virtual void foo(); // _ZN7ee237613fooEv
+ ~ee23761(); // tgen
+ ee23761(); // tgen
+};
+//SIG(1 ee23761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23761 ::foo(){vfunc_called(this, "_ZN7ee237613fooEv");}
+ee23761 ::~ee23761(){ note_dtor("ee23761", this);} // tgen
+ee23761 ::ee23761(){ note_ctor("ee23761", this);} // tgen
+
+static void Test_ee23761()
+{
+ extern Class_Descriptor cd_ee23761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23761, buf);
+ ee23761 *dp, &lv = *(dp=new (buf) ee23761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee23761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee23761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(16,12), "ee23761");
+ check_base_class_offset(lv, (dd3761*), 0, "ee23761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23761.e");
+ test_class_info(&lv, &cd_ee23761);
+ dp->~ee23761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23761(Test_ee23761, "ee23761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23761C1Ev();
+extern void _ZN7ee23761D1Ev();
+Name_Map name_map_ee23761[] = {
+ NSPAIR(_ZN7ee23761C1Ev),
+ NSPAIR(_ZN7ee23761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee23761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23761[];
+extern void _ZN7ee237613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237613fooEv,_ZTv0_n16_N7ee237613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237613fooEv,_ZThn12_N7ee237613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237613fooEv,_ZTv0_n12_N7ee237613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237613fooEv,_ZThn20_N7ee237613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23761[0]),
+ (VTBL_ENTRY)&_ZN7ee237613fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237613fooEv,_ZTv0_n16_N7ee237613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237613fooEv,_ZTv0_n12_N7ee237613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee23761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee23761[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee23761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee23761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee23761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee23761[] = {
+ {&(_ZTV7ee23761[4]), 4,18},
+ {&(_tg__ZTV6dd3761__7ee23761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee23761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee23761[4]), 4,6},
+ {&(_ZTV7ee23761[10]), 10,18},
+ {&(_ZTV7ee23761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee23761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee23761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23761[];
+extern VTBL_ENTRY _ZTV7ee23761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23761[];
+static VTBL_ENTRY alt_thunk_names889[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237613fooEv,_ZTv0_n12_N7ee237613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237613fooEv,_ZThn20_N7ee237613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237613fooEv,_ZTv0_n16_N7ee237613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237613fooEv,_ZThn12_N7ee237613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23761 = { "ee23761", // class name
+ bases_ee23761, 4,
+ &(vtc_ee23761[0]), // expected_vtbl_contents
+ &(vtt_ee23761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names889,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33761 : virtual dd3761 {
+ int e;
+ virtual void foo(); // _ZN7ee337613fooEv
+ ~ee33761(); // tgen
+ ee33761(); // tgen
+};
+//SIG(1 ee33761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33761 ::foo(){vfunc_called(this, "_ZN7ee337613fooEv");}
+ee33761 ::~ee33761(){ note_dtor("ee33761", this);} // tgen
+ee33761 ::ee33761(){ note_ctor("ee33761", this);} // tgen
+
+static void Test_ee33761()
+{
+ extern Class_Descriptor cd_ee33761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33761, buf);
+ ee33761 *dp, &lv = *(dp=new (buf) ee33761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee33761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee33761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(32,16), "ee33761");
+ check_base_class_offset(lv, (dd3761*), ABISELECT(16,8), "ee33761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33761.e");
+ test_class_info(&lv, &cd_ee33761);
+ dp->~ee33761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33761(Test_ee33761, "ee33761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33761C1Ev();
+extern void _ZN7ee33761D1Ev();
+Name_Map name_map_ee33761[] = {
+ NSPAIR(_ZN7ee33761C1Ev),
+ NSPAIR(_ZN7ee33761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee33761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, ABISELECT(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 _ZTI7ee33761[];
+extern void _ZN7ee337613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337613fooEv,_ZTv0_n20_N7ee337613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337613fooEv,_ZThn8_N7ee337613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337613fooEv,_ZTv0_n16_N7ee337613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337613fooEv,_ZThn16_N7ee337613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337613fooEv,_ZTv0_n12_N7ee337613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337613fooEv,_ZThn24_N7ee337613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33761[0]),
+ (VTBL_ENTRY)&_ZN7ee337613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337613fooEv,_ZTv0_n20_N7ee337613fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337613fooEv,_ZTv0_n16_N7ee337613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337613fooEv,_ZTv0_n12_N7ee337613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee33761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee33761[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee33761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee33761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee33761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee33761[] = {
+ {&(_ZTV7ee33761[5]), 5,25},
+ {&(_ZTV7ee33761[11]), 11,25},
+ {&(_ZTV7ee33761[17]), 17,25},
+ {&(_ZTV7ee33761[23]), 23,25},
+ {&(_tg__ZTV6dd3761__7ee33761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee33761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee33761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee33761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee33761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33761[];
+extern VTBL_ENTRY _ZTV7ee33761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33761[];
+static VTBL_ENTRY alt_thunk_names890[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337613fooEv,_ZTv0_n12_N7ee337613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337613fooEv,_ZThn24_N7ee337613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337613fooEv,_ZTv0_n16_N7ee337613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337613fooEv,_ZThn16_N7ee337613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337613fooEv,_ZTv0_n20_N7ee337613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337613fooEv,_ZThn8_N7ee337613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33761 = { "ee33761", // class name
+ bases_ee33761, 4,
+ &(vtc_ee33761[0]), // expected_vtbl_contents
+ &(vtt_ee33761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33761),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names890,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43761 : dd3761 {
+ int e;
+ virtual void bar(); // _ZN7ee437613barEv
+ ~ee43761(); // tgen
+ ee43761(); // tgen
+};
+//SIG(1 ee43761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43761 ::bar(){vfunc_called(this, "_ZN7ee437613barEv");}
+ee43761 ::~ee43761(){ note_dtor("ee43761", this);} // tgen
+ee43761 ::ee43761(){ note_ctor("ee43761", this);} // tgen
+
+static void Test_ee43761()
+{
+ extern Class_Descriptor cd_ee43761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43761, buf);
+ ee43761 *dp, &lv = *(dp=new (buf) ee43761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee43761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee43761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(16,12), "ee43761");
+ check_base_class_offset(lv, (dd3761*), 0, "ee43761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43761.e");
+ test_class_info(&lv, &cd_ee43761);
+ dp->~ee43761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43761(Test_ee43761, "ee43761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43761C1Ev();
+extern void _ZN7ee43761D1Ev();
+Name_Map name_map_ee43761[] = {
+ NSPAIR(_ZN7ee43761C1Ev),
+ NSPAIR(_ZN7ee43761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee43761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43761[];
+extern void _ZN6dd37613fooEv();
+extern void _ZN7ee437613barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437613barEv,_ZTv0_n20_N7ee437613barEv)();
+extern void ABISELECT(_ZThn16_N7ee437613barEv,_ZThn12_N7ee437613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437613barEv,_ZTv0_n16_N7ee437613barEv)();
+extern void ABISELECT(_ZThn32_N7ee437613barEv,_ZThn20_N7ee437613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+ (VTBL_ENTRY)&_ZN7ee437613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437613barEv,_ZTv0_n20_N7ee437613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437613barEv,_ZTv0_n16_N7ee437613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee43761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee43761[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee43761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee43761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee43761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee43761[] = {
+ {&(_ZTV7ee43761[4]), 4,19},
+ {&(_tg__ZTV6dd3761__7ee43761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee43761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee43761[4]), 4,6},
+ {&(_ZTV7ee43761[11]), 11,19},
+ {&(_ZTV7ee43761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee43761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee43761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43761[];
+extern VTBL_ENTRY _ZTV7ee43761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43761[];
+static VTBL_ENTRY alt_thunk_names891[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437613barEv,_ZTv0_n16_N7ee437613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437613barEv,_ZThn20_N7ee437613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437613barEv,_ZTv0_n20_N7ee437613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437613barEv,_ZThn12_N7ee437613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43761 = { "ee43761", // class name
+ bases_ee43761, 4,
+ &(vtc_ee43761[0]), // expected_vtbl_contents
+ &(vtt_ee43761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names891,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53761 : virtual dd3761 {
+ int e;
+ virtual void bar(); // _ZN7ee537613barEv
+ ~ee53761(); // tgen
+ ee53761(); // tgen
+};
+//SIG(1 ee53761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53761 ::bar(){vfunc_called(this, "_ZN7ee537613barEv");}
+ee53761 ::~ee53761(){ note_dtor("ee53761", this);} // tgen
+ee53761 ::ee53761(){ note_ctor("ee53761", this);} // tgen
+
+static void Test_ee53761()
+{
+ extern Class_Descriptor cd_ee53761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53761, buf);
+ ee53761 *dp, &lv = *(dp=new (buf) ee53761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee53761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee53761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(32,16), "ee53761");
+ check_base_class_offset(lv, (dd3761*), ABISELECT(16,8), "ee53761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53761.e");
+ test_class_info(&lv, &cd_ee53761);
+ dp->~ee53761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53761(Test_ee53761, "ee53761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53761C1Ev();
+extern void _ZN7ee53761D1Ev();
+Name_Map name_map_ee53761[] = {
+ NSPAIR(_ZN7ee53761C1Ev),
+ NSPAIR(_ZN7ee53761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee53761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, ABISELECT(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 _ZTI7ee53761[];
+extern void _ZN7ee537613barEv();
+extern void _ZN6dd37613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537613barEv,_ZTv0_n20_N7ee537613barEv)();
+extern void ABISELECT(_ZThn32_N7ee537613barEv,_ZThn16_N7ee537613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537613barEv,_ZTv0_n16_N7ee537613barEv)();
+extern void ABISELECT(_ZThn48_N7ee537613barEv,_ZThn24_N7ee537613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53761[0]),
+ (VTBL_ENTRY)&_ZN7ee537613barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537613barEv,_ZTv0_n20_N7ee537613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537613barEv,_ZTv0_n16_N7ee537613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee53761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee53761[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee53761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee53761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee53761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee53761[] = {
+ {&(_ZTV7ee53761[5]), 5,25},
+ {&(_ZTV7ee53761[11]), 11,25},
+ {&(_ZTV7ee53761[17]), 17,25},
+ {&(_ZTV7ee53761[23]), 23,25},
+ {&(_tg__ZTV6dd3761__7ee53761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee53761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee53761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee53761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee53761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53761[];
+extern VTBL_ENTRY _ZTV7ee53761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53761[];
+static VTBL_ENTRY alt_thunk_names892[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537613barEv,_ZTv0_n16_N7ee537613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537613barEv,_ZThn24_N7ee537613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537613barEv,_ZTv0_n20_N7ee537613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537613barEv,_ZThn16_N7ee537613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53761 = { "ee53761", // class name
+ bases_ee53761, 4,
+ &(vtc_ee53761[0]), // expected_vtbl_contents
+ &(vtt_ee53761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53761),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names892,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63761 : dd3761 {
+ int e;
+ virtual void foo(); // _ZN7ee637613fooEv
+ virtual void bar(); // _ZN7ee637613barEv
+ ~ee63761(); // tgen
+ ee63761(); // tgen
+};
+//SIG(1 ee63761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63761 ::foo(){vfunc_called(this, "_ZN7ee637613fooEv");}
+void ee63761 ::bar(){vfunc_called(this, "_ZN7ee637613barEv");}
+ee63761 ::~ee63761(){ note_dtor("ee63761", this);} // tgen
+ee63761 ::ee63761(){ note_ctor("ee63761", this);} // tgen
+
+static void Test_ee63761()
+{
+ extern Class_Descriptor cd_ee63761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63761, buf);
+ ee63761 *dp, &lv = *(dp=new (buf) ee63761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee63761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee63761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(16,12), "ee63761");
+ check_base_class_offset(lv, (dd3761*), 0, "ee63761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63761.e");
+ test_class_info(&lv, &cd_ee63761);
+ dp->~ee63761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63761(Test_ee63761, "ee63761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63761C1Ev();
+extern void _ZN7ee63761D1Ev();
+Name_Map name_map_ee63761[] = {
+ NSPAIR(_ZN7ee63761C1Ev),
+ NSPAIR(_ZN7ee63761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee63761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63761[];
+extern void _ZN7ee637613fooEv();
+extern void _ZN7ee637613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637613fooEv,_ZTv0_n16_N7ee637613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637613fooEv,_ZThn12_N7ee637613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637613barEv,_ZTv0_n20_N7ee637613barEv)();
+extern void ABISELECT(_ZThn16_N7ee637613barEv,_ZThn12_N7ee637613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637613fooEv,_ZTv0_n12_N7ee637613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637613fooEv,_ZThn20_N7ee637613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637613barEv,_ZTv0_n16_N7ee637613barEv)();
+extern void ABISELECT(_ZThn32_N7ee637613barEv,_ZThn20_N7ee637613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63761[0]),
+ (VTBL_ENTRY)&_ZN7ee637613fooEv,
+ (VTBL_ENTRY)&_ZN7ee637613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637613fooEv,_ZTv0_n16_N7ee637613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637613barEv,_ZTv0_n20_N7ee637613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637613fooEv,_ZTv0_n12_N7ee637613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637613barEv,_ZTv0_n16_N7ee637613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee63761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee63761[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee63761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee63761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee63761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee63761[] = {
+ {&(_ZTV7ee63761[4]), 4,19},
+ {&(_tg__ZTV6dd3761__7ee63761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee63761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee63761[4]), 4,6},
+ {&(_ZTV7ee63761[11]), 11,19},
+ {&(_ZTV7ee63761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee63761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee63761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63761[];
+extern VTBL_ENTRY _ZTV7ee63761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63761[];
+static VTBL_ENTRY alt_thunk_names893[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn20_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn12_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637613barEv,_ZTv0_n16_N7ee637613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637613barEv,_ZThn20_N7ee637613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637613fooEv,_ZTv0_n12_N7ee637613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637613fooEv,_ZThn20_N7ee637613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637613barEv,_ZTv0_n20_N7ee637613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637613barEv,_ZThn12_N7ee637613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637613fooEv,_ZTv0_n16_N7ee637613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637613fooEv,_ZThn12_N7ee637613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63761 = { "ee63761", // class name
+ bases_ee63761, 4,
+ &(vtc_ee63761[0]), // expected_vtbl_contents
+ &(vtt_ee63761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63761),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names893,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73761 : virtual dd3761 {
+ int e;
+ virtual void foo(); // _ZN7ee737613fooEv
+ virtual void bar(); // _ZN7ee737613barEv
+ ~ee73761(); // tgen
+ ee73761(); // tgen
+};
+//SIG(1 ee73761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73761 ::foo(){vfunc_called(this, "_ZN7ee737613fooEv");}
+void ee73761 ::bar(){vfunc_called(this, "_ZN7ee737613barEv");}
+ee73761 ::~ee73761(){ note_dtor("ee73761", this);} // tgen
+ee73761 ::ee73761(){ note_ctor("ee73761", this);} // tgen
+
+static void Test_ee73761()
+{
+ extern Class_Descriptor cd_ee73761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73761, buf);
+ ee73761 *dp, &lv = *(dp=new (buf) ee73761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee73761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee73761");
+ check_base_class_offset(lv, (cc761*)(dd3761*), ABISELECT(32,16), "ee73761");
+ check_base_class_offset(lv, (dd3761*), ABISELECT(16,8), "ee73761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73761.e");
+ test_class_info(&lv, &cd_ee73761);
+ dp->~ee73761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73761(Test_ee73761, "ee73761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73761C1Ev();
+extern void _ZN7ee73761D1Ev();
+Name_Map name_map_ee73761[] = {
+ NSPAIR(_ZN7ee73761C1Ev),
+ NSPAIR(_ZN7ee73761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd3761;
+extern VTBL_ENTRY _ZTI6dd3761[];
+extern VTBL_ENTRY _ZTV6dd3761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3761[];
+static Base_Class bases_ee73761[] = {
+ // 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_bb61, 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_cc761, 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_dd3761, 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 _ZTI7ee73761[];
+extern void _ZN7ee737613fooEv();
+extern void _ZN7ee737613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737613fooEv,_ZTv0_n20_N7ee737613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737613fooEv,_ZThn8_N7ee737613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737613fooEv,_ZTv0_n16_N7ee737613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737613fooEv,_ZThn16_N7ee737613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737613barEv,_ZTv0_n20_N7ee737613barEv)();
+extern void ABISELECT(_ZThn32_N7ee737613barEv,_ZThn16_N7ee737613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737613fooEv,_ZTv0_n12_N7ee737613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737613fooEv,_ZThn24_N7ee737613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737613barEv,_ZTv0_n16_N7ee737613barEv)();
+extern void ABISELECT(_ZThn48_N7ee737613barEv,_ZThn24_N7ee737613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73761[0]),
+ (VTBL_ENTRY)&_ZN7ee737613fooEv,
+ (VTBL_ENTRY)&_ZN7ee737613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737613fooEv,_ZTv0_n20_N7ee737613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737613fooEv,_ZTv0_n16_N7ee737613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737613barEv,_ZTv0_n20_N7ee737613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737613fooEv,_ZTv0_n12_N7ee737613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737613barEv,_ZTv0_n16_N7ee737613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73761[];
+extern void _ZN6dd37613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3761__7ee73761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&_ZN6dd37613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv)() __attribute__((weak));
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd3761__7ee73761[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv),
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd3761__7ee73761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee73761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee73761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee73761[] = {
+ {&(_ZTV7ee73761[5]), 5,26},
+ {&(_ZTV7ee73761[12]), 12,26},
+ {&(_ZTV7ee73761[18]), 18,26},
+ {&(_ZTV7ee73761[24]), 24,26},
+ {&(_tg__ZTV6dd3761__7ee73761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd3761__7ee73761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd3761__7ee73761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee73761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee73761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73761[];
+extern VTBL_ENTRY _ZTV7ee73761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73761[];
+static VTBL_ENTRY alt_thunk_names894[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37613fooEv,_ZTv0_n12_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37613fooEv,_ZThn16_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37613fooEv,_ZTv0_n16_N6dd37613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37613fooEv,_ZThn8_N6dd37613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737613barEv,_ZTv0_n16_N7ee737613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737613barEv,_ZThn24_N7ee737613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737613fooEv,_ZTv0_n12_N7ee737613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737613fooEv,_ZThn24_N7ee737613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737613barEv,_ZTv0_n20_N7ee737613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737613barEv,_ZThn16_N7ee737613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737613fooEv,_ZTv0_n16_N7ee737613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737613fooEv,_ZThn16_N7ee737613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737613fooEv,_ZTv0_n20_N7ee737613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737613fooEv,_ZThn8_N7ee737613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73761 = { "ee73761", // class name
+ bases_ee73761, 4,
+ &(vtc_ee73761[0]), // expected_vtbl_contents
+ &(vtt_ee73761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73761),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names894,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4761 : cc761 {
+ int d;
+ virtual void bar(); // _ZN6dd47613barEv
+ ~dd4761(); // tgen
+ dd4761(); // tgen
+};
+//SIG(-1 dd4761) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4761 ::bar(){vfunc_called(this, "_ZN6dd47613barEv");}
+dd4761 ::~dd4761(){ note_dtor("dd4761", this);} // tgen
+dd4761 ::dd4761(){ note_ctor("dd4761", this);} // tgen
+
+static void Test_dd4761()
+{
+ extern Class_Descriptor cd_dd4761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4761, buf);
+ dd4761 *dp, &lv = *(dp=new (buf) dd4761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd4761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(16,12), "dd4761");
+ check_base_class_offset(lv, (cc761*), 0, "dd4761");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4761.d");
+ test_class_info(&lv, &cd_dd4761);
+ dp->~dd4761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4761(Test_dd4761, "dd4761", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4761C1Ev();
+extern void _ZN6dd4761D1Ev();
+Name_Map name_map_dd4761[] = {
+ NSPAIR(_ZN6dd4761C1Ev),
+ NSPAIR(_ZN6dd4761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd4761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd4761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd4761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd4761[] = {
+ {&(_ZTV6dd4761[3]), 3,11},
+ {&(_tg__ZTV5cc761__6dd4761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd4761[4]), 4,6},
+ {&(_ZTV6dd4761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static VTBL_ENTRY alt_thunk_names895[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4761 = { "dd4761", // class name
+ bases_dd4761, 3,
+ &(vtc_dd4761[0]), // expected_vtbl_contents
+ &(vtt_dd4761[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4761),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names895,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04761 : dd4761 {
+ int e;
+ ~ee04761(); // tgen
+ ee04761(); // tgen
+};
+//SIG(1 ee04761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04761 ::~ee04761(){ note_dtor("ee04761", this);} // tgen
+ee04761 ::ee04761(){ note_ctor("ee04761", this);} // tgen
+
+static void Test_ee04761()
+{
+ extern Class_Descriptor cd_ee04761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04761, buf);
+ ee04761 *dp, &lv = *(dp=new (buf) ee04761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee04761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(24,16), "ee04761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), 0, "ee04761");
+ check_base_class_offset(lv, (dd4761*), 0, "ee04761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04761.e");
+ test_class_info(&lv, &cd_ee04761);
+ dp->~ee04761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04761(Test_ee04761, "ee04761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04761C1Ev();
+extern void _ZN7ee04761D1Ev();
+Name_Map name_map_ee04761[] = {
+ NSPAIR(_ZN7ee04761C1Ev),
+ NSPAIR(_ZN7ee04761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee04761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee04761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee04761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee04761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee04761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee04761[] = {
+ {&(_ZTV7ee04761[3]), 3,11},
+ {&(_tg__ZTV6dd4761__7ee04761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee04761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee04761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee04761[4]), 4,6},
+ {&(_ZTV7ee04761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04761[];
+extern VTBL_ENTRY _ZTV7ee04761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04761[];
+static VTBL_ENTRY alt_thunk_names896[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04761 = { "ee04761", // class name
+ bases_ee04761, 4,
+ &(vtc_ee04761[0]), // expected_vtbl_contents
+ &(vtt_ee04761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04761),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 ee14761 : virtual dd4761 {
+ int e;
+ ~ee14761(); // tgen
+ ee14761(); // tgen
+};
+//SIG(1 ee14761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14761 ::~ee14761(){ note_dtor("ee14761", this);} // tgen
+ee14761 ::ee14761(){ note_ctor("ee14761", this);} // tgen
+
+static void Test_ee14761()
+{
+ extern Class_Descriptor cd_ee14761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14761, buf);
+ ee14761 *dp, &lv = *(dp=new (buf) ee14761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee14761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(32,20), "ee14761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), ABISELECT(16,8), "ee14761");
+ check_base_class_offset(lv, (dd4761*), ABISELECT(16,8), "ee14761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14761.e");
+ test_class_info(&lv, &cd_ee14761);
+ dp->~ee14761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14761(Test_ee14761, "ee14761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14761C1Ev();
+extern void _ZN7ee14761D1Ev();
+Name_Map name_map_ee14761[] = {
+ NSPAIR(_ZN7ee14761C1Ev),
+ NSPAIR(_ZN7ee14761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee14761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, 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 _ZTI7ee14761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14761[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee14761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee14761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee14761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee14761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee14761[] = {
+ {&(_ZTV7ee14761[4]), 4,17},
+ {&(_ZTV7ee14761[9]), 9,17},
+ {&(_ZTV7ee14761[15]), 15,17},
+ {&(_tg__ZTV6dd4761__7ee14761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee14761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee14761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee14761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14761[];
+extern VTBL_ENTRY _ZTV7ee14761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14761[];
+static VTBL_ENTRY alt_thunk_names897[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14761 = { "ee14761", // class name
+ bases_ee14761, 4,
+ &(vtc_ee14761[0]), // expected_vtbl_contents
+ &(vtt_ee14761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14761),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 ee24761 : dd4761 {
+ int e;
+ virtual void foo(); // _ZN7ee247613fooEv
+ ~ee24761(); // tgen
+ ee24761(); // tgen
+};
+//SIG(1 ee24761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24761 ::foo(){vfunc_called(this, "_ZN7ee247613fooEv");}
+ee24761 ::~ee24761(){ note_dtor("ee24761", this);} // tgen
+ee24761 ::ee24761(){ note_ctor("ee24761", this);} // tgen
+
+static void Test_ee24761()
+{
+ extern Class_Descriptor cd_ee24761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24761, buf);
+ ee24761 *dp, &lv = *(dp=new (buf) ee24761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee24761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(24,16), "ee24761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), 0, "ee24761");
+ check_base_class_offset(lv, (dd4761*), 0, "ee24761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24761.e");
+ test_class_info(&lv, &cd_ee24761);
+ dp->~ee24761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24761(Test_ee24761, "ee24761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24761C1Ev();
+extern void _ZN7ee24761D1Ev();
+Name_Map name_map_ee24761[] = {
+ NSPAIR(_ZN7ee24761C1Ev),
+ NSPAIR(_ZN7ee24761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee24761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24761[];
+extern void _ZN7ee247613fooEv();
+extern void _ZN6dd47613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247613fooEv,_ZTv0_n12_N7ee247613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247613fooEv,_ZThn16_N7ee247613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24761[0]),
+ (VTBL_ENTRY)&_ZN7ee247613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247613fooEv,_ZTv0_n12_N7ee247613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee24761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee24761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee24761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee24761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee24761[] = {
+ {&(_ZTV7ee24761[3]), 3,11},
+ {&(_tg__ZTV6dd4761__7ee24761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee24761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee24761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee24761[4]), 4,6},
+ {&(_ZTV7ee24761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24761[];
+extern VTBL_ENTRY _ZTV7ee24761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24761[];
+static VTBL_ENTRY alt_thunk_names898[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247613fooEv,_ZTv0_n12_N7ee247613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247613fooEv,_ZThn16_N7ee247613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24761 = { "ee24761", // class name
+ bases_ee24761, 4,
+ &(vtc_ee24761[0]), // expected_vtbl_contents
+ &(vtt_ee24761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24761),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 ee34761 : virtual dd4761 {
+ int e;
+ virtual void foo(); // _ZN7ee347613fooEv
+ ~ee34761(); // tgen
+ ee34761(); // tgen
+};
+//SIG(1 ee34761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34761 ::foo(){vfunc_called(this, "_ZN7ee347613fooEv");}
+ee34761 ::~ee34761(){ note_dtor("ee34761", this);} // tgen
+ee34761 ::ee34761(){ note_ctor("ee34761", this);} // tgen
+
+static void Test_ee34761()
+{
+ extern Class_Descriptor cd_ee34761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34761, buf);
+ ee34761 *dp, &lv = *(dp=new (buf) ee34761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee34761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(32,20), "ee34761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), ABISELECT(16,8), "ee34761");
+ check_base_class_offset(lv, (dd4761*), ABISELECT(16,8), "ee34761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34761.e");
+ test_class_info(&lv, &cd_ee34761);
+ dp->~ee34761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34761(Test_ee34761, "ee34761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34761C1Ev();
+extern void _ZN7ee34761D1Ev();
+Name_Map name_map_ee34761[] = {
+ NSPAIR(_ZN7ee34761C1Ev),
+ NSPAIR(_ZN7ee34761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee34761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, ABISELECT(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 _ZTI7ee34761[];
+extern void _ZN7ee347613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347613fooEv,_ZTv0_n16_N7ee347613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347613fooEv,_ZThn8_N7ee347613fooEv)() __attribute__((weak));
+extern void _ZN6dd47613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347613fooEv,_ZTv0_n12_N7ee347613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347613fooEv,_ZThn20_N7ee347613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34761[0]),
+ (VTBL_ENTRY)&_ZN7ee347613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347613fooEv,_ZTv0_n16_N7ee347613fooEv),
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347613fooEv,_ZTv0_n12_N7ee347613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee34761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee34761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee34761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee34761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee34761[] = {
+ {&(_ZTV7ee34761[4]), 4,18},
+ {&(_ZTV7ee34761[10]), 10,18},
+ {&(_ZTV7ee34761[16]), 16,18},
+ {&(_tg__ZTV6dd4761__7ee34761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee34761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee34761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee34761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34761[];
+extern VTBL_ENTRY _ZTV7ee34761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34761[];
+static VTBL_ENTRY alt_thunk_names899[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347613fooEv,_ZTv0_n12_N7ee347613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347613fooEv,_ZThn20_N7ee347613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347613fooEv,_ZTv0_n16_N7ee347613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347613fooEv,_ZThn8_N7ee347613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34761 = { "ee34761", // class name
+ bases_ee34761, 4,
+ &(vtc_ee34761[0]), // expected_vtbl_contents
+ &(vtt_ee34761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34761),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 ee44761 : dd4761 {
+ int e;
+ virtual void bar(); // _ZN7ee447613barEv
+ ~ee44761(); // tgen
+ ee44761(); // tgen
+};
+//SIG(1 ee44761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44761 ::bar(){vfunc_called(this, "_ZN7ee447613barEv");}
+ee44761 ::~ee44761(){ note_dtor("ee44761", this);} // tgen
+ee44761 ::ee44761(){ note_ctor("ee44761", this);} // tgen
+
+static void Test_ee44761()
+{
+ extern Class_Descriptor cd_ee44761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44761, buf);
+ ee44761 *dp, &lv = *(dp=new (buf) ee44761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee44761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(24,16), "ee44761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), 0, "ee44761");
+ check_base_class_offset(lv, (dd4761*), 0, "ee44761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44761.e");
+ test_class_info(&lv, &cd_ee44761);
+ dp->~ee44761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44761(Test_ee44761, "ee44761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44761C1Ev();
+extern void _ZN7ee44761D1Ev();
+Name_Map name_map_ee44761[] = {
+ NSPAIR(_ZN7ee44761C1Ev),
+ NSPAIR(_ZN7ee44761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee44761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN7ee447613barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee447613barEv,_ZTv0_n16_N7ee447613barEv)();
+extern void ABISELECT(_ZThn24_N7ee447613barEv,_ZThn16_N7ee447613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN7ee447613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447613barEv,_ZTv0_n16_N7ee447613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee44761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee44761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee44761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee44761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee44761[] = {
+ {&(_ZTV7ee44761[3]), 3,11},
+ {&(_tg__ZTV6dd4761__7ee44761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee44761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee44761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee44761[4]), 4,6},
+ {&(_ZTV7ee44761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44761[];
+extern VTBL_ENTRY _ZTV7ee44761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44761[];
+static VTBL_ENTRY alt_thunk_names900[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447613barEv,_ZTv0_n16_N7ee447613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447613barEv,_ZThn16_N7ee447613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44761 = { "ee44761", // class name
+ bases_ee44761, 4,
+ &(vtc_ee44761[0]), // expected_vtbl_contents
+ &(vtt_ee44761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44761),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 ee54761 : virtual dd4761 {
+ int e;
+ virtual void bar(); // _ZN7ee547613barEv
+ ~ee54761(); // tgen
+ ee54761(); // tgen
+};
+//SIG(1 ee54761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54761 ::bar(){vfunc_called(this, "_ZN7ee547613barEv");}
+ee54761 ::~ee54761(){ note_dtor("ee54761", this);} // tgen
+ee54761 ::ee54761(){ note_ctor("ee54761", this);} // tgen
+
+static void Test_ee54761()
+{
+ extern Class_Descriptor cd_ee54761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54761, buf);
+ ee54761 *dp, &lv = *(dp=new (buf) ee54761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee54761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(32,20), "ee54761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), ABISELECT(16,8), "ee54761");
+ check_base_class_offset(lv, (dd4761*), ABISELECT(16,8), "ee54761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54761.e");
+ test_class_info(&lv, &cd_ee54761);
+ dp->~ee54761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54761(Test_ee54761, "ee54761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54761C1Ev();
+extern void _ZN7ee54761D1Ev();
+Name_Map name_map_ee54761[] = {
+ NSPAIR(_ZN7ee54761C1Ev),
+ NSPAIR(_ZN7ee54761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee54761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, ABISELECT(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 _ZTI7ee54761[];
+extern void _ZN7ee547613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547613barEv,_ZTv0_n20_N7ee547613barEv)();
+extern void ABISELECT(_ZThn16_N7ee547613barEv,_ZThn8_N7ee547613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547613barEv,_ZTv0_n16_N7ee547613barEv)();
+extern void ABISELECT(_ZThn32_N7ee547613barEv,_ZThn20_N7ee547613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54761[0]),
+ (VTBL_ENTRY)&_ZN7ee547613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547613barEv,_ZTv0_n20_N7ee547613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547613barEv,_ZTv0_n16_N7ee547613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee54761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee54761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee54761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee54761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee54761[] = {
+ {&(_ZTV7ee54761[4]), 4,18},
+ {&(_ZTV7ee54761[10]), 10,18},
+ {&(_ZTV7ee54761[16]), 16,18},
+ {&(_tg__ZTV6dd4761__7ee54761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee54761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee54761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee54761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54761[];
+extern VTBL_ENTRY _ZTV7ee54761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54761[];
+static VTBL_ENTRY alt_thunk_names901[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547613barEv,_ZTv0_n16_N7ee547613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547613barEv,_ZThn20_N7ee547613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547613barEv,_ZTv0_n20_N7ee547613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547613barEv,_ZThn8_N7ee547613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54761 = { "ee54761", // class name
+ bases_ee54761, 4,
+ &(vtc_ee54761[0]), // expected_vtbl_contents
+ &(vtt_ee54761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54761),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 ee64761 : dd4761 {
+ int e;
+ virtual void foo(); // _ZN7ee647613fooEv
+ virtual void bar(); // _ZN7ee647613barEv
+ ~ee64761(); // tgen
+ ee64761(); // tgen
+};
+//SIG(1 ee64761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64761 ::foo(){vfunc_called(this, "_ZN7ee647613fooEv");}
+void ee64761 ::bar(){vfunc_called(this, "_ZN7ee647613barEv");}
+ee64761 ::~ee64761(){ note_dtor("ee64761", this);} // tgen
+ee64761 ::ee64761(){ note_ctor("ee64761", this);} // tgen
+
+static void Test_ee64761()
+{
+ extern Class_Descriptor cd_ee64761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64761, buf);
+ ee64761 *dp, &lv = *(dp=new (buf) ee64761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee64761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(24,16), "ee64761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), 0, "ee64761");
+ check_base_class_offset(lv, (dd4761*), 0, "ee64761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64761.e");
+ test_class_info(&lv, &cd_ee64761);
+ dp->~ee64761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64761(Test_ee64761, "ee64761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64761C1Ev();
+extern void _ZN7ee64761D1Ev();
+Name_Map name_map_ee64761[] = {
+ NSPAIR(_ZN7ee64761C1Ev),
+ NSPAIR(_ZN7ee64761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee64761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64761[];
+extern void _ZN7ee647613fooEv();
+extern void _ZN7ee647613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647613fooEv,_ZTv0_n12_N7ee647613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647613fooEv,_ZThn16_N7ee647613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647613barEv,_ZTv0_n16_N7ee647613barEv)();
+extern void ABISELECT(_ZThn24_N7ee647613barEv,_ZThn16_N7ee647613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64761[0]),
+ (VTBL_ENTRY)&_ZN7ee647613fooEv,
+ (VTBL_ENTRY)&_ZN7ee647613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647613fooEv,_ZTv0_n12_N7ee647613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647613barEv,_ZTv0_n16_N7ee647613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee64761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee64761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee64761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee64761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee64761[] = {
+ {&(_ZTV7ee64761[3]), 3,11},
+ {&(_tg__ZTV6dd4761__7ee64761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee64761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee64761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee64761[4]), 4,6},
+ {&(_ZTV7ee64761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64761[];
+extern VTBL_ENTRY _ZTV7ee64761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64761[];
+static VTBL_ENTRY alt_thunk_names902[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47613barEv,_ZThn16_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647613barEv,_ZTv0_n16_N7ee647613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647613barEv,_ZThn16_N7ee647613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647613fooEv,_ZTv0_n12_N7ee647613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647613fooEv,_ZThn16_N7ee647613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64761 = { "ee64761", // class name
+ bases_ee64761, 4,
+ &(vtc_ee64761[0]), // expected_vtbl_contents
+ &(vtt_ee64761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64761),6, //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 ee74761 : virtual dd4761 {
+ int e;
+ virtual void foo(); // _ZN7ee747613fooEv
+ virtual void bar(); // _ZN7ee747613barEv
+ ~ee74761(); // tgen
+ ee74761(); // tgen
+};
+//SIG(1 ee74761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74761 ::foo(){vfunc_called(this, "_ZN7ee747613fooEv");}
+void ee74761 ::bar(){vfunc_called(this, "_ZN7ee747613barEv");}
+ee74761 ::~ee74761(){ note_dtor("ee74761", this);} // tgen
+ee74761 ::ee74761(){ note_ctor("ee74761", this);} // tgen
+
+static void Test_ee74761()
+{
+ extern Class_Descriptor cd_ee74761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74761, buf);
+ ee74761 *dp, &lv = *(dp=new (buf) ee74761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee74761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd4761*), ABISELECT(32,20), "ee74761");
+ check_base_class_offset(lv, (cc761*)(dd4761*), ABISELECT(16,8), "ee74761");
+ check_base_class_offset(lv, (dd4761*), ABISELECT(16,8), "ee74761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74761.e");
+ test_class_info(&lv, &cd_ee74761);
+ dp->~ee74761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74761(Test_ee74761, "ee74761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74761C1Ev();
+extern void _ZN7ee74761D1Ev();
+Name_Map name_map_ee74761[] = {
+ NSPAIR(_ZN7ee74761C1Ev),
+ NSPAIR(_ZN7ee74761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd4761;
+extern VTBL_ENTRY _ZTI6dd4761[];
+extern VTBL_ENTRY _ZTV6dd4761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4761[];
+static Base_Class bases_ee74761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4761, ABISELECT(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 _ZTI7ee74761[];
+extern void _ZN7ee747613fooEv();
+extern void _ZN7ee747613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747613fooEv,_ZTv0_n16_N7ee747613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747613fooEv,_ZThn8_N7ee747613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747613barEv,_ZTv0_n20_N7ee747613barEv)();
+extern void ABISELECT(_ZThn16_N7ee747613barEv,_ZThn8_N7ee747613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747613fooEv,_ZTv0_n12_N7ee747613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747613fooEv,_ZThn20_N7ee747613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747613barEv,_ZTv0_n16_N7ee747613barEv)();
+extern void ABISELECT(_ZThn32_N7ee747613barEv,_ZThn20_N7ee747613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74761[0]),
+ (VTBL_ENTRY)&_ZN7ee747613fooEv,
+ (VTBL_ENTRY)&_ZN7ee747613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747613fooEv,_ZTv0_n16_N7ee747613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747613barEv,_ZTv0_n20_N7ee747613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747613fooEv,_ZTv0_n12_N7ee747613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747613barEv,_ZTv0_n16_N7ee747613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN6dd47613barEv();
+static VTBL_ENTRY _tg__ZTV6dd4761__7ee74761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN6dd47613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd4761__7ee74761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd4761__7ee74761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv)();
+extern void ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd4761__7ee74761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv),
+};
+static VTT_ENTRY vtt_ee74761[] = {
+ {&(_ZTV7ee74761[4]), 4,19},
+ {&(_ZTV7ee74761[11]), 11,19},
+ {&(_ZTV7ee74761[17]), 17,19},
+ {&(_tg__ZTV6dd4761__7ee74761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd4761__7ee74761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd4761__7ee74761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd4761__7ee74761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74761[];
+extern VTBL_ENTRY _ZTV7ee74761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74761[];
+static VTBL_ENTRY alt_thunk_names903[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47613barEv,_ZTv0_n16_N6dd47613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47613barEv,_ZThn12_N6dd47613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747613barEv,_ZTv0_n16_N7ee747613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747613barEv,_ZThn20_N7ee747613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747613fooEv,_ZTv0_n12_N7ee747613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747613fooEv,_ZThn20_N7ee747613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747613barEv,_ZTv0_n20_N7ee747613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747613barEv,_ZThn8_N7ee747613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747613fooEv,_ZTv0_n16_N7ee747613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747613fooEv,_ZThn8_N7ee747613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74761 = { "ee74761", // class name
+ bases_ee74761, 4,
+ &(vtc_ee74761[0]), // expected_vtbl_contents
+ &(vtt_ee74761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74761),7, //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 dd5761 : virtual cc761 {
+ int d;
+ virtual void bar(); // _ZN6dd57613barEv
+ ~dd5761(); // tgen
+ dd5761(); // tgen
+};
+//SIG(-1 dd5761) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5761 ::bar(){vfunc_called(this, "_ZN6dd57613barEv");}
+dd5761 ::~dd5761(){ note_dtor("dd5761", this);} // tgen
+dd5761 ::dd5761(){ note_ctor("dd5761", this);} // tgen
+
+static void Test_dd5761()
+{
+ extern Class_Descriptor cd_dd5761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5761, buf);
+ dd5761 *dp, &lv = *(dp=new (buf) dd5761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd5761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,16), "dd5761");
+ check_base_class_offset(lv, (cc761*), ABISELECT(16,8), "dd5761");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5761.d");
+ test_class_info(&lv, &cd_dd5761);
+ dp->~dd5761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5761(Test_dd5761, "dd5761", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5761C1Ev();
+extern void _ZN6dd5761D1Ev();
+Name_Map name_map_dd5761[] = {
+ NSPAIR(_ZN6dd5761C1Ev),
+ NSPAIR(_ZN6dd5761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd5761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(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 _ZTI6dd5761[];
+extern void _ZN6dd57613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd5761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd5761[] = {
+ {&(_ZTV6dd5761[4]), 4,18},
+ {&(_ZTV6dd5761[10]), 10,18},
+ {&(_ZTV6dd5761[16]), 16,18},
+ {&(_tg__ZTV5cc761__6dd5761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd5761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static VTBL_ENTRY alt_thunk_names904[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5761 = { "dd5761", // class name
+ bases_dd5761, 3,
+ &(vtc_dd5761[0]), // expected_vtbl_contents
+ &(vtt_dd5761[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5761),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names904,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05761 : dd5761 {
+ int e;
+ ~ee05761(); // tgen
+ ee05761(); // tgen
+};
+//SIG(1 ee05761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05761 ::~ee05761(){ note_dtor("ee05761", this);} // tgen
+ee05761 ::ee05761(){ note_ctor("ee05761", this);} // tgen
+
+static void Test_ee05761()
+{
+ extern Class_Descriptor cd_ee05761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05761, buf);
+ ee05761 *dp, &lv = *(dp=new (buf) ee05761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee05761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee05761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(16,12), "ee05761");
+ check_base_class_offset(lv, (dd5761*), 0, "ee05761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05761.e");
+ test_class_info(&lv, &cd_ee05761);
+ dp->~ee05761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05761(Test_ee05761, "ee05761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05761C1Ev();
+extern void _ZN7ee05761D1Ev();
+Name_Map name_map_ee05761[] = {
+ NSPAIR(_ZN7ee05761C1Ev),
+ NSPAIR(_ZN7ee05761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee05761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05761[];
+extern void _ZN6dd57613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee05761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee05761[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee05761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee05761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee05761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee05761[] = {
+ {&(_ZTV7ee05761[4]), 4,18},
+ {&(_tg__ZTV6dd5761__7ee05761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee05761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee05761[4]), 4,6},
+ {&(_ZTV7ee05761[10]), 10,18},
+ {&(_ZTV7ee05761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee05761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee05761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05761[];
+extern VTBL_ENTRY _ZTV7ee05761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05761[];
+static VTBL_ENTRY alt_thunk_names905[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05761 = { "ee05761", // class name
+ bases_ee05761, 4,
+ &(vtc_ee05761[0]), // expected_vtbl_contents
+ &(vtt_ee05761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05761),8, //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 ee15761 : virtual dd5761 {
+ int e;
+ ~ee15761(); // tgen
+ ee15761(); // tgen
+};
+//SIG(1 ee15761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15761 ::~ee15761(){ note_dtor("ee15761", this);} // tgen
+ee15761 ::ee15761(){ note_ctor("ee15761", this);} // tgen
+
+static void Test_ee15761()
+{
+ extern Class_Descriptor cd_ee15761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15761, buf);
+ ee15761 *dp, &lv = *(dp=new (buf) ee15761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee15761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee15761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(32,16), "ee15761");
+ check_base_class_offset(lv, (dd5761*), ABISELECT(16,8), "ee15761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15761.e");
+ test_class_info(&lv, &cd_ee15761);
+ dp->~ee15761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15761(Test_ee15761, "ee15761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15761C1Ev();
+extern void _ZN7ee15761D1Ev();
+Name_Map name_map_ee15761[] = {
+ NSPAIR(_ZN7ee15761C1Ev),
+ NSPAIR(_ZN7ee15761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee15761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, ABISELECT(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 _ZTI7ee15761[];
+extern void _ZN6dd57613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15761[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee15761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee15761[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee15761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee15761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee15761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee15761[] = {
+ {&(_ZTV7ee15761[5]), 5,24},
+ {&(_ZTV7ee15761[10]), 10,24},
+ {&(_ZTV7ee15761[16]), 16,24},
+ {&(_ZTV7ee15761[22]), 22,24},
+ {&(_tg__ZTV6dd5761__7ee15761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee15761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee15761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee15761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee15761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15761[];
+extern VTBL_ENTRY _ZTV7ee15761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15761[];
+static VTBL_ENTRY alt_thunk_names906[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15761 = { "ee15761", // class name
+ bases_ee15761, 4,
+ &(vtc_ee15761[0]), // expected_vtbl_contents
+ &(vtt_ee15761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15761),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15761),9, //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 ee25761 : dd5761 {
+ int e;
+ virtual void foo(); // _ZN7ee257613fooEv
+ ~ee25761(); // tgen
+ ee25761(); // tgen
+};
+//SIG(1 ee25761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25761 ::foo(){vfunc_called(this, "_ZN7ee257613fooEv");}
+ee25761 ::~ee25761(){ note_dtor("ee25761", this);} // tgen
+ee25761 ::ee25761(){ note_ctor("ee25761", this);} // tgen
+
+static void Test_ee25761()
+{
+ extern Class_Descriptor cd_ee25761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25761, buf);
+ ee25761 *dp, &lv = *(dp=new (buf) ee25761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee25761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee25761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(16,12), "ee25761");
+ check_base_class_offset(lv, (dd5761*), 0, "ee25761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25761.e");
+ test_class_info(&lv, &cd_ee25761);
+ dp->~ee25761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25761(Test_ee25761, "ee25761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25761C1Ev();
+extern void _ZN7ee25761D1Ev();
+Name_Map name_map_ee25761[] = {
+ NSPAIR(_ZN7ee25761C1Ev),
+ NSPAIR(_ZN7ee25761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee25761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25761[];
+extern void _ZN6dd57613barEv();
+extern void _ZN7ee257613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257613fooEv,_ZTv0_n16_N7ee257613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257613fooEv,_ZThn12_N7ee257613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257613fooEv,_ZTv0_n12_N7ee257613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257613fooEv,_ZThn20_N7ee257613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+ (VTBL_ENTRY)&_ZN7ee257613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257613fooEv,_ZTv0_n16_N7ee257613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257613fooEv,_ZTv0_n12_N7ee257613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee25761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee25761[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee25761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee25761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee25761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee25761[] = {
+ {&(_ZTV7ee25761[4]), 4,19},
+ {&(_tg__ZTV6dd5761__7ee25761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee25761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee25761[4]), 4,6},
+ {&(_ZTV7ee25761[11]), 11,19},
+ {&(_ZTV7ee25761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee25761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee25761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25761[];
+extern VTBL_ENTRY _ZTV7ee25761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25761[];
+static VTBL_ENTRY alt_thunk_names907[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257613fooEv,_ZTv0_n12_N7ee257613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257613fooEv,_ZThn20_N7ee257613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257613fooEv,_ZTv0_n16_N7ee257613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257613fooEv,_ZThn12_N7ee257613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25761 = { "ee25761", // class name
+ bases_ee25761, 4,
+ &(vtc_ee25761[0]), // expected_vtbl_contents
+ &(vtt_ee25761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25761),8, //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 ee35761 : virtual dd5761 {
+ int e;
+ virtual void foo(); // _ZN7ee357613fooEv
+ ~ee35761(); // tgen
+ ee35761(); // tgen
+};
+//SIG(1 ee35761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35761 ::foo(){vfunc_called(this, "_ZN7ee357613fooEv");}
+ee35761 ::~ee35761(){ note_dtor("ee35761", this);} // tgen
+ee35761 ::ee35761(){ note_ctor("ee35761", this);} // tgen
+
+static void Test_ee35761()
+{
+ extern Class_Descriptor cd_ee35761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35761, buf);
+ ee35761 *dp, &lv = *(dp=new (buf) ee35761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee35761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee35761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(32,16), "ee35761");
+ check_base_class_offset(lv, (dd5761*), ABISELECT(16,8), "ee35761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35761.e");
+ test_class_info(&lv, &cd_ee35761);
+ dp->~ee35761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35761(Test_ee35761, "ee35761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35761C1Ev();
+extern void _ZN7ee35761D1Ev();
+Name_Map name_map_ee35761[] = {
+ NSPAIR(_ZN7ee35761C1Ev),
+ NSPAIR(_ZN7ee35761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee35761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, ABISELECT(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 _ZTI7ee35761[];
+extern void _ZN7ee357613fooEv();
+extern void _ZN6dd57613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357613fooEv,_ZTv0_n16_N7ee357613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357613fooEv,_ZThn16_N7ee357613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357613fooEv,_ZTv0_n12_N7ee357613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357613fooEv,_ZThn24_N7ee357613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35761[0]),
+ (VTBL_ENTRY)&_ZN7ee357613fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357613fooEv,_ZTv0_n16_N7ee357613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357613fooEv,_ZTv0_n12_N7ee357613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee35761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee35761[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee35761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee35761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee35761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee35761[] = {
+ {&(_ZTV7ee35761[5]), 5,25},
+ {&(_ZTV7ee35761[11]), 11,25},
+ {&(_ZTV7ee35761[17]), 17,25},
+ {&(_ZTV7ee35761[23]), 23,25},
+ {&(_tg__ZTV6dd5761__7ee35761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee35761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee35761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee35761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee35761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35761[];
+extern VTBL_ENTRY _ZTV7ee35761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35761[];
+static VTBL_ENTRY alt_thunk_names908[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357613fooEv,_ZTv0_n12_N7ee357613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357613fooEv,_ZThn24_N7ee357613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357613fooEv,_ZTv0_n16_N7ee357613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357613fooEv,_ZThn16_N7ee357613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35761 = { "ee35761", // class name
+ bases_ee35761, 4,
+ &(vtc_ee35761[0]), // expected_vtbl_contents
+ &(vtt_ee35761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35761),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names908,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45761 : dd5761 {
+ int e;
+ virtual void bar(); // _ZN7ee457613barEv
+ ~ee45761(); // tgen
+ ee45761(); // tgen
+};
+//SIG(1 ee45761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45761 ::bar(){vfunc_called(this, "_ZN7ee457613barEv");}
+ee45761 ::~ee45761(){ note_dtor("ee45761", this);} // tgen
+ee45761 ::ee45761(){ note_ctor("ee45761", this);} // tgen
+
+static void Test_ee45761()
+{
+ extern Class_Descriptor cd_ee45761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45761, buf);
+ ee45761 *dp, &lv = *(dp=new (buf) ee45761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee45761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee45761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(16,12), "ee45761");
+ check_base_class_offset(lv, (dd5761*), 0, "ee45761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45761.e");
+ test_class_info(&lv, &cd_ee45761);
+ dp->~ee45761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45761(Test_ee45761, "ee45761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45761C1Ev();
+extern void _ZN7ee45761D1Ev();
+Name_Map name_map_ee45761[] = {
+ NSPAIR(_ZN7ee45761C1Ev),
+ NSPAIR(_ZN7ee45761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee45761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45761[];
+extern void _ZN7ee457613barEv();
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457613barEv,_ZTv0_n20_N7ee457613barEv)();
+extern void ABISELECT(_ZThn16_N7ee457613barEv,_ZThn12_N7ee457613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457613barEv,_ZTv0_n16_N7ee457613barEv)();
+extern void ABISELECT(_ZThn32_N7ee457613barEv,_ZThn20_N7ee457613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45761[0]),
+ (VTBL_ENTRY)&_ZN7ee457613barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457613barEv,_ZTv0_n20_N7ee457613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457613barEv,_ZTv0_n16_N7ee457613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee45761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee45761[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee45761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee45761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee45761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee45761[] = {
+ {&(_ZTV7ee45761[4]), 4,18},
+ {&(_tg__ZTV6dd5761__7ee45761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee45761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee45761[4]), 4,6},
+ {&(_ZTV7ee45761[10]), 10,18},
+ {&(_ZTV7ee45761[16]), 16,18},
+ {&(_tg__ZTV5cc761__7ee45761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee45761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45761[];
+extern VTBL_ENTRY _ZTV7ee45761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45761[];
+static VTBL_ENTRY alt_thunk_names909[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457613barEv,_ZTv0_n16_N7ee457613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457613barEv,_ZThn20_N7ee457613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457613barEv,_ZTv0_n20_N7ee457613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457613barEv,_ZThn12_N7ee457613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45761 = { "ee45761", // class name
+ bases_ee45761, 4,
+ &(vtc_ee45761[0]), // expected_vtbl_contents
+ &(vtt_ee45761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45761),8, //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 ee55761 : virtual dd5761 {
+ int e;
+ virtual void bar(); // _ZN7ee557613barEv
+ ~ee55761(); // tgen
+ ee55761(); // tgen
+};
+//SIG(1 ee55761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55761 ::bar(){vfunc_called(this, "_ZN7ee557613barEv");}
+ee55761 ::~ee55761(){ note_dtor("ee55761", this);} // tgen
+ee55761 ::ee55761(){ note_ctor("ee55761", this);} // tgen
+
+static void Test_ee55761()
+{
+ extern Class_Descriptor cd_ee55761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55761, buf);
+ ee55761 *dp, &lv = *(dp=new (buf) ee55761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee55761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee55761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(32,16), "ee55761");
+ check_base_class_offset(lv, (dd5761*), ABISELECT(16,8), "ee55761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55761.e");
+ test_class_info(&lv, &cd_ee55761);
+ dp->~ee55761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55761(Test_ee55761, "ee55761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55761C1Ev();
+extern void _ZN7ee55761D1Ev();
+Name_Map name_map_ee55761[] = {
+ NSPAIR(_ZN7ee55761C1Ev),
+ NSPAIR(_ZN7ee55761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee55761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, ABISELECT(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 _ZTI7ee55761[];
+extern void _ZN7ee557613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557613barEv,_ZTv0_n20_N7ee557613barEv)();
+extern void ABISELECT(_ZThn16_N7ee557613barEv,_ZThn8_N7ee557613barEv)() __attribute__((weak));
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557613barEv,_ZTv0_n20_N7ee557613barEv)();
+extern void ABISELECT(_ZThn32_N7ee557613barEv,_ZThn16_N7ee557613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557613barEv,_ZTv0_n16_N7ee557613barEv)();
+extern void ABISELECT(_ZThn48_N7ee557613barEv,_ZThn24_N7ee557613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55761[0]),
+ (VTBL_ENTRY)&_ZN7ee557613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557613barEv,_ZTv0_n20_N7ee557613barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557613barEv,_ZTv0_n20_N7ee557613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557613barEv,_ZTv0_n16_N7ee557613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee55761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee55761[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee55761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee55761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee55761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee55761[] = {
+ {&(_ZTV7ee55761[5]), 5,25},
+ {&(_ZTV7ee55761[11]), 11,25},
+ {&(_ZTV7ee55761[17]), 17,25},
+ {&(_ZTV7ee55761[23]), 23,25},
+ {&(_tg__ZTV6dd5761__7ee55761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee55761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee55761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee55761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee55761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55761[];
+extern VTBL_ENTRY _ZTV7ee55761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55761[];
+static VTBL_ENTRY alt_thunk_names910[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557613barEv,_ZTv0_n16_N7ee557613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557613barEv,_ZThn24_N7ee557613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557613barEv,_ZTv0_n20_N7ee557613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557613barEv,_ZThn16_N7ee557613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557613barEv,_ZThn8_N7ee557613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55761 = { "ee55761", // class name
+ bases_ee55761, 4,
+ &(vtc_ee55761[0]), // expected_vtbl_contents
+ &(vtt_ee55761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55761),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55761),9, //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 ee65761 : dd5761 {
+ int e;
+ virtual void foo(); // _ZN7ee657613fooEv
+ virtual void bar(); // _ZN7ee657613barEv
+ ~ee65761(); // tgen
+ ee65761(); // tgen
+};
+//SIG(1 ee65761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65761 ::foo(){vfunc_called(this, "_ZN7ee657613fooEv");}
+void ee65761 ::bar(){vfunc_called(this, "_ZN7ee657613barEv");}
+ee65761 ::~ee65761(){ note_dtor("ee65761", this);} // tgen
+ee65761 ::ee65761(){ note_ctor("ee65761", this);} // tgen
+
+static void Test_ee65761()
+{
+ extern Class_Descriptor cd_ee65761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65761, buf);
+ ee65761 *dp, &lv = *(dp=new (buf) ee65761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee65761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee65761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(16,12), "ee65761");
+ check_base_class_offset(lv, (dd5761*), 0, "ee65761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65761.e");
+ test_class_info(&lv, &cd_ee65761);
+ dp->~ee65761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65761(Test_ee65761, "ee65761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65761C1Ev();
+extern void _ZN7ee65761D1Ev();
+Name_Map name_map_ee65761[] = {
+ NSPAIR(_ZN7ee65761C1Ev),
+ NSPAIR(_ZN7ee65761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee65761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65761[];
+extern void _ZN7ee657613barEv();
+extern void _ZN7ee657613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657613fooEv,_ZTv0_n16_N7ee657613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657613fooEv,_ZThn12_N7ee657613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657613barEv,_ZTv0_n20_N7ee657613barEv)();
+extern void ABISELECT(_ZThn16_N7ee657613barEv,_ZThn12_N7ee657613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657613fooEv,_ZTv0_n12_N7ee657613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657613fooEv,_ZThn20_N7ee657613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657613barEv,_ZTv0_n16_N7ee657613barEv)();
+extern void ABISELECT(_ZThn32_N7ee657613barEv,_ZThn20_N7ee657613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65761[0]),
+ (VTBL_ENTRY)&_ZN7ee657613barEv,
+ (VTBL_ENTRY)&_ZN7ee657613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657613fooEv,_ZTv0_n16_N7ee657613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657613barEv,_ZTv0_n20_N7ee657613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657613fooEv,_ZTv0_n12_N7ee657613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657613barEv,_ZTv0_n16_N7ee657613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee65761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee65761[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee65761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee65761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee65761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee65761[] = {
+ {&(_ZTV7ee65761[4]), 4,19},
+ {&(_tg__ZTV6dd5761__7ee65761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee65761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee65761[4]), 4,6},
+ {&(_ZTV7ee65761[11]), 11,19},
+ {&(_ZTV7ee65761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee65761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee65761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65761[];
+extern VTBL_ENTRY _ZTV7ee65761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65761[];
+static VTBL_ENTRY alt_thunk_names911[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn20_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn12_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657613barEv,_ZTv0_n16_N7ee657613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657613barEv,_ZThn20_N7ee657613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657613fooEv,_ZTv0_n12_N7ee657613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657613fooEv,_ZThn20_N7ee657613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657613barEv,_ZTv0_n20_N7ee657613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657613barEv,_ZThn12_N7ee657613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657613fooEv,_ZTv0_n16_N7ee657613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657613fooEv,_ZThn12_N7ee657613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65761 = { "ee65761", // class name
+ bases_ee65761, 4,
+ &(vtc_ee65761[0]), // expected_vtbl_contents
+ &(vtt_ee65761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65761),8, //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 ee75761 : virtual dd5761 {
+ int e;
+ virtual void foo(); // _ZN7ee757613fooEv
+ virtual void bar(); // _ZN7ee757613barEv
+ ~ee75761(); // tgen
+ ee75761(); // tgen
+};
+//SIG(1 ee75761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75761 ::foo(){vfunc_called(this, "_ZN7ee757613fooEv");}
+void ee75761 ::bar(){vfunc_called(this, "_ZN7ee757613barEv");}
+ee75761 ::~ee75761(){ note_dtor("ee75761", this);} // tgen
+ee75761 ::ee75761(){ note_ctor("ee75761", this);} // tgen
+
+static void Test_ee75761()
+{
+ extern Class_Descriptor cd_ee75761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75761, buf);
+ ee75761 *dp, &lv = *(dp=new (buf) ee75761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee75761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee75761");
+ check_base_class_offset(lv, (cc761*)(dd5761*), ABISELECT(32,16), "ee75761");
+ check_base_class_offset(lv, (dd5761*), ABISELECT(16,8), "ee75761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75761.e");
+ test_class_info(&lv, &cd_ee75761);
+ dp->~ee75761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75761(Test_ee75761, "ee75761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75761C1Ev();
+extern void _ZN7ee75761D1Ev();
+Name_Map name_map_ee75761[] = {
+ NSPAIR(_ZN7ee75761C1Ev),
+ NSPAIR(_ZN7ee75761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd5761;
+extern VTBL_ENTRY _ZTI6dd5761[];
+extern VTBL_ENTRY _ZTV6dd5761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5761[];
+static Base_Class bases_ee75761[] = {
+ // 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_bb61, 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_cc761, 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_dd5761, 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 _ZTI7ee75761[];
+extern void _ZN7ee757613fooEv();
+extern void _ZN7ee757613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757613barEv,_ZTv0_n20_N7ee757613barEv)();
+extern void ABISELECT(_ZThn16_N7ee757613barEv,_ZThn8_N7ee757613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757613fooEv,_ZTv0_n16_N7ee757613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757613fooEv,_ZThn16_N7ee757613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757613barEv,_ZTv0_n20_N7ee757613barEv)();
+extern void ABISELECT(_ZThn32_N7ee757613barEv,_ZThn16_N7ee757613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757613fooEv,_ZTv0_n12_N7ee757613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757613fooEv,_ZThn24_N7ee757613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757613barEv,_ZTv0_n16_N7ee757613barEv)();
+extern void ABISELECT(_ZThn48_N7ee757613barEv,_ZThn24_N7ee757613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75761[0]),
+ (VTBL_ENTRY)&_ZN7ee757613fooEv,
+ (VTBL_ENTRY)&_ZN7ee757613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757613barEv,_ZTv0_n20_N7ee757613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757613fooEv,_ZTv0_n16_N7ee757613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757613barEv,_ZTv0_n20_N7ee757613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757613fooEv,_ZTv0_n12_N7ee757613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757613barEv,_ZTv0_n16_N7ee757613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75761[];
+extern void _ZN6dd57613barEv();
+static VTBL_ENTRY _tg__ZTV6dd5761__7ee75761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN6dd57613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv)();
+extern void ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd5761__7ee75761[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv)();
+extern void ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd5761__7ee75761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee75761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee75761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee75761[] = {
+ {&(_ZTV7ee75761[5]), 5,26},
+ {&(_ZTV7ee75761[12]), 12,26},
+ {&(_ZTV7ee75761[18]), 18,26},
+ {&(_ZTV7ee75761[24]), 24,26},
+ {&(_tg__ZTV6dd5761__7ee75761[4]), 4,5},
+ {&(_tg__ZTV5cc761__6dd5761__7ee75761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd5761__7ee75761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee75761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee75761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75761[];
+extern VTBL_ENTRY _ZTV7ee75761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75761[];
+static VTBL_ENTRY alt_thunk_names912[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57613barEv,_ZTv0_n16_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57613barEv,_ZThn16_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57613barEv,_ZTv0_n20_N6dd57613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57613barEv,_ZThn8_N6dd57613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757613barEv,_ZTv0_n16_N7ee757613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757613barEv,_ZThn24_N7ee757613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757613fooEv,_ZTv0_n12_N7ee757613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757613fooEv,_ZThn24_N7ee757613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757613fooEv,_ZTv0_n16_N7ee757613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757613fooEv,_ZThn16_N7ee757613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757613barEv,_ZTv0_n20_N7ee757613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757613barEv,_ZThn16_N7ee757613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757613barEv,_ZThn8_N7ee757613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75761 = { "ee75761", // class name
+ bases_ee75761, 4,
+ &(vtc_ee75761[0]), // expected_vtbl_contents
+ &(vtt_ee75761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75761),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75761),9, //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 dd6761 : cc761 {
+ int d;
+ virtual void bar(); // _ZN6dd67613barEv
+ virtual void foo(); // _ZN6dd67613fooEv
+ ~dd6761(); // tgen
+ dd6761(); // tgen
+};
+//SIG(-1 dd6761) C1{ BC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6761 ::bar(){vfunc_called(this, "_ZN6dd67613barEv");}
+void dd6761 ::foo(){vfunc_called(this, "_ZN6dd67613fooEv");}
+dd6761 ::~dd6761(){ note_dtor("dd6761", this);} // tgen
+dd6761 ::dd6761(){ note_ctor("dd6761", this);} // tgen
+
+static void Test_dd6761()
+{
+ extern Class_Descriptor cd_dd6761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6761, buf);
+ dd6761 *dp, &lv = *(dp=new (buf) dd6761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(16,12), "dd6761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(16,12), "dd6761");
+ check_base_class_offset(lv, (cc761*), 0, "dd6761");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6761.d");
+ test_class_info(&lv, &cd_dd6761);
+ dp->~dd6761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6761(Test_dd6761, "dd6761", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6761C1Ev();
+extern void _ZN6dd6761D1Ev();
+Name_Map name_map_dd6761[] = {
+ NSPAIR(_ZN6dd6761C1Ev),
+ NSPAIR(_ZN6dd6761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd6761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd6761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd6761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd6761[] = {
+ {&(_ZTV6dd6761[3]), 3,11},
+ {&(_tg__ZTV5cc761__6dd6761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd6761[4]), 4,6},
+ {&(_ZTV6dd6761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static VTBL_ENTRY alt_thunk_names913[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6761 = { "dd6761", // class name
+ bases_dd6761, 3,
+ &(vtc_dd6761[0]), // expected_vtbl_contents
+ &(vtt_dd6761[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6761),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names913,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06761 : dd6761 {
+ int e;
+ ~ee06761(); // tgen
+ ee06761(); // tgen
+};
+//SIG(1 ee06761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06761 ::~ee06761(){ note_dtor("ee06761", this);} // tgen
+ee06761 ::ee06761(){ note_ctor("ee06761", this);} // tgen
+
+static void Test_ee06761()
+{
+ extern Class_Descriptor cd_ee06761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06761, buf);
+ ee06761 *dp, &lv = *(dp=new (buf) ee06761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee06761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(24,16), "ee06761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), 0, "ee06761");
+ check_base_class_offset(lv, (dd6761*), 0, "ee06761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06761.e");
+ test_class_info(&lv, &cd_ee06761);
+ dp->~ee06761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06761(Test_ee06761, "ee06761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06761C1Ev();
+extern void _ZN7ee06761D1Ev();
+Name_Map name_map_ee06761[] = {
+ NSPAIR(_ZN7ee06761C1Ev),
+ NSPAIR(_ZN7ee06761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee06761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee06761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee06761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee06761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee06761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee06761[] = {
+ {&(_ZTV7ee06761[3]), 3,11},
+ {&(_tg__ZTV6dd6761__7ee06761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee06761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee06761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee06761[4]), 4,6},
+ {&(_ZTV7ee06761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06761[];
+extern VTBL_ENTRY _ZTV7ee06761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06761[];
+static VTBL_ENTRY alt_thunk_names914[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06761 = { "ee06761", // class name
+ bases_ee06761, 4,
+ &(vtc_ee06761[0]), // expected_vtbl_contents
+ &(vtt_ee06761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06761),6, //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 ee16761 : virtual dd6761 {
+ int e;
+ ~ee16761(); // tgen
+ ee16761(); // tgen
+};
+//SIG(1 ee16761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16761 ::~ee16761(){ note_dtor("ee16761", this);} // tgen
+ee16761 ::ee16761(){ note_ctor("ee16761", this);} // tgen
+
+static void Test_ee16761()
+{
+ extern Class_Descriptor cd_ee16761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16761, buf);
+ ee16761 *dp, &lv = *(dp=new (buf) ee16761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee16761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(32,20), "ee16761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), ABISELECT(16,8), "ee16761");
+ check_base_class_offset(lv, (dd6761*), ABISELECT(16,8), "ee16761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16761.e");
+ test_class_info(&lv, &cd_ee16761);
+ dp->~ee16761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16761(Test_ee16761, "ee16761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16761C1Ev();
+extern void _ZN7ee16761D1Ev();
+Name_Map name_map_ee16761[] = {
+ NSPAIR(_ZN7ee16761C1Ev),
+ NSPAIR(_ZN7ee16761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee16761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, 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 _ZTI7ee16761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16761[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee16761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee16761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee16761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee16761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee16761[] = {
+ {&(_ZTV7ee16761[4]), 4,17},
+ {&(_ZTV7ee16761[9]), 9,17},
+ {&(_ZTV7ee16761[15]), 15,17},
+ {&(_tg__ZTV6dd6761__7ee16761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee16761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee16761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee16761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16761[];
+extern VTBL_ENTRY _ZTV7ee16761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16761[];
+static VTBL_ENTRY alt_thunk_names915[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16761 = { "ee16761", // class name
+ bases_ee16761, 4,
+ &(vtc_ee16761[0]), // expected_vtbl_contents
+ &(vtt_ee16761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16761),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16761),7, //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 ee26761 : dd6761 {
+ int e;
+ virtual void foo(); // _ZN7ee267613fooEv
+ ~ee26761(); // tgen
+ ee26761(); // tgen
+};
+//SIG(1 ee26761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26761 ::foo(){vfunc_called(this, "_ZN7ee267613fooEv");}
+ee26761 ::~ee26761(){ note_dtor("ee26761", this);} // tgen
+ee26761 ::ee26761(){ note_ctor("ee26761", this);} // tgen
+
+static void Test_ee26761()
+{
+ extern Class_Descriptor cd_ee26761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26761, buf);
+ ee26761 *dp, &lv = *(dp=new (buf) ee26761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee26761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(24,16), "ee26761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), 0, "ee26761");
+ check_base_class_offset(lv, (dd6761*), 0, "ee26761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26761.e");
+ test_class_info(&lv, &cd_ee26761);
+ dp->~ee26761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26761(Test_ee26761, "ee26761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26761C1Ev();
+extern void _ZN7ee26761D1Ev();
+Name_Map name_map_ee26761[] = {
+ NSPAIR(_ZN7ee26761C1Ev),
+ NSPAIR(_ZN7ee26761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee26761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26761[];
+extern void _ZN7ee267613fooEv();
+extern void _ZN6dd67613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267613fooEv,_ZTv0_n12_N7ee267613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267613fooEv,_ZThn16_N7ee267613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26761[0]),
+ (VTBL_ENTRY)&_ZN7ee267613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267613fooEv,_ZTv0_n12_N7ee267613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee26761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee26761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee26761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee26761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee26761[] = {
+ {&(_ZTV7ee26761[3]), 3,11},
+ {&(_tg__ZTV6dd6761__7ee26761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee26761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee26761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee26761[4]), 4,6},
+ {&(_ZTV7ee26761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26761[];
+extern VTBL_ENTRY _ZTV7ee26761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26761[];
+static VTBL_ENTRY alt_thunk_names916[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267613fooEv,_ZTv0_n12_N7ee267613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267613fooEv,_ZThn16_N7ee267613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26761 = { "ee26761", // class name
+ bases_ee26761, 4,
+ &(vtc_ee26761[0]), // expected_vtbl_contents
+ &(vtt_ee26761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26761),6, //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 ee36761 : virtual dd6761 {
+ int e;
+ virtual void foo(); // _ZN7ee367613fooEv
+ ~ee36761(); // tgen
+ ee36761(); // tgen
+};
+//SIG(1 ee36761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36761 ::foo(){vfunc_called(this, "_ZN7ee367613fooEv");}
+ee36761 ::~ee36761(){ note_dtor("ee36761", this);} // tgen
+ee36761 ::ee36761(){ note_ctor("ee36761", this);} // tgen
+
+static void Test_ee36761()
+{
+ extern Class_Descriptor cd_ee36761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36761, buf);
+ ee36761 *dp, &lv = *(dp=new (buf) ee36761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee36761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(32,20), "ee36761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), ABISELECT(16,8), "ee36761");
+ check_base_class_offset(lv, (dd6761*), ABISELECT(16,8), "ee36761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36761.e");
+ test_class_info(&lv, &cd_ee36761);
+ dp->~ee36761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36761(Test_ee36761, "ee36761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36761C1Ev();
+extern void _ZN7ee36761D1Ev();
+Name_Map name_map_ee36761[] = {
+ NSPAIR(_ZN7ee36761C1Ev),
+ NSPAIR(_ZN7ee36761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee36761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, ABISELECT(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 _ZTI7ee36761[];
+extern void _ZN7ee367613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367613fooEv,_ZTv0_n16_N7ee367613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367613fooEv,_ZThn8_N7ee367613fooEv)() __attribute__((weak));
+extern void _ZN6dd67613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367613fooEv,_ZTv0_n12_N7ee367613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367613fooEv,_ZThn20_N7ee367613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36761[0]),
+ (VTBL_ENTRY)&_ZN7ee367613fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367613fooEv,_ZTv0_n16_N7ee367613fooEv),
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367613fooEv,_ZTv0_n12_N7ee367613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee36761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee36761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee36761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee36761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee36761[] = {
+ {&(_ZTV7ee36761[4]), 4,18},
+ {&(_ZTV7ee36761[10]), 10,18},
+ {&(_ZTV7ee36761[16]), 16,18},
+ {&(_tg__ZTV6dd6761__7ee36761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee36761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee36761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee36761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36761[];
+extern VTBL_ENTRY _ZTV7ee36761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36761[];
+static VTBL_ENTRY alt_thunk_names917[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367613fooEv,_ZTv0_n12_N7ee367613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367613fooEv,_ZThn20_N7ee367613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367613fooEv,_ZTv0_n16_N7ee367613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367613fooEv,_ZThn8_N7ee367613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36761 = { "ee36761", // class name
+ bases_ee36761, 4,
+ &(vtc_ee36761[0]), // expected_vtbl_contents
+ &(vtt_ee36761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36761),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names917,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46761 : dd6761 {
+ int e;
+ virtual void bar(); // _ZN7ee467613barEv
+ ~ee46761(); // tgen
+ ee46761(); // tgen
+};
+//SIG(1 ee46761) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46761 ::bar(){vfunc_called(this, "_ZN7ee467613barEv");}
+ee46761 ::~ee46761(){ note_dtor("ee46761", this);} // tgen
+ee46761 ::ee46761(){ note_ctor("ee46761", this);} // tgen
+
+static void Test_ee46761()
+{
+ extern Class_Descriptor cd_ee46761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46761, buf);
+ ee46761 *dp, &lv = *(dp=new (buf) ee46761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee46761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(24,16), "ee46761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), 0, "ee46761");
+ check_base_class_offset(lv, (dd6761*), 0, "ee46761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46761.e");
+ test_class_info(&lv, &cd_ee46761);
+ dp->~ee46761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46761(Test_ee46761, "ee46761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46761C1Ev();
+extern void _ZN7ee46761D1Ev();
+Name_Map name_map_ee46761[] = {
+ NSPAIR(_ZN7ee46761C1Ev),
+ NSPAIR(_ZN7ee46761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee46761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN7ee467613barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee467613barEv,_ZTv0_n16_N7ee467613barEv)();
+extern void ABISELECT(_ZThn24_N7ee467613barEv,_ZThn16_N7ee467613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN7ee467613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467613barEv,_ZTv0_n16_N7ee467613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee46761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee46761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee46761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee46761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee46761[] = {
+ {&(_ZTV7ee46761[3]), 3,11},
+ {&(_tg__ZTV6dd6761__7ee46761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee46761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee46761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee46761[4]), 4,6},
+ {&(_ZTV7ee46761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46761[];
+extern VTBL_ENTRY _ZTV7ee46761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46761[];
+static VTBL_ENTRY alt_thunk_names918[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467613barEv,_ZTv0_n16_N7ee467613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467613barEv,_ZThn16_N7ee467613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46761 = { "ee46761", // class name
+ bases_ee46761, 4,
+ &(vtc_ee46761[0]), // expected_vtbl_contents
+ &(vtt_ee46761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46761),6, //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 ee56761 : virtual dd6761 {
+ int e;
+ virtual void bar(); // _ZN7ee567613barEv
+ ~ee56761(); // tgen
+ ee56761(); // tgen
+};
+//SIG(1 ee56761) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56761 ::bar(){vfunc_called(this, "_ZN7ee567613barEv");}
+ee56761 ::~ee56761(){ note_dtor("ee56761", this);} // tgen
+ee56761 ::ee56761(){ note_ctor("ee56761", this);} // tgen
+
+static void Test_ee56761()
+{
+ extern Class_Descriptor cd_ee56761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56761, buf);
+ ee56761 *dp, &lv = *(dp=new (buf) ee56761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee56761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(32,20), "ee56761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), ABISELECT(16,8), "ee56761");
+ check_base_class_offset(lv, (dd6761*), ABISELECT(16,8), "ee56761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56761.e");
+ test_class_info(&lv, &cd_ee56761);
+ dp->~ee56761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56761(Test_ee56761, "ee56761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56761C1Ev();
+extern void _ZN7ee56761D1Ev();
+Name_Map name_map_ee56761[] = {
+ NSPAIR(_ZN7ee56761C1Ev),
+ NSPAIR(_ZN7ee56761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee56761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, ABISELECT(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 _ZTI7ee56761[];
+extern void _ZN7ee567613barEv();
+extern void _ZN6dd67613fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567613barEv,_ZTv0_n20_N7ee567613barEv)();
+extern void ABISELECT(_ZThn16_N7ee567613barEv,_ZThn8_N7ee567613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567613barEv,_ZTv0_n16_N7ee567613barEv)();
+extern void ABISELECT(_ZThn32_N7ee567613barEv,_ZThn20_N7ee567613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56761[0]),
+ (VTBL_ENTRY)&_ZN7ee567613barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567613barEv,_ZTv0_n20_N7ee567613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567613barEv,_ZTv0_n16_N7ee567613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee56761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee56761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee56761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee56761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee56761[] = {
+ {&(_ZTV7ee56761[4]), 4,18},
+ {&(_ZTV7ee56761[10]), 10,18},
+ {&(_ZTV7ee56761[16]), 16,18},
+ {&(_tg__ZTV6dd6761__7ee56761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee56761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee56761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee56761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56761[];
+extern VTBL_ENTRY _ZTV7ee56761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56761[];
+static VTBL_ENTRY alt_thunk_names919[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567613barEv,_ZTv0_n16_N7ee567613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567613barEv,_ZThn20_N7ee567613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567613barEv,_ZTv0_n20_N7ee567613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567613barEv,_ZThn8_N7ee567613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56761 = { "ee56761", // class name
+ bases_ee56761, 4,
+ &(vtc_ee56761[0]), // expected_vtbl_contents
+ &(vtt_ee56761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56761),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56761),7, //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 ee66761 : dd6761 {
+ int e;
+ virtual void foo(); // _ZN7ee667613fooEv
+ virtual void bar(); // _ZN7ee667613barEv
+ ~ee66761(); // tgen
+ ee66761(); // tgen
+};
+//SIG(1 ee66761) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66761 ::foo(){vfunc_called(this, "_ZN7ee667613fooEv");}
+void ee66761 ::bar(){vfunc_called(this, "_ZN7ee667613barEv");}
+ee66761 ::~ee66761(){ note_dtor("ee66761", this);} // tgen
+ee66761 ::ee66761(){ note_ctor("ee66761", this);} // tgen
+
+static void Test_ee66761()
+{
+ extern Class_Descriptor cd_ee66761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66761, buf);
+ ee66761 *dp, &lv = *(dp=new (buf) ee66761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(24,16), "ee66761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(24,16), "ee66761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), 0, "ee66761");
+ check_base_class_offset(lv, (dd6761*), 0, "ee66761");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66761.e");
+ test_class_info(&lv, &cd_ee66761);
+ dp->~ee66761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66761(Test_ee66761, "ee66761", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66761C1Ev();
+extern void _ZN7ee66761D1Ev();
+Name_Map name_map_ee66761[] = {
+ NSPAIR(_ZN7ee66761C1Ev),
+ NSPAIR(_ZN7ee66761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee66761[] = {
+ // 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_bb61, 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_cc761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66761[];
+extern void _ZN7ee667613fooEv();
+extern void _ZN7ee667613barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667613fooEv,_ZTv0_n12_N7ee667613fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667613fooEv,_ZThn16_N7ee667613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667613barEv,_ZTv0_n16_N7ee667613barEv)();
+extern void ABISELECT(_ZThn24_N7ee667613barEv,_ZThn16_N7ee667613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66761[0]),
+ (VTBL_ENTRY)&_ZN7ee667613fooEv,
+ (VTBL_ENTRY)&_ZN7ee667613barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667613fooEv,_ZTv0_n12_N7ee667613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667613barEv,_ZTv0_n16_N7ee667613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee66761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee66761[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee66761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee66761[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee66761[] = {
+ {&(_ZTV7ee66761[3]), 3,11},
+ {&(_tg__ZTV6dd6761__7ee66761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee66761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee66761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee66761[4]), 4,6},
+ {&(_ZTV7ee66761[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66761[];
+extern VTBL_ENTRY _ZTV7ee66761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66761[];
+static VTBL_ENTRY alt_thunk_names920[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613barEv,_ZThn16_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67613fooEv,_ZThn16_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613barEv,_ZThn16_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7613fooEv,_ZThn16_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667613barEv,_ZTv0_n16_N7ee667613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667613barEv,_ZThn16_N7ee667613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667613fooEv,_ZTv0_n12_N7ee667613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667613fooEv,_ZThn16_N7ee667613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66761 = { "ee66761", // class name
+ bases_ee66761, 4,
+ &(vtc_ee66761[0]), // expected_vtbl_contents
+ &(vtt_ee66761[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66761),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66761),6, //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 ee76761 : virtual dd6761 {
+ int e;
+ virtual void foo(); // _ZN7ee767613fooEv
+ virtual void bar(); // _ZN7ee767613barEv
+ ~ee76761(); // tgen
+ ee76761(); // tgen
+};
+//SIG(1 ee76761) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76761 ::foo(){vfunc_called(this, "_ZN7ee767613fooEv");}
+void ee76761 ::bar(){vfunc_called(this, "_ZN7ee767613barEv");}
+ee76761 ::~ee76761(){ note_dtor("ee76761", this);} // tgen
+ee76761 ::ee76761(){ note_ctor("ee76761", this);} // tgen
+
+static void Test_ee76761()
+{
+ extern Class_Descriptor cd_ee76761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76761, buf);
+ ee76761 *dp, &lv = *(dp=new (buf) ee76761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee76761");
+ check_base_class_offset(lv, (bb61*)(cc761*)(dd6761*), ABISELECT(32,20), "ee76761");
+ check_base_class_offset(lv, (cc761*)(dd6761*), ABISELECT(16,8), "ee76761");
+ check_base_class_offset(lv, (dd6761*), ABISELECT(16,8), "ee76761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76761.e");
+ test_class_info(&lv, &cd_ee76761);
+ dp->~ee76761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76761(Test_ee76761, "ee76761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76761C1Ev();
+extern void _ZN7ee76761D1Ev();
+Name_Map name_map_ee76761[] = {
+ NSPAIR(_ZN7ee76761C1Ev),
+ NSPAIR(_ZN7ee76761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd6761;
+extern VTBL_ENTRY _ZTI6dd6761[];
+extern VTBL_ENTRY _ZTV6dd6761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6761[];
+static Base_Class bases_ee76761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6761, ABISELECT(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 _ZTI7ee76761[];
+extern void _ZN7ee767613fooEv();
+extern void _ZN7ee767613barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767613fooEv,_ZTv0_n16_N7ee767613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767613fooEv,_ZThn8_N7ee767613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767613barEv,_ZTv0_n20_N7ee767613barEv)();
+extern void ABISELECT(_ZThn16_N7ee767613barEv,_ZThn8_N7ee767613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767613fooEv,_ZTv0_n12_N7ee767613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767613fooEv,_ZThn20_N7ee767613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767613barEv,_ZTv0_n16_N7ee767613barEv)();
+extern void ABISELECT(_ZThn32_N7ee767613barEv,_ZThn20_N7ee767613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76761[0]),
+ (VTBL_ENTRY)&_ZN7ee767613fooEv,
+ (VTBL_ENTRY)&_ZN7ee767613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767613fooEv,_ZTv0_n16_N7ee767613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767613barEv,_ZTv0_n20_N7ee767613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767613fooEv,_ZTv0_n12_N7ee767613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767613barEv,_ZTv0_n16_N7ee767613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76761[];
+extern void _ZN6dd67613fooEv();
+extern void _ZN6dd67613barEv();
+static VTBL_ENTRY _tg__ZTV6dd6761__7ee76761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&_ZN6dd67613fooEv,
+ (VTBL_ENTRY)&_ZN6dd67613barEv,
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc7616dd6761__7ee76761[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc7616dd6761__7ee76761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv)();
+extern void ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd6761__7ee76761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv),
+};
+static VTT_ENTRY vtt_ee76761[] = {
+ {&(_ZTV7ee76761[4]), 4,19},
+ {&(_ZTV7ee76761[11]), 11,19},
+ {&(_ZTV7ee76761[17]), 17,19},
+ {&(_tg__ZTV6dd6761__7ee76761[3]), 3,5},
+ {&(_tg__ZTV5cc7616dd6761__7ee76761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc7616dd6761__7ee76761[4]), 4,6},
+ {&(_tg__ZTV4bb61__6dd6761__7ee76761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76761[];
+extern VTBL_ENTRY _ZTV7ee76761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76761[];
+static VTBL_ENTRY alt_thunk_names921[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67613barEv,_ZTv0_n16_N6dd67613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613barEv,_ZThn12_N6dd67613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67613fooEv,_ZTv0_n12_N6dd67613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67613fooEv,_ZThn12_N6dd67613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn12_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn12_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767613barEv,_ZTv0_n16_N7ee767613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767613barEv,_ZThn20_N7ee767613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767613fooEv,_ZTv0_n12_N7ee767613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767613fooEv,_ZThn20_N7ee767613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767613barEv,_ZTv0_n20_N7ee767613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767613barEv,_ZThn8_N7ee767613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767613fooEv,_ZTv0_n16_N7ee767613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767613fooEv,_ZThn8_N7ee767613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76761 = { "ee76761", // class name
+ bases_ee76761, 4,
+ &(vtc_ee76761[0]), // expected_vtbl_contents
+ &(vtt_ee76761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76761),7, //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 dd7761 : virtual cc761 {
+ int d;
+ virtual void bar(); // _ZN6dd77613barEv
+ virtual void foo(); // _ZN6dd77613fooEv
+ ~dd7761(); // tgen
+ dd7761(); // tgen
+};
+//SIG(-1 dd7761) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7761 ::bar(){vfunc_called(this, "_ZN6dd77613barEv");}
+void dd7761 ::foo(){vfunc_called(this, "_ZN6dd77613fooEv");}
+dd7761 ::~dd7761(){ note_dtor("dd7761", this);} // tgen
+dd7761 ::dd7761(){ note_ctor("dd7761", this);} // tgen
+
+static void Test_dd7761()
+{
+ extern Class_Descriptor cd_dd7761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7761, buf);
+ dd7761 *dp, &lv = *(dp=new (buf) dd7761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,16), "dd7761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,16), "dd7761");
+ check_base_class_offset(lv, (cc761*), ABISELECT(16,8), "dd7761");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7761.d");
+ test_class_info(&lv, &cd_dd7761);
+ dp->~dd7761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7761(Test_dd7761, "dd7761", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7761C1Ev();
+extern void _ZN6dd7761D1Ev();
+Name_Map name_map_dd7761[] = {
+ NSPAIR(_ZN6dd7761C1Ev),
+ NSPAIR(_ZN6dd7761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+static Base_Class bases_dd7761[] = {
+ // 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_bb61, 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_cc761, ABISELECT(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 _ZTI6dd7761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__6dd7761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_dd7761[] = {
+ {&(_ZTV6dd7761[4]), 4,19},
+ {&(_ZTV6dd7761[11]), 11,19},
+ {&(_ZTV6dd7761[17]), 17,19},
+ {&(_tg__ZTV5cc761__6dd7761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__6dd7761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static VTBL_ENTRY alt_thunk_names922[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7761 = { "dd7761", // class name
+ bases_dd7761, 3,
+ &(vtc_dd7761[0]), // expected_vtbl_contents
+ &(vtt_dd7761[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7761),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names922,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07761 : dd7761 {
+ int e;
+ ~ee07761(); // tgen
+ ee07761(); // tgen
+};
+//SIG(1 ee07761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07761 ::~ee07761(){ note_dtor("ee07761", this);} // tgen
+ee07761 ::ee07761(){ note_ctor("ee07761", this);} // tgen
+
+static void Test_ee07761()
+{
+ extern Class_Descriptor cd_ee07761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07761, buf);
+ ee07761 *dp, &lv = *(dp=new (buf) ee07761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee07761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee07761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(16,12), "ee07761");
+ check_base_class_offset(lv, (dd7761*), 0, "ee07761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07761.e");
+ test_class_info(&lv, &cd_ee07761);
+ dp->~ee07761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07761(Test_ee07761, "ee07761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07761C1Ev();
+extern void _ZN7ee07761D1Ev();
+Name_Map name_map_ee07761[] = {
+ NSPAIR(_ZN7ee07761C1Ev),
+ NSPAIR(_ZN7ee07761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee07761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee07761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee07761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee07761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee07761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee07761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee07761[] = {
+ {&(_ZTV7ee07761[4]), 4,19},
+ {&(_tg__ZTV6dd7761__7ee07761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee07761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee07761[4]), 4,6},
+ {&(_ZTV7ee07761[11]), 11,19},
+ {&(_ZTV7ee07761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee07761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee07761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07761[];
+extern VTBL_ENTRY _ZTV7ee07761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07761[];
+static VTBL_ENTRY alt_thunk_names923[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07761 = { "ee07761", // class name
+ bases_ee07761, 4,
+ &(vtc_ee07761[0]), // expected_vtbl_contents
+ &(vtt_ee07761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07761),8, //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 ee17761 : virtual dd7761 {
+ int e;
+ ~ee17761(); // tgen
+ ee17761(); // tgen
+};
+//SIG(1 ee17761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17761 ::~ee17761(){ note_dtor("ee17761", this);} // tgen
+ee17761 ::ee17761(){ note_ctor("ee17761", this);} // tgen
+
+static void Test_ee17761()
+{
+ extern Class_Descriptor cd_ee17761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17761, buf);
+ ee17761 *dp, &lv = *(dp=new (buf) ee17761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee17761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee17761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(32,16), "ee17761");
+ check_base_class_offset(lv, (dd7761*), ABISELECT(16,8), "ee17761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17761.e");
+ test_class_info(&lv, &cd_ee17761);
+ dp->~ee17761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17761(Test_ee17761, "ee17761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17761C1Ev();
+extern void _ZN7ee17761D1Ev();
+Name_Map name_map_ee17761[] = {
+ NSPAIR(_ZN7ee17761C1Ev),
+ NSPAIR(_ZN7ee17761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee17761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 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 _ZTI7ee17761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17761[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee17761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee17761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee17761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee17761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee17761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee17761[] = {
+ {&(_ZTV7ee17761[5]), 5,26},
+ {&(_ZTV7ee17761[11]), 11,26},
+ {&(_ZTV7ee17761[18]), 18,26},
+ {&(_ZTV7ee17761[24]), 24,26},
+ {&(_tg__ZTV6dd7761__7ee17761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee17761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee17761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee17761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee17761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17761[];
+extern VTBL_ENTRY _ZTV7ee17761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17761[];
+static VTBL_ENTRY alt_thunk_names924[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17761 = { "ee17761", // class name
+ bases_ee17761, 4,
+ &(vtc_ee17761[0]), // expected_vtbl_contents
+ &(vtt_ee17761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17761),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17761),9, //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 ee27761 : dd7761 {
+ int e;
+ virtual void foo(); // _ZN7ee277613fooEv
+ ~ee27761(); // tgen
+ ee27761(); // tgen
+};
+//SIG(1 ee27761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27761 ::foo(){vfunc_called(this, "_ZN7ee277613fooEv");}
+ee27761 ::~ee27761(){ note_dtor("ee27761", this);} // tgen
+ee27761 ::ee27761(){ note_ctor("ee27761", this);} // tgen
+
+static void Test_ee27761()
+{
+ extern Class_Descriptor cd_ee27761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27761, buf);
+ ee27761 *dp, &lv = *(dp=new (buf) ee27761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee27761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee27761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(16,12), "ee27761");
+ check_base_class_offset(lv, (dd7761*), 0, "ee27761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27761.e");
+ test_class_info(&lv, &cd_ee27761);
+ dp->~ee27761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27761(Test_ee27761, "ee27761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27761C1Ev();
+extern void _ZN7ee27761D1Ev();
+Name_Map name_map_ee27761[] = {
+ NSPAIR(_ZN7ee27761C1Ev),
+ NSPAIR(_ZN7ee27761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee27761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN7ee277613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277613fooEv,_ZTv0_n16_N7ee277613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277613fooEv,_ZThn12_N7ee277613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277613fooEv,_ZTv0_n12_N7ee277613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277613fooEv,_ZThn20_N7ee277613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN7ee277613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277613fooEv,_ZTv0_n16_N7ee277613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277613fooEv,_ZTv0_n12_N7ee277613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee27761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee27761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee27761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee27761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee27761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee27761[] = {
+ {&(_ZTV7ee27761[4]), 4,19},
+ {&(_tg__ZTV6dd7761__7ee27761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee27761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee27761[4]), 4,6},
+ {&(_ZTV7ee27761[11]), 11,19},
+ {&(_ZTV7ee27761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee27761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee27761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27761[];
+extern VTBL_ENTRY _ZTV7ee27761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27761[];
+static VTBL_ENTRY alt_thunk_names925[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277613fooEv,_ZTv0_n12_N7ee277613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277613fooEv,_ZThn20_N7ee277613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277613fooEv,_ZTv0_n16_N7ee277613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277613fooEv,_ZThn12_N7ee277613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27761 = { "ee27761", // class name
+ bases_ee27761, 4,
+ &(vtc_ee27761[0]), // expected_vtbl_contents
+ &(vtt_ee27761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27761),8, //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 ee37761 : virtual dd7761 {
+ int e;
+ virtual void foo(); // _ZN7ee377613fooEv
+ ~ee37761(); // tgen
+ ee37761(); // tgen
+};
+//SIG(1 ee37761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37761 ::foo(){vfunc_called(this, "_ZN7ee377613fooEv");}
+ee37761 ::~ee37761(){ note_dtor("ee37761", this);} // tgen
+ee37761 ::ee37761(){ note_ctor("ee37761", this);} // tgen
+
+static void Test_ee37761()
+{
+ extern Class_Descriptor cd_ee37761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37761, buf);
+ ee37761 *dp, &lv = *(dp=new (buf) ee37761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee37761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee37761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(32,16), "ee37761");
+ check_base_class_offset(lv, (dd7761*), ABISELECT(16,8), "ee37761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37761.e");
+ test_class_info(&lv, &cd_ee37761);
+ dp->~ee37761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37761(Test_ee37761, "ee37761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37761C1Ev();
+extern void _ZN7ee37761D1Ev();
+Name_Map name_map_ee37761[] = {
+ NSPAIR(_ZN7ee37761C1Ev),
+ NSPAIR(_ZN7ee37761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee37761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 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 _ZTI7ee37761[];
+extern void _ZN7ee377613fooEv();
+extern void _ZN6dd77613barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377613fooEv,_ZTv0_n24_N7ee377613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377613fooEv,_ZThn8_N7ee377613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377613fooEv,_ZTv0_n16_N7ee377613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377613fooEv,_ZThn16_N7ee377613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377613fooEv,_ZTv0_n12_N7ee377613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377613fooEv,_ZThn24_N7ee377613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37761[0]),
+ (VTBL_ENTRY)&_ZN7ee377613fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377613fooEv,_ZTv0_n24_N7ee377613fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377613fooEv,_ZTv0_n16_N7ee377613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377613fooEv,_ZTv0_n12_N7ee377613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee37761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee37761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee37761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee37761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee37761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee37761[] = {
+ {&(_ZTV7ee37761[5]), 5,27},
+ {&(_ZTV7ee37761[12]), 12,27},
+ {&(_ZTV7ee37761[19]), 19,27},
+ {&(_ZTV7ee37761[25]), 25,27},
+ {&(_tg__ZTV6dd7761__7ee37761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee37761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee37761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee37761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee37761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37761[];
+extern VTBL_ENTRY _ZTV7ee37761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37761[];
+static VTBL_ENTRY alt_thunk_names926[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377613fooEv,_ZTv0_n12_N7ee377613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377613fooEv,_ZThn24_N7ee377613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377613fooEv,_ZTv0_n16_N7ee377613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377613fooEv,_ZThn16_N7ee377613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377613fooEv,_ZTv0_n24_N7ee377613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377613fooEv,_ZThn8_N7ee377613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37761 = { "ee37761", // class name
+ bases_ee37761, 4,
+ &(vtc_ee37761[0]), // expected_vtbl_contents
+ &(vtt_ee37761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37761),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37761),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names926,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47761 : dd7761 {
+ int e;
+ virtual void bar(); // _ZN7ee477613barEv
+ ~ee47761(); // tgen
+ ee47761(); // tgen
+};
+//SIG(1 ee47761) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47761 ::bar(){vfunc_called(this, "_ZN7ee477613barEv");}
+ee47761 ::~ee47761(){ note_dtor("ee47761", this);} // tgen
+ee47761 ::ee47761(){ note_ctor("ee47761", this);} // tgen
+
+static void Test_ee47761()
+{
+ extern Class_Descriptor cd_ee47761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47761, buf);
+ ee47761 *dp, &lv = *(dp=new (buf) ee47761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee47761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee47761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(16,12), "ee47761");
+ check_base_class_offset(lv, (dd7761*), 0, "ee47761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47761.e");
+ test_class_info(&lv, &cd_ee47761);
+ dp->~ee47761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47761(Test_ee47761, "ee47761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47761C1Ev();
+extern void _ZN7ee47761D1Ev();
+Name_Map name_map_ee47761[] = {
+ NSPAIR(_ZN7ee47761C1Ev),
+ NSPAIR(_ZN7ee47761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee47761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47761[];
+extern void _ZN7ee477613barEv();
+extern void _ZN6dd77613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477613barEv,_ZTv0_n20_N7ee477613barEv)();
+extern void ABISELECT(_ZThn16_N7ee477613barEv,_ZThn12_N7ee477613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477613barEv,_ZTv0_n16_N7ee477613barEv)();
+extern void ABISELECT(_ZThn32_N7ee477613barEv,_ZThn20_N7ee477613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47761[0]),
+ (VTBL_ENTRY)&_ZN7ee477613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477613barEv,_ZTv0_n20_N7ee477613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477613barEv,_ZTv0_n16_N7ee477613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee47761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee47761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee47761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee47761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee47761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee47761[] = {
+ {&(_ZTV7ee47761[4]), 4,19},
+ {&(_tg__ZTV6dd7761__7ee47761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee47761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee47761[4]), 4,6},
+ {&(_ZTV7ee47761[11]), 11,19},
+ {&(_ZTV7ee47761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee47761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee47761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47761[];
+extern VTBL_ENTRY _ZTV7ee47761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47761[];
+static VTBL_ENTRY alt_thunk_names927[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477613barEv,_ZTv0_n16_N7ee477613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477613barEv,_ZThn20_N7ee477613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477613barEv,_ZTv0_n20_N7ee477613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477613barEv,_ZThn12_N7ee477613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47761 = { "ee47761", // class name
+ bases_ee47761, 4,
+ &(vtc_ee47761[0]), // expected_vtbl_contents
+ &(vtt_ee47761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47761),8, //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 ee57761 : virtual dd7761 {
+ int e;
+ virtual void bar(); // _ZN7ee577613barEv
+ ~ee57761(); // tgen
+ ee57761(); // tgen
+};
+//SIG(1 ee57761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57761 ::bar(){vfunc_called(this, "_ZN7ee577613barEv");}
+ee57761 ::~ee57761(){ note_dtor("ee57761", this);} // tgen
+ee57761 ::ee57761(){ note_ctor("ee57761", this);} // tgen
+
+static void Test_ee57761()
+{
+ extern Class_Descriptor cd_ee57761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57761, buf);
+ ee57761 *dp, &lv = *(dp=new (buf) ee57761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee57761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee57761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(32,16), "ee57761");
+ check_base_class_offset(lv, (dd7761*), ABISELECT(16,8), "ee57761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57761.e");
+ test_class_info(&lv, &cd_ee57761);
+ dp->~ee57761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57761(Test_ee57761, "ee57761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57761C1Ev();
+extern void _ZN7ee57761D1Ev();
+Name_Map name_map_ee57761[] = {
+ NSPAIR(_ZN7ee57761C1Ev),
+ NSPAIR(_ZN7ee57761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee57761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 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 _ZTI7ee57761[];
+extern void _ZN7ee577613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577613barEv,_ZTv0_n20_N7ee577613barEv)();
+extern void ABISELECT(_ZThn16_N7ee577613barEv,_ZThn8_N7ee577613barEv)() __attribute__((weak));
+extern void _ZN6dd77613fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577613barEv,_ZTv0_n20_N7ee577613barEv)();
+extern void ABISELECT(_ZThn32_N7ee577613barEv,_ZThn16_N7ee577613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577613barEv,_ZTv0_n16_N7ee577613barEv)();
+extern void ABISELECT(_ZThn48_N7ee577613barEv,_ZThn24_N7ee577613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57761[0]),
+ (VTBL_ENTRY)&_ZN7ee577613barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577613barEv,_ZTv0_n20_N7ee577613barEv),
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577613barEv,_ZTv0_n20_N7ee577613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577613barEv,_ZTv0_n16_N7ee577613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee57761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee57761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee57761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee57761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee57761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee57761[] = {
+ {&(_ZTV7ee57761[5]), 5,27},
+ {&(_ZTV7ee57761[12]), 12,27},
+ {&(_ZTV7ee57761[19]), 19,27},
+ {&(_ZTV7ee57761[25]), 25,27},
+ {&(_tg__ZTV6dd7761__7ee57761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee57761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee57761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee57761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee57761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57761[];
+extern VTBL_ENTRY _ZTV7ee57761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57761[];
+static VTBL_ENTRY alt_thunk_names928[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577613barEv,_ZTv0_n16_N7ee577613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577613barEv,_ZThn24_N7ee577613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577613barEv,_ZTv0_n20_N7ee577613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577613barEv,_ZThn16_N7ee577613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577613barEv,_ZThn8_N7ee577613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57761 = { "ee57761", // class name
+ bases_ee57761, 4,
+ &(vtc_ee57761[0]), // expected_vtbl_contents
+ &(vtt_ee57761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57761),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57761),9, //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 ee67761 : dd7761 {
+ int e;
+ virtual void foo(); // _ZN7ee677613fooEv
+ virtual void bar(); // _ZN7ee677613barEv
+ ~ee67761(); // tgen
+ ee67761(); // tgen
+};
+//SIG(1 ee67761) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67761 ::foo(){vfunc_called(this, "_ZN7ee677613fooEv");}
+void ee67761 ::bar(){vfunc_called(this, "_ZN7ee677613barEv");}
+ee67761 ::~ee67761(){ note_dtor("ee67761", this);} // tgen
+ee67761 ::ee67761(){ note_ctor("ee67761", this);} // tgen
+
+static void Test_ee67761()
+{
+ extern Class_Descriptor cd_ee67761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67761, buf);
+ ee67761 *dp, &lv = *(dp=new (buf) ee67761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(32,20), "ee67761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(32,20), "ee67761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(16,12), "ee67761");
+ check_base_class_offset(lv, (dd7761*), 0, "ee67761");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67761.e");
+ test_class_info(&lv, &cd_ee67761);
+ dp->~ee67761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67761(Test_ee67761, "ee67761", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67761C1Ev();
+extern void _ZN7ee67761D1Ev();
+Name_Map name_map_ee67761[] = {
+ NSPAIR(_ZN7ee67761C1Ev),
+ NSPAIR(_ZN7ee67761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee67761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67761[];
+extern void _ZN7ee677613barEv();
+extern void _ZN7ee677613fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677613fooEv,_ZTv0_n16_N7ee677613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677613fooEv,_ZThn12_N7ee677613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677613barEv,_ZTv0_n20_N7ee677613barEv)();
+extern void ABISELECT(_ZThn16_N7ee677613barEv,_ZThn12_N7ee677613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677613fooEv,_ZTv0_n12_N7ee677613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677613fooEv,_ZThn20_N7ee677613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677613barEv,_ZTv0_n16_N7ee677613barEv)();
+extern void ABISELECT(_ZThn32_N7ee677613barEv,_ZThn20_N7ee677613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67761[0]),
+ (VTBL_ENTRY)&_ZN7ee677613barEv,
+ (VTBL_ENTRY)&_ZN7ee677613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677613fooEv,_ZTv0_n16_N7ee677613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677613barEv,_ZTv0_n20_N7ee677613barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677613fooEv,_ZTv0_n12_N7ee677613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677613barEv,_ZTv0_n16_N7ee677613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee67761[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee67761[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee67761[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee67761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee67761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee67761[] = {
+ {&(_ZTV7ee67761[4]), 4,19},
+ {&(_tg__ZTV6dd7761__7ee67761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee67761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee67761[4]), 4,6},
+ {&(_ZTV7ee67761[11]), 11,19},
+ {&(_ZTV7ee67761[17]), 17,19},
+ {&(_tg__ZTV5cc761__7ee67761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee67761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67761[];
+extern VTBL_ENTRY _ZTV7ee67761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67761[];
+static VTBL_ENTRY alt_thunk_names929[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn20_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn20_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn12_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn12_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677613barEv,_ZTv0_n16_N7ee677613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677613barEv,_ZThn20_N7ee677613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677613fooEv,_ZTv0_n12_N7ee677613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677613fooEv,_ZThn20_N7ee677613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677613barEv,_ZTv0_n20_N7ee677613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677613barEv,_ZThn12_N7ee677613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677613fooEv,_ZTv0_n16_N7ee677613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677613fooEv,_ZThn12_N7ee677613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67761 = { "ee67761", // class name
+ bases_ee67761, 4,
+ &(vtc_ee67761[0]), // expected_vtbl_contents
+ &(vtt_ee67761[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67761),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67761),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67761),8, //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 ee77761 : virtual dd7761 {
+ int e;
+ virtual void foo(); // _ZN7ee777613fooEv
+ virtual void bar(); // _ZN7ee777613barEv
+ ~ee77761(); // tgen
+ ee77761(); // tgen
+};
+//SIG(1 ee77761) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77761 ::foo(){vfunc_called(this, "_ZN7ee777613fooEv");}
+void ee77761 ::bar(){vfunc_called(this, "_ZN7ee777613barEv");}
+ee77761 ::~ee77761(){ note_dtor("ee77761", this);} // tgen
+ee77761 ::ee77761(){ note_ctor("ee77761", this);} // tgen
+
+static void Test_ee77761()
+{
+ extern Class_Descriptor cd_ee77761;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77761, buf);
+ ee77761 *dp, &lv = *(dp=new (buf) ee77761());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77761)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77761)");
+ check_base_class_offset(lv, (aa1*)(bb61*), ABISELECT(48,24), "ee77761");
+ check_base_class_offset(lv, (bb61*)(cc761*), ABISELECT(48,24), "ee77761");
+ check_base_class_offset(lv, (cc761*)(dd7761*), ABISELECT(32,16), "ee77761");
+ check_base_class_offset(lv, (dd7761*), ABISELECT(16,8), "ee77761");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77761.e");
+ test_class_info(&lv, &cd_ee77761);
+ dp->~ee77761();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77761(Test_ee77761, "ee77761", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77761C1Ev();
+extern void _ZN7ee77761D1Ev();
+Name_Map name_map_ee77761[] = {
+ NSPAIR(_ZN7ee77761C1Ev),
+ NSPAIR(_ZN7ee77761D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_cc761;
+extern VTBL_ENTRY _ZTI5cc761[];
+extern VTBL_ENTRY _ZTV5cc761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc761[];
+extern Class_Descriptor cd_dd7761;
+extern VTBL_ENTRY _ZTI6dd7761[];
+extern VTBL_ENTRY _ZTV6dd7761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7761[];
+static Base_Class bases_ee77761[] = {
+ // 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_bb61, 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_cc761, 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_dd7761, 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 _ZTI7ee77761[];
+extern void _ZN7ee777613fooEv();
+extern void _ZN7ee777613barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777613barEv,_ZTv0_n20_N7ee777613barEv)();
+extern void ABISELECT(_ZThn16_N7ee777613barEv,_ZThn8_N7ee777613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777613fooEv,_ZTv0_n24_N7ee777613fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777613fooEv,_ZThn8_N7ee777613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777613fooEv,_ZTv0_n16_N7ee777613fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777613fooEv,_ZThn16_N7ee777613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777613barEv,_ZTv0_n20_N7ee777613barEv)();
+extern void ABISELECT(_ZThn32_N7ee777613barEv,_ZThn16_N7ee777613barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777613fooEv,_ZTv0_n12_N7ee777613fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777613fooEv,_ZThn24_N7ee777613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777613barEv,_ZTv0_n16_N7ee777613barEv)();
+extern void ABISELECT(_ZThn48_N7ee777613barEv,_ZThn24_N7ee777613barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77761[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77761[0]),
+ (VTBL_ENTRY)&_ZN7ee777613fooEv,
+ (VTBL_ENTRY)&_ZN7ee777613barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777613barEv,_ZTv0_n20_N7ee777613barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777613fooEv,_ZTv0_n24_N7ee777613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777613fooEv,_ZTv0_n16_N7ee777613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777613barEv,_ZTv0_n20_N7ee777613barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777613fooEv,_ZTv0_n12_N7ee777613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777613barEv,_ZTv0_n16_N7ee777613barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77761[];
+extern void _ZN6dd77613barEv();
+extern void _ZN6dd77613fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7761__7ee77761[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&_ZN6dd77613barEv,
+ (VTBL_ENTRY)&_ZN6dd77613fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv)();
+extern void ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc761__6dd7761__7ee77761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv)();
+extern void ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__6dd7761__7ee77761[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv),
+};
+extern void _ZN5cc7613fooEv();
+extern void _ZN5cc7613barEv();
+static VTBL_ENTRY _tg__ZTV5cc761__7ee77761[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&_ZN5cc7613fooEv,
+ (VTBL_ENTRY)&_ZN5cc7613barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv)();
+extern void ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb61__5cc761__7ee77761[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc761[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv),
+};
+static VTT_ENTRY vtt_ee77761[] = {
+ {&(_ZTV7ee77761[5]), 5,28},
+ {&(_ZTV7ee77761[13]), 13,28},
+ {&(_ZTV7ee77761[20]), 20,28},
+ {&(_ZTV7ee77761[26]), 26,28},
+ {&(_tg__ZTV6dd7761__7ee77761[4]), 4,6},
+ {&(_tg__ZTV5cc761__6dd7761__7ee77761[5]), 5,7},
+ {&(_tg__ZTV4bb61__6dd7761__7ee77761[4]), 4,6},
+ {&(_tg__ZTV5cc761__7ee77761[3]), 3,5},
+ {&(_tg__ZTV4bb61__5cc761__7ee77761[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77761[];
+extern VTBL_ENTRY _ZTV7ee77761[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77761[];
+static VTBL_ENTRY alt_thunk_names930[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7613barEv,_ZTv0_n16_N5cc7613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613barEv,_ZThn8_N5cc7613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7613fooEv,_ZTv0_n12_N5cc7613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7613fooEv,_ZThn8_N5cc7613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613barEv,_ZTv0_n16_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613barEv,_ZThn16_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77613fooEv,_ZTv0_n12_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77613fooEv,_ZThn16_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77613barEv,_ZTv0_n20_N6dd77613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613barEv,_ZThn8_N6dd77613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77613fooEv,_ZTv0_n16_N6dd77613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77613fooEv,_ZThn8_N6dd77613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777613barEv,_ZTv0_n16_N7ee777613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777613barEv,_ZThn24_N7ee777613barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777613fooEv,_ZTv0_n12_N7ee777613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777613fooEv,_ZThn24_N7ee777613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777613fooEv,_ZTv0_n16_N7ee777613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777613fooEv,_ZThn16_N7ee777613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777613fooEv,_ZTv0_n24_N7ee777613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777613fooEv,_ZThn8_N7ee777613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777613barEv,_ZTv0_n20_N7ee777613barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777613barEv,_ZThn16_N7ee777613barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777613barEv,_ZThn8_N7ee777613barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77761 = { "ee77761", // class name
+ bases_ee77761, 4,
+ &(vtc_ee77761[0]), // expected_vtbl_contents
+ &(vtt_ee77761[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77761),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77761),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77761),9, //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 bb62 : aa2 {
+ int b;
+ virtual void bar(); // _ZN4bb623barEv
+ virtual void foo(); // _ZN4bb623fooEv
+ ~bb62(); // tgen
+ bb62(); // tgen
+};
+//SIG(-1 bb62) C1{ BC2{ v2 v1 Fi} v1 v2 Fi}
+
+
+void bb62 ::bar(){vfunc_called(this, "_ZN4bb623barEv");}
+void bb62 ::foo(){vfunc_called(this, "_ZN4bb623fooEv");}
+bb62 ::~bb62(){ note_dtor("bb62", this);} // tgen
+bb62 ::bb62(){ note_ctor("bb62", this);} // tgen
+
+static void Test_bb62()
+{
+ extern Class_Descriptor cd_bb62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb62, buf);
+ bb62 *dp, &lv = *(dp=new (buf) bb62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb62)");
+ check_base_class_offset(lv, (aa2*), 0, "bb62");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb62.b");
+ test_class_info(&lv, &cd_bb62);
+ dp->~bb62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb62(Test_bb62, "bb62", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb62C1Ev();
+extern void _ZN4bb62D1Ev();
+Name_Map name_map_bb62[] = {
+ NSPAIR(_ZN4bb62C1Ev),
+ NSPAIR(_ZN4bb62D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+static Base_Class bases_bb62[] = {
+ // 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 _ZTI4bb62[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_bb62[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb62[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+Class_Descriptor cd_bb62 = { "bb62", // class name
+ bases_bb62, 1,
+ &(vtc_bb62[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb62),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb62),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 cc062 : bb62 {
+ int c;
+ ~cc062(); // tgen
+ cc062(); // tgen
+};
+//SIG(-1 cc062) C1{ BC2{ BC3{ v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+cc062 ::~cc062(){ note_dtor("cc062", this);} // tgen
+cc062 ::cc062(){ note_ctor("cc062", this);} // tgen
+
+static void Test_cc062()
+{
+ extern Class_Descriptor cd_cc062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc062, buf);
+ cc062 *dp, &lv = *(dp=new (buf) cc062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc062)");
+ check_base_class_offset(lv, (aa2*)(bb62*), 0, "cc062");
+ check_base_class_offset(lv, (bb62*), 0, "cc062");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc062.c");
+ test_class_info(&lv, &cd_cc062);
+ dp->~cc062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc062(Test_cc062, "cc062", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc062C1Ev();
+extern void _ZN5cc062D1Ev();
+Name_Map name_map_cc062[] = {
+ NSPAIR(_ZN5cc062C1Ev),
+ NSPAIR(_ZN5cc062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc062[] = {
+ // 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_bb62, 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 _ZTI5cc062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_cc062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+Class_Descriptor cd_cc062 = { "cc062", // class name
+ bases_cc062, 2,
+ &(vtc_cc062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc062),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 dd0062 : cc062 {
+ int d;
+ ~dd0062(); // tgen
+ dd0062(); // tgen
+};
+//SIG(-1 dd0062) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0062 ::~dd0062(){ note_dtor("dd0062", this);} // tgen
+dd0062 ::dd0062(){ note_ctor("dd0062", this);} // tgen
+
+static void Test_dd0062()
+{
+ extern Class_Descriptor cd_dd0062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0062, buf);
+ dd0062 *dp, &lv = *(dp=new (buf) dd0062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), 0, "dd0062");
+ check_base_class_offset(lv, (bb62*)(cc062*), 0, "dd0062");
+ check_base_class_offset(lv, (cc062*), 0, "dd0062");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0062.d");
+ test_class_info(&lv, &cd_dd0062);
+ dp->~dd0062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0062(Test_dd0062, "dd0062", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0062C1Ev();
+extern void _ZN6dd0062D1Ev();
+Name_Map name_map_dd0062[] = {
+ NSPAIR(_ZN6dd0062C1Ev),
+ NSPAIR(_ZN6dd0062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd0062[] = {
+ // 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_bb62, 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_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd0062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+Class_Descriptor cd_dd0062 = { "dd0062", // class name
+ bases_dd0062, 3,
+ &(vtc_dd0062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0062),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 ee00062 : dd0062 {
+ int e;
+ ~ee00062(); // tgen
+ ee00062(); // tgen
+};
+//SIG(1 ee00062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00062 ::~ee00062(){ note_dtor("ee00062", this);} // tgen
+ee00062 ::ee00062(){ note_ctor("ee00062", this);} // tgen
+
+static void Test_ee00062()
+{
+ extern Class_Descriptor cd_ee00062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00062, buf);
+ ee00062 *dp, &lv = *(dp=new (buf) ee00062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), 0, "ee00062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), 0, "ee00062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), 0, "ee00062");
+ check_base_class_offset(lv, (dd0062*), 0, "ee00062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00062.e");
+ test_class_info(&lv, &cd_ee00062);
+ dp->~ee00062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00062(Test_ee00062, "ee00062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00062C1Ev();
+extern void _ZN7ee00062D1Ev();
+Name_Map name_map_ee00062[] = {
+ NSPAIR(_ZN7ee00062C1Ev),
+ NSPAIR(_ZN7ee00062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee00062[] = {
+ // 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_bb62, 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_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee00062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00062[];
+extern VTBL_ENTRY _ZTV7ee00062[];
+Class_Descriptor cd_ee00062 = { "ee00062", // class name
+ bases_ee00062, 4,
+ &(vtc_ee00062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00062),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 ee10062 : virtual dd0062 {
+ int e;
+ ~ee10062(); // tgen
+ ee10062(); // tgen
+};
+//SIG(1 ee10062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10062 ::~ee10062(){ note_dtor("ee10062", this);} // tgen
+ee10062 ::ee10062(){ note_ctor("ee10062", this);} // tgen
+
+static void Test_ee10062()
+{
+ extern Class_Descriptor cd_ee10062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10062, buf);
+ ee10062 *dp, &lv = *(dp=new (buf) ee10062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee10062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee10062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), ABISELECT(16,8), "ee10062");
+ check_base_class_offset(lv, (dd0062*), ABISELECT(16,8), "ee10062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10062.e");
+ test_class_info(&lv, &cd_ee10062);
+ dp->~ee10062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10062(Test_ee10062, "ee10062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10062C1Ev();
+extern void _ZN7ee10062D1Ev();
+Name_Map name_map_ee10062[] = {
+ NSPAIR(_ZN7ee10062C1Ev),
+ NSPAIR(_ZN7ee10062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee10062[] = {
+ // 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_bb62, 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_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 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 _ZTI7ee10062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee10062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10062[];
+static VTT_ENTRY vtt_ee10062[] = {
+ {&(_ZTV7ee10062[3]), 3,9},
+ {&(_ZTV7ee10062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10062[];
+extern VTBL_ENTRY _ZTV7ee10062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10062[];
+Class_Descriptor cd_ee10062 = { "ee10062", // class name
+ bases_ee10062, 4,
+ &(vtc_ee10062[0]), // expected_vtbl_contents
+ &(vtt_ee10062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10062),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 ee20062 : dd0062 {
+ int e;
+ virtual void foo(); // _ZN7ee200623fooEv
+ ~ee20062(); // tgen
+ ee20062(); // tgen
+};
+//SIG(1 ee20062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20062 ::foo(){vfunc_called(this, "_ZN7ee200623fooEv");}
+ee20062 ::~ee20062(){ note_dtor("ee20062", this);} // tgen
+ee20062 ::ee20062(){ note_ctor("ee20062", this);} // tgen
+
+static void Test_ee20062()
+{
+ extern Class_Descriptor cd_ee20062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20062, buf);
+ ee20062 *dp, &lv = *(dp=new (buf) ee20062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), 0, "ee20062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), 0, "ee20062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), 0, "ee20062");
+ check_base_class_offset(lv, (dd0062*), 0, "ee20062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20062.e");
+ test_class_info(&lv, &cd_ee20062);
+ dp->~ee20062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20062(Test_ee20062, "ee20062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20062C1Ev();
+extern void _ZN7ee20062D1Ev();
+Name_Map name_map_ee20062[] = {
+ NSPAIR(_ZN7ee20062C1Ev),
+ NSPAIR(_ZN7ee20062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee20062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20062[];
+extern void _ZN7ee200623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee20062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20062[0]),
+ (VTBL_ENTRY)&_ZN7ee200623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20062[];
+extern VTBL_ENTRY _ZTV7ee20062[];
+Class_Descriptor cd_ee20062 = { "ee20062", // class name
+ bases_ee20062, 4,
+ &(vtc_ee20062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20062),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 ee30062 : virtual dd0062 {
+ int e;
+ virtual void foo(); // _ZN7ee300623fooEv
+ ~ee30062(); // tgen
+ ee30062(); // tgen
+};
+//SIG(1 ee30062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30062 ::foo(){vfunc_called(this, "_ZN7ee300623fooEv");}
+ee30062 ::~ee30062(){ note_dtor("ee30062", this);} // tgen
+ee30062 ::ee30062(){ note_ctor("ee30062", this);} // tgen
+
+static void Test_ee30062()
+{
+ extern Class_Descriptor cd_ee30062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30062, buf);
+ ee30062 *dp, &lv = *(dp=new (buf) ee30062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee30062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee30062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), ABISELECT(16,8), "ee30062");
+ check_base_class_offset(lv, (dd0062*), ABISELECT(16,8), "ee30062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30062.e");
+ test_class_info(&lv, &cd_ee30062);
+ dp->~ee30062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30062(Test_ee30062, "ee30062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30062C1Ev();
+extern void _ZN7ee30062D1Ev();
+Name_Map name_map_ee30062[] = {
+ NSPAIR(_ZN7ee30062C1Ev),
+ NSPAIR(_ZN7ee30062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee30062[] = {
+ // 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_bb62, 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_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 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 _ZTI7ee30062[];
+extern void _ZN7ee300623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300623fooEv,_ZTv0_n12_N7ee300623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300623fooEv,_ZThn8_N7ee300623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee30062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30062[0]),
+ (VTBL_ENTRY)&_ZN7ee300623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300623fooEv,_ZTv0_n12_N7ee300623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30062[];
+static VTT_ENTRY vtt_ee30062[] = {
+ {&(_ZTV7ee30062[3]), 3,10},
+ {&(_ZTV7ee30062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30062[];
+extern VTBL_ENTRY _ZTV7ee30062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30062[];
+static VTBL_ENTRY alt_thunk_names931[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300623fooEv,_ZTv0_n12_N7ee300623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300623fooEv,_ZThn8_N7ee300623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30062 = { "ee30062", // class name
+ bases_ee30062, 4,
+ &(vtc_ee30062[0]), // expected_vtbl_contents
+ &(vtt_ee30062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30062),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names931,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40062 : dd0062 {
+ int e;
+ virtual void bar(); // _ZN7ee400623barEv
+ ~ee40062(); // tgen
+ ee40062(); // tgen
+};
+//SIG(1 ee40062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40062 ::bar(){vfunc_called(this, "_ZN7ee400623barEv");}
+ee40062 ::~ee40062(){ note_dtor("ee40062", this);} // tgen
+ee40062 ::ee40062(){ note_ctor("ee40062", this);} // tgen
+
+static void Test_ee40062()
+{
+ extern Class_Descriptor cd_ee40062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40062, buf);
+ ee40062 *dp, &lv = *(dp=new (buf) ee40062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), 0, "ee40062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), 0, "ee40062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), 0, "ee40062");
+ check_base_class_offset(lv, (dd0062*), 0, "ee40062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40062.e");
+ test_class_info(&lv, &cd_ee40062);
+ dp->~ee40062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40062(Test_ee40062, "ee40062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40062C1Ev();
+extern void _ZN7ee40062D1Ev();
+Name_Map name_map_ee40062[] = {
+ NSPAIR(_ZN7ee40062C1Ev),
+ NSPAIR(_ZN7ee40062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee40062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN7ee400623barEv();
+static VTBL_ENTRY vtc_ee40062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN7ee400623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40062[];
+extern VTBL_ENTRY _ZTV7ee40062[];
+Class_Descriptor cd_ee40062 = { "ee40062", // class name
+ bases_ee40062, 4,
+ &(vtc_ee40062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40062),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 ee50062 : virtual dd0062 {
+ int e;
+ virtual void bar(); // _ZN7ee500623barEv
+ ~ee50062(); // tgen
+ ee50062(); // tgen
+};
+//SIG(1 ee50062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50062 ::bar(){vfunc_called(this, "_ZN7ee500623barEv");}
+ee50062 ::~ee50062(){ note_dtor("ee50062", this);} // tgen
+ee50062 ::ee50062(){ note_ctor("ee50062", this);} // tgen
+
+static void Test_ee50062()
+{
+ extern Class_Descriptor cd_ee50062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50062, buf);
+ ee50062 *dp, &lv = *(dp=new (buf) ee50062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee50062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee50062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), ABISELECT(16,8), "ee50062");
+ check_base_class_offset(lv, (dd0062*), ABISELECT(16,8), "ee50062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50062.e");
+ test_class_info(&lv, &cd_ee50062);
+ dp->~ee50062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50062(Test_ee50062, "ee50062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50062C1Ev();
+extern void _ZN7ee50062D1Ev();
+Name_Map name_map_ee50062[] = {
+ NSPAIR(_ZN7ee50062C1Ev),
+ NSPAIR(_ZN7ee50062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee50062[] = {
+ // 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_bb62, 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_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 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 _ZTI7ee50062[];
+extern void _ZN7ee500623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500623barEv,_ZTv0_n16_N7ee500623barEv)();
+extern void ABISELECT(_ZThn16_N7ee500623barEv,_ZThn8_N7ee500623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50062[0]),
+ (VTBL_ENTRY)&_ZN7ee500623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500623barEv,_ZTv0_n16_N7ee500623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50062[];
+static VTT_ENTRY vtt_ee50062[] = {
+ {&(_ZTV7ee50062[3]), 3,10},
+ {&(_ZTV7ee50062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50062[];
+extern VTBL_ENTRY _ZTV7ee50062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50062[];
+static VTBL_ENTRY alt_thunk_names932[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500623barEv,_ZTv0_n16_N7ee500623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500623barEv,_ZThn8_N7ee500623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50062 = { "ee50062", // class name
+ bases_ee50062, 4,
+ &(vtc_ee50062[0]), // expected_vtbl_contents
+ &(vtt_ee50062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50062),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names932,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60062 : dd0062 {
+ int e;
+ virtual void foo(); // _ZN7ee600623fooEv
+ virtual void bar(); // _ZN7ee600623barEv
+ ~ee60062(); // tgen
+ ee60062(); // tgen
+};
+//SIG(1 ee60062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60062 ::foo(){vfunc_called(this, "_ZN7ee600623fooEv");}
+void ee60062 ::bar(){vfunc_called(this, "_ZN7ee600623barEv");}
+ee60062 ::~ee60062(){ note_dtor("ee60062", this);} // tgen
+ee60062 ::ee60062(){ note_ctor("ee60062", this);} // tgen
+
+static void Test_ee60062()
+{
+ extern Class_Descriptor cd_ee60062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60062, buf);
+ ee60062 *dp, &lv = *(dp=new (buf) ee60062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), 0, "ee60062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), 0, "ee60062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), 0, "ee60062");
+ check_base_class_offset(lv, (dd0062*), 0, "ee60062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60062.e");
+ test_class_info(&lv, &cd_ee60062);
+ dp->~ee60062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60062(Test_ee60062, "ee60062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60062C1Ev();
+extern void _ZN7ee60062D1Ev();
+Name_Map name_map_ee60062[] = {
+ NSPAIR(_ZN7ee60062C1Ev),
+ NSPAIR(_ZN7ee60062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee60062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60062[];
+extern void _ZN7ee600623fooEv();
+extern void _ZN7ee600623barEv();
+static VTBL_ENTRY vtc_ee60062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60062[0]),
+ (VTBL_ENTRY)&_ZN7ee600623fooEv,
+ (VTBL_ENTRY)&_ZN7ee600623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60062[];
+extern VTBL_ENTRY _ZTV7ee60062[];
+Class_Descriptor cd_ee60062 = { "ee60062", // class name
+ bases_ee60062, 4,
+ &(vtc_ee60062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60062),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 ee70062 : virtual dd0062 {
+ int e;
+ virtual void foo(); // _ZN7ee700623fooEv
+ virtual void bar(); // _ZN7ee700623barEv
+ ~ee70062(); // tgen
+ ee70062(); // tgen
+};
+//SIG(1 ee70062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70062 ::foo(){vfunc_called(this, "_ZN7ee700623fooEv");}
+void ee70062 ::bar(){vfunc_called(this, "_ZN7ee700623barEv");}
+ee70062 ::~ee70062(){ note_dtor("ee70062", this);} // tgen
+ee70062 ::ee70062(){ note_ctor("ee70062", this);} // tgen
+
+static void Test_ee70062()
+{
+ extern Class_Descriptor cd_ee70062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70062, buf);
+ ee70062 *dp, &lv = *(dp=new (buf) ee70062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee70062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd0062*), ABISELECT(16,8), "ee70062");
+ check_base_class_offset(lv, (cc062*)(dd0062*), ABISELECT(16,8), "ee70062");
+ check_base_class_offset(lv, (dd0062*), ABISELECT(16,8), "ee70062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70062.e");
+ test_class_info(&lv, &cd_ee70062);
+ dp->~ee70062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70062(Test_ee70062, "ee70062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70062C1Ev();
+extern void _ZN7ee70062D1Ev();
+Name_Map name_map_ee70062[] = {
+ NSPAIR(_ZN7ee70062C1Ev),
+ NSPAIR(_ZN7ee70062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd0062;
+extern VTBL_ENTRY _ZTI6dd0062[];
+extern VTBL_ENTRY _ZTV6dd0062[];
+static Base_Class bases_ee70062[] = {
+ // 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_bb62, 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_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0062, 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 _ZTI7ee70062[];
+extern void _ZN7ee700623fooEv();
+extern void _ZN7ee700623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700623fooEv,_ZTv0_n12_N7ee700623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700623fooEv,_ZThn8_N7ee700623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700623barEv,_ZTv0_n16_N7ee700623barEv)();
+extern void ABISELECT(_ZThn16_N7ee700623barEv,_ZThn8_N7ee700623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70062[0]),
+ (VTBL_ENTRY)&_ZN7ee700623fooEv,
+ (VTBL_ENTRY)&_ZN7ee700623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700623fooEv,_ZTv0_n12_N7ee700623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700623barEv,_ZTv0_n16_N7ee700623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70062[];
+static VTT_ENTRY vtt_ee70062[] = {
+ {&(_ZTV7ee70062[3]), 3,11},
+ {&(_ZTV7ee70062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70062[];
+extern VTBL_ENTRY _ZTV7ee70062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70062[];
+static VTBL_ENTRY alt_thunk_names933[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700623barEv,_ZTv0_n16_N7ee700623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700623barEv,_ZThn8_N7ee700623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700623fooEv,_ZTv0_n12_N7ee700623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700623fooEv,_ZThn8_N7ee700623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70062 = { "ee70062", // class name
+ bases_ee70062, 4,
+ &(vtc_ee70062[0]), // expected_vtbl_contents
+ &(vtt_ee70062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70062),2, //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 dd1062 : virtual cc062 {
+ int d;
+ ~dd1062(); // tgen
+ dd1062(); // tgen
+};
+//SIG(-1 dd1062) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1062 ::~dd1062(){ note_dtor("dd1062", this);} // tgen
+dd1062 ::dd1062(){ note_ctor("dd1062", this);} // tgen
+
+static void Test_dd1062()
+{
+ extern Class_Descriptor cd_dd1062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1062, buf);
+ dd1062 *dp, &lv = *(dp=new (buf) dd1062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,8), "dd1062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,8), "dd1062");
+ check_base_class_offset(lv, (cc062*), ABISELECT(16,8), "dd1062");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1062.d");
+ test_class_info(&lv, &cd_dd1062);
+ dp->~dd1062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1062(Test_dd1062, "dd1062", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1062C1Ev();
+extern void _ZN6dd1062D1Ev();
+Name_Map name_map_dd1062[] = {
+ NSPAIR(_ZN6dd1062C1Ev),
+ NSPAIR(_ZN6dd1062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd1062[] = {
+ // 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_bb62, 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_cc062, 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 _ZTI6dd1062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd1062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1062[];
+static VTT_ENTRY vtt_dd1062[] = {
+ {&(_ZTV6dd1062[3]), 3,9},
+ {&(_ZTV6dd1062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+Class_Descriptor cd_dd1062 = { "dd1062", // class name
+ bases_dd1062, 3,
+ &(vtc_dd1062[0]), // expected_vtbl_contents
+ &(vtt_dd1062[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1062),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 ee01062 : dd1062 {
+ int e;
+ ~ee01062(); // tgen
+ ee01062(); // tgen
+};
+//SIG(1 ee01062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01062 ::~ee01062(){ note_dtor("ee01062", this);} // tgen
+ee01062 ::ee01062(){ note_ctor("ee01062", this);} // tgen
+
+static void Test_ee01062()
+{
+ extern Class_Descriptor cd_ee01062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01062, buf);
+ ee01062 *dp, &lv = *(dp=new (buf) ee01062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee01062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee01062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(16,12), "ee01062");
+ check_base_class_offset(lv, (dd1062*), 0, "ee01062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01062.e");
+ test_class_info(&lv, &cd_ee01062);
+ dp->~ee01062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01062(Test_ee01062, "ee01062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01062C1Ev();
+extern void _ZN7ee01062D1Ev();
+Name_Map name_map_ee01062[] = {
+ NSPAIR(_ZN7ee01062C1Ev),
+ NSPAIR(_ZN7ee01062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee01062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee01062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee01062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee01062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee01062[] = {
+ {&(_ZTV7ee01062[3]), 3,9},
+ {&(_tg__ZTV6dd1062__7ee01062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee01062[4]), 4,6},
+ {&(_ZTV7ee01062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01062[];
+extern VTBL_ENTRY _ZTV7ee01062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01062[];
+Class_Descriptor cd_ee01062 = { "ee01062", // class name
+ bases_ee01062, 4,
+ &(vtc_ee01062[0]), // expected_vtbl_contents
+ &(vtt_ee01062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01062),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 ee11062 : virtual dd1062 {
+ int e;
+ ~ee11062(); // tgen
+ ee11062(); // tgen
+};
+//SIG(1 ee11062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11062 ::~ee11062(){ note_dtor("ee11062", this);} // tgen
+ee11062 ::ee11062(){ note_ctor("ee11062", this);} // tgen
+
+static void Test_ee11062()
+{
+ extern Class_Descriptor cd_ee11062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11062, buf);
+ ee11062 *dp, &lv = *(dp=new (buf) ee11062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee11062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee11062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(32,16), "ee11062");
+ check_base_class_offset(lv, (dd1062*), ABISELECT(16,8), "ee11062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11062.e");
+ test_class_info(&lv, &cd_ee11062);
+ dp->~ee11062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11062(Test_ee11062, "ee11062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11062C1Ev();
+extern void _ZN7ee11062D1Ev();
+Name_Map name_map_ee11062[] = {
+ NSPAIR(_ZN7ee11062C1Ev),
+ NSPAIR(_ZN7ee11062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee11062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 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 _ZTI7ee11062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee11062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11062[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11062[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee11062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee11062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee11062[] = {
+ {&(_ZTV7ee11062[4]), 4,13},
+ {&(_ZTV7ee11062[7]), 7,13},
+ {&(_ZTV7ee11062[11]), 11,13},
+ {&(_tg__ZTV6dd1062__7ee11062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee11062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11062[];
+extern VTBL_ENTRY _ZTV7ee11062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11062[];
+Class_Descriptor cd_ee11062 = { "ee11062", // class name
+ bases_ee11062, 4,
+ &(vtc_ee11062[0]), // expected_vtbl_contents
+ &(vtt_ee11062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11062),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11062),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 ee21062 : dd1062 {
+ int e;
+ virtual void foo(); // _ZN7ee210623fooEv
+ ~ee21062(); // tgen
+ ee21062(); // tgen
+};
+//SIG(1 ee21062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21062 ::foo(){vfunc_called(this, "_ZN7ee210623fooEv");}
+ee21062 ::~ee21062(){ note_dtor("ee21062", this);} // tgen
+ee21062 ::ee21062(){ note_ctor("ee21062", this);} // tgen
+
+static void Test_ee21062()
+{
+ extern Class_Descriptor cd_ee21062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21062, buf);
+ ee21062 *dp, &lv = *(dp=new (buf) ee21062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee21062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee21062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(16,12), "ee21062");
+ check_base_class_offset(lv, (dd1062*), 0, "ee21062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21062.e");
+ test_class_info(&lv, &cd_ee21062);
+ dp->~ee21062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21062(Test_ee21062, "ee21062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21062C1Ev();
+extern void _ZN7ee21062D1Ev();
+Name_Map name_map_ee21062[] = {
+ NSPAIR(_ZN7ee21062C1Ev),
+ NSPAIR(_ZN7ee21062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee21062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21062[];
+extern void _ZN7ee210623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210623fooEv,_ZTv0_n12_N7ee210623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210623fooEv,_ZThn12_N7ee210623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee21062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21062[0]),
+ (VTBL_ENTRY)&_ZN7ee210623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210623fooEv,_ZTv0_n12_N7ee210623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee21062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee21062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee21062[] = {
+ {&(_ZTV7ee21062[3]), 3,10},
+ {&(_tg__ZTV6dd1062__7ee21062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee21062[4]), 4,6},
+ {&(_ZTV7ee21062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21062[];
+extern VTBL_ENTRY _ZTV7ee21062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21062[];
+static VTBL_ENTRY alt_thunk_names934[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210623fooEv,_ZTv0_n12_N7ee210623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210623fooEv,_ZThn12_N7ee210623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21062 = { "ee21062", // class name
+ bases_ee21062, 4,
+ &(vtc_ee21062[0]), // expected_vtbl_contents
+ &(vtt_ee21062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names934,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31062 : virtual dd1062 {
+ int e;
+ virtual void foo(); // _ZN7ee310623fooEv
+ ~ee31062(); // tgen
+ ee31062(); // tgen
+};
+//SIG(1 ee31062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31062 ::foo(){vfunc_called(this, "_ZN7ee310623fooEv");}
+ee31062 ::~ee31062(){ note_dtor("ee31062", this);} // tgen
+ee31062 ::ee31062(){ note_ctor("ee31062", this);} // tgen
+
+static void Test_ee31062()
+{
+ extern Class_Descriptor cd_ee31062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31062, buf);
+ ee31062 *dp, &lv = *(dp=new (buf) ee31062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee31062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee31062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(32,16), "ee31062");
+ check_base_class_offset(lv, (dd1062*), ABISELECT(16,8), "ee31062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31062.e");
+ test_class_info(&lv, &cd_ee31062);
+ dp->~ee31062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31062(Test_ee31062, "ee31062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31062C1Ev();
+extern void _ZN7ee31062D1Ev();
+Name_Map name_map_ee31062[] = {
+ NSPAIR(_ZN7ee31062C1Ev),
+ NSPAIR(_ZN7ee31062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee31062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 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 _ZTI7ee31062[];
+extern void _ZN7ee310623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310623fooEv,_ZTv0_n12_N7ee310623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310623fooEv,_ZThn16_N7ee310623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee31062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31062[0]),
+ (VTBL_ENTRY)&_ZN7ee310623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31062[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310623fooEv,_ZTv0_n12_N7ee310623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee31062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee31062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee31062[] = {
+ {&(_ZTV7ee31062[4]), 4,14},
+ {&(_ZTV7ee31062[8]), 8,14},
+ {&(_ZTV7ee31062[12]), 12,14},
+ {&(_tg__ZTV6dd1062__7ee31062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee31062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31062[];
+extern VTBL_ENTRY _ZTV7ee31062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31062[];
+static VTBL_ENTRY alt_thunk_names935[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310623fooEv,_ZTv0_n12_N7ee310623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310623fooEv,_ZThn16_N7ee310623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31062 = { "ee31062", // class name
+ bases_ee31062, 4,
+ &(vtc_ee31062[0]), // expected_vtbl_contents
+ &(vtt_ee31062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31062),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names935,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41062 : dd1062 {
+ int e;
+ virtual void bar(); // _ZN7ee410623barEv
+ ~ee41062(); // tgen
+ ee41062(); // tgen
+};
+//SIG(1 ee41062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41062 ::bar(){vfunc_called(this, "_ZN7ee410623barEv");}
+ee41062 ::~ee41062(){ note_dtor("ee41062", this);} // tgen
+ee41062 ::ee41062(){ note_ctor("ee41062", this);} // tgen
+
+static void Test_ee41062()
+{
+ extern Class_Descriptor cd_ee41062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41062, buf);
+ ee41062 *dp, &lv = *(dp=new (buf) ee41062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee41062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee41062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(16,12), "ee41062");
+ check_base_class_offset(lv, (dd1062*), 0, "ee41062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41062.e");
+ test_class_info(&lv, &cd_ee41062);
+ dp->~ee41062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41062(Test_ee41062, "ee41062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41062C1Ev();
+extern void _ZN7ee41062D1Ev();
+Name_Map name_map_ee41062[] = {
+ NSPAIR(_ZN7ee41062C1Ev),
+ NSPAIR(_ZN7ee41062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee41062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41062[];
+extern void _ZN7ee410623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410623barEv,_ZTv0_n16_N7ee410623barEv)();
+extern void ABISELECT(_ZThn16_N7ee410623barEv,_ZThn12_N7ee410623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41062[0]),
+ (VTBL_ENTRY)&_ZN7ee410623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410623barEv,_ZTv0_n16_N7ee410623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee41062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee41062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee41062[] = {
+ {&(_ZTV7ee41062[3]), 3,10},
+ {&(_tg__ZTV6dd1062__7ee41062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee41062[4]), 4,6},
+ {&(_ZTV7ee41062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41062[];
+extern VTBL_ENTRY _ZTV7ee41062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41062[];
+static VTBL_ENTRY alt_thunk_names936[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410623barEv,_ZTv0_n16_N7ee410623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410623barEv,_ZThn12_N7ee410623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41062 = { "ee41062", // class name
+ bases_ee41062, 4,
+ &(vtc_ee41062[0]), // expected_vtbl_contents
+ &(vtt_ee41062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names936,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51062 : virtual dd1062 {
+ int e;
+ virtual void bar(); // _ZN7ee510623barEv
+ ~ee51062(); // tgen
+ ee51062(); // tgen
+};
+//SIG(1 ee51062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51062 ::bar(){vfunc_called(this, "_ZN7ee510623barEv");}
+ee51062 ::~ee51062(){ note_dtor("ee51062", this);} // tgen
+ee51062 ::ee51062(){ note_ctor("ee51062", this);} // tgen
+
+static void Test_ee51062()
+{
+ extern Class_Descriptor cd_ee51062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51062, buf);
+ ee51062 *dp, &lv = *(dp=new (buf) ee51062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee51062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee51062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(32,16), "ee51062");
+ check_base_class_offset(lv, (dd1062*), ABISELECT(16,8), "ee51062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51062.e");
+ test_class_info(&lv, &cd_ee51062);
+ dp->~ee51062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51062(Test_ee51062, "ee51062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51062C1Ev();
+extern void _ZN7ee51062D1Ev();
+Name_Map name_map_ee51062[] = {
+ NSPAIR(_ZN7ee51062C1Ev),
+ NSPAIR(_ZN7ee51062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee51062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 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 _ZTI7ee51062[];
+extern void _ZN7ee510623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510623barEv,_ZTv0_n16_N7ee510623barEv)();
+extern void ABISELECT(_ZThn32_N7ee510623barEv,_ZThn16_N7ee510623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51062[0]),
+ (VTBL_ENTRY)&_ZN7ee510623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51062[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510623barEv,_ZTv0_n16_N7ee510623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee51062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee51062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee51062[] = {
+ {&(_ZTV7ee51062[4]), 4,14},
+ {&(_ZTV7ee51062[8]), 8,14},
+ {&(_ZTV7ee51062[12]), 12,14},
+ {&(_tg__ZTV6dd1062__7ee51062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee51062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51062[];
+extern VTBL_ENTRY _ZTV7ee51062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51062[];
+static VTBL_ENTRY alt_thunk_names937[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510623barEv,_ZTv0_n16_N7ee510623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510623barEv,_ZThn16_N7ee510623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51062 = { "ee51062", // class name
+ bases_ee51062, 4,
+ &(vtc_ee51062[0]), // expected_vtbl_contents
+ &(vtt_ee51062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51062),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names937,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61062 : dd1062 {
+ int e;
+ virtual void foo(); // _ZN7ee610623fooEv
+ virtual void bar(); // _ZN7ee610623barEv
+ ~ee61062(); // tgen
+ ee61062(); // tgen
+};
+//SIG(1 ee61062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61062 ::foo(){vfunc_called(this, "_ZN7ee610623fooEv");}
+void ee61062 ::bar(){vfunc_called(this, "_ZN7ee610623barEv");}
+ee61062 ::~ee61062(){ note_dtor("ee61062", this);} // tgen
+ee61062 ::ee61062(){ note_ctor("ee61062", this);} // tgen
+
+static void Test_ee61062()
+{
+ extern Class_Descriptor cd_ee61062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61062, buf);
+ ee61062 *dp, &lv = *(dp=new (buf) ee61062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee61062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee61062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(16,12), "ee61062");
+ check_base_class_offset(lv, (dd1062*), 0, "ee61062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61062.e");
+ test_class_info(&lv, &cd_ee61062);
+ dp->~ee61062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61062(Test_ee61062, "ee61062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61062C1Ev();
+extern void _ZN7ee61062D1Ev();
+Name_Map name_map_ee61062[] = {
+ NSPAIR(_ZN7ee61062C1Ev),
+ NSPAIR(_ZN7ee61062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee61062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61062[];
+extern void _ZN7ee610623fooEv();
+extern void _ZN7ee610623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610623fooEv,_ZTv0_n12_N7ee610623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610623fooEv,_ZThn12_N7ee610623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610623barEv,_ZTv0_n16_N7ee610623barEv)();
+extern void ABISELECT(_ZThn16_N7ee610623barEv,_ZThn12_N7ee610623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61062[0]),
+ (VTBL_ENTRY)&_ZN7ee610623fooEv,
+ (VTBL_ENTRY)&_ZN7ee610623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610623fooEv,_ZTv0_n12_N7ee610623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610623barEv,_ZTv0_n16_N7ee610623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee61062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee61062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee61062[] = {
+ {&(_ZTV7ee61062[3]), 3,11},
+ {&(_tg__ZTV6dd1062__7ee61062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee61062[4]), 4,6},
+ {&(_ZTV7ee61062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61062[];
+extern VTBL_ENTRY _ZTV7ee61062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61062[];
+static VTBL_ENTRY alt_thunk_names938[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610623barEv,_ZTv0_n16_N7ee610623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610623barEv,_ZThn12_N7ee610623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610623fooEv,_ZTv0_n12_N7ee610623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610623fooEv,_ZThn12_N7ee610623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61062 = { "ee61062", // class name
+ bases_ee61062, 4,
+ &(vtc_ee61062[0]), // expected_vtbl_contents
+ &(vtt_ee61062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names938,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71062 : virtual dd1062 {
+ int e;
+ virtual void foo(); // _ZN7ee710623fooEv
+ virtual void bar(); // _ZN7ee710623barEv
+ ~ee71062(); // tgen
+ ee71062(); // tgen
+};
+//SIG(1 ee71062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71062 ::foo(){vfunc_called(this, "_ZN7ee710623fooEv");}
+void ee71062 ::bar(){vfunc_called(this, "_ZN7ee710623barEv");}
+ee71062 ::~ee71062(){ note_dtor("ee71062", this);} // tgen
+ee71062 ::ee71062(){ note_ctor("ee71062", this);} // tgen
+
+static void Test_ee71062()
+{
+ extern Class_Descriptor cd_ee71062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71062, buf);
+ ee71062 *dp, &lv = *(dp=new (buf) ee71062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee71062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee71062");
+ check_base_class_offset(lv, (cc062*)(dd1062*), ABISELECT(32,16), "ee71062");
+ check_base_class_offset(lv, (dd1062*), ABISELECT(16,8), "ee71062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71062.e");
+ test_class_info(&lv, &cd_ee71062);
+ dp->~ee71062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71062(Test_ee71062, "ee71062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71062C1Ev();
+extern void _ZN7ee71062D1Ev();
+Name_Map name_map_ee71062[] = {
+ NSPAIR(_ZN7ee71062C1Ev),
+ NSPAIR(_ZN7ee71062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd1062;
+extern VTBL_ENTRY _ZTI6dd1062[];
+extern VTBL_ENTRY _ZTV6dd1062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1062[];
+static Base_Class bases_ee71062[] = {
+ // 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_bb62, 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_cc062, 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_dd1062, 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 _ZTI7ee71062[];
+extern void _ZN7ee710623fooEv();
+extern void _ZN7ee710623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710623fooEv,_ZTv0_n12_N7ee710623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710623fooEv,_ZThn16_N7ee710623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710623barEv,_ZTv0_n16_N7ee710623barEv)();
+extern void ABISELECT(_ZThn32_N7ee710623barEv,_ZThn16_N7ee710623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71062[0]),
+ (VTBL_ENTRY)&_ZN7ee710623fooEv,
+ (VTBL_ENTRY)&_ZN7ee710623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71062[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710623fooEv,_ZTv0_n12_N7ee710623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710623barEv,_ZTv0_n16_N7ee710623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71062[];
+static VTBL_ENTRY _tg__ZTV6dd1062__7ee71062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd1062__7ee71062[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee71062[] = {
+ {&(_ZTV7ee71062[4]), 4,15},
+ {&(_ZTV7ee71062[9]), 9,15},
+ {&(_ZTV7ee71062[13]), 13,15},
+ {&(_tg__ZTV6dd1062__7ee71062[3]), 3,3},
+ {&(_tg__ZTV4bb625cc062__6dd1062__7ee71062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71062[];
+extern VTBL_ENTRY _ZTV7ee71062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71062[];
+static VTBL_ENTRY alt_thunk_names939[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710623barEv,_ZTv0_n16_N7ee710623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710623barEv,_ZThn16_N7ee710623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710623fooEv,_ZTv0_n12_N7ee710623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710623fooEv,_ZThn16_N7ee710623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71062 = { "ee71062", // class name
+ bases_ee71062, 4,
+ &(vtc_ee71062[0]), // expected_vtbl_contents
+ &(vtt_ee71062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71062),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names939,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2062 : cc062 {
+ int d;
+ virtual void foo(); // _ZN6dd20623fooEv
+ ~dd2062(); // tgen
+ dd2062(); // tgen
+};
+//SIG(-1 dd2062) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2062 ::foo(){vfunc_called(this, "_ZN6dd20623fooEv");}
+dd2062 ::~dd2062(){ note_dtor("dd2062", this);} // tgen
+dd2062 ::dd2062(){ note_ctor("dd2062", this);} // tgen
+
+static void Test_dd2062()
+{
+ extern Class_Descriptor cd_dd2062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2062, buf);
+ dd2062 *dp, &lv = *(dp=new (buf) dd2062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), 0, "dd2062");
+ check_base_class_offset(lv, (bb62*)(cc062*), 0, "dd2062");
+ check_base_class_offset(lv, (cc062*), 0, "dd2062");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2062.d");
+ test_class_info(&lv, &cd_dd2062);
+ dp->~dd2062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2062(Test_dd2062, "dd2062", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2062C1Ev();
+extern void _ZN6dd2062D1Ev();
+Name_Map name_map_dd2062[] = {
+ NSPAIR(_ZN6dd2062C1Ev),
+ NSPAIR(_ZN6dd2062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd2062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2062[];
+extern void _ZN6dd20623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd2062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2062[0]),
+ (VTBL_ENTRY)&_ZN6dd20623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+Class_Descriptor cd_dd2062 = { "dd2062", // class name
+ bases_dd2062, 3,
+ &(vtc_dd2062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2062),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 ee02062 : dd2062 {
+ int e;
+ ~ee02062(); // tgen
+ ee02062(); // tgen
+};
+//SIG(1 ee02062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02062 ::~ee02062(){ note_dtor("ee02062", this);} // tgen
+ee02062 ::ee02062(){ note_ctor("ee02062", this);} // tgen
+
+static void Test_ee02062()
+{
+ extern Class_Descriptor cd_ee02062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02062, buf);
+ ee02062 *dp, &lv = *(dp=new (buf) ee02062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), 0, "ee02062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), 0, "ee02062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), 0, "ee02062");
+ check_base_class_offset(lv, (dd2062*), 0, "ee02062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02062.e");
+ test_class_info(&lv, &cd_ee02062);
+ dp->~ee02062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02062(Test_ee02062, "ee02062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02062C1Ev();
+extern void _ZN7ee02062D1Ev();
+Name_Map name_map_ee02062[] = {
+ NSPAIR(_ZN7ee02062C1Ev),
+ NSPAIR(_ZN7ee02062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee02062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, 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 _ZTI7ee02062[];
+extern void _ZN6dd20623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee02062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02062[0]),
+ (VTBL_ENTRY)&_ZN6dd20623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02062[];
+extern VTBL_ENTRY _ZTV7ee02062[];
+Class_Descriptor cd_ee02062 = { "ee02062", // class name
+ bases_ee02062, 4,
+ &(vtc_ee02062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02062),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 ee12062 : virtual dd2062 {
+ int e;
+ ~ee12062(); // tgen
+ ee12062(); // tgen
+};
+//SIG(1 ee12062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12062 ::~ee12062(){ note_dtor("ee12062", this);} // tgen
+ee12062 ::ee12062(){ note_ctor("ee12062", this);} // tgen
+
+static void Test_ee12062()
+{
+ extern Class_Descriptor cd_ee12062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12062, buf);
+ ee12062 *dp, &lv = *(dp=new (buf) ee12062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee12062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee12062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), ABISELECT(16,8), "ee12062");
+ check_base_class_offset(lv, (dd2062*), ABISELECT(16,8), "ee12062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12062.e");
+ test_class_info(&lv, &cd_ee12062);
+ dp->~ee12062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12062(Test_ee12062, "ee12062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12062C1Ev();
+extern void _ZN7ee12062D1Ev();
+Name_Map name_map_ee12062[] = {
+ NSPAIR(_ZN7ee12062C1Ev),
+ NSPAIR(_ZN7ee12062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee12062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, 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 _ZTI7ee12062[];
+extern void _ZN6dd20623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee12062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12062[0]),
+ (VTBL_ENTRY)&_ZN6dd20623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12062[];
+static VTT_ENTRY vtt_ee12062[] = {
+ {&(_ZTV7ee12062[3]), 3,9},
+ {&(_ZTV7ee12062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12062[];
+extern VTBL_ENTRY _ZTV7ee12062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12062[];
+Class_Descriptor cd_ee12062 = { "ee12062", // class name
+ bases_ee12062, 4,
+ &(vtc_ee12062[0]), // expected_vtbl_contents
+ &(vtt_ee12062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12062),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 ee22062 : dd2062 {
+ int e;
+ virtual void foo(); // _ZN7ee220623fooEv
+ ~ee22062(); // tgen
+ ee22062(); // tgen
+};
+//SIG(1 ee22062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22062 ::foo(){vfunc_called(this, "_ZN7ee220623fooEv");}
+ee22062 ::~ee22062(){ note_dtor("ee22062", this);} // tgen
+ee22062 ::ee22062(){ note_ctor("ee22062", this);} // tgen
+
+static void Test_ee22062()
+{
+ extern Class_Descriptor cd_ee22062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22062, buf);
+ ee22062 *dp, &lv = *(dp=new (buf) ee22062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), 0, "ee22062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), 0, "ee22062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), 0, "ee22062");
+ check_base_class_offset(lv, (dd2062*), 0, "ee22062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22062.e");
+ test_class_info(&lv, &cd_ee22062);
+ dp->~ee22062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22062(Test_ee22062, "ee22062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22062C1Ev();
+extern void _ZN7ee22062D1Ev();
+Name_Map name_map_ee22062[] = {
+ NSPAIR(_ZN7ee22062C1Ev),
+ NSPAIR(_ZN7ee22062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee22062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22062[];
+extern void _ZN7ee220623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee22062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22062[0]),
+ (VTBL_ENTRY)&_ZN7ee220623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22062[];
+extern VTBL_ENTRY _ZTV7ee22062[];
+Class_Descriptor cd_ee22062 = { "ee22062", // class name
+ bases_ee22062, 4,
+ &(vtc_ee22062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22062),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 ee32062 : virtual dd2062 {
+ int e;
+ virtual void foo(); // _ZN7ee320623fooEv
+ ~ee32062(); // tgen
+ ee32062(); // tgen
+};
+//SIG(1 ee32062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32062 ::foo(){vfunc_called(this, "_ZN7ee320623fooEv");}
+ee32062 ::~ee32062(){ note_dtor("ee32062", this);} // tgen
+ee32062 ::ee32062(){ note_ctor("ee32062", this);} // tgen
+
+static void Test_ee32062()
+{
+ extern Class_Descriptor cd_ee32062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32062, buf);
+ ee32062 *dp, &lv = *(dp=new (buf) ee32062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee32062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee32062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), ABISELECT(16,8), "ee32062");
+ check_base_class_offset(lv, (dd2062*), ABISELECT(16,8), "ee32062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32062.e");
+ test_class_info(&lv, &cd_ee32062);
+ dp->~ee32062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32062(Test_ee32062, "ee32062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32062C1Ev();
+extern void _ZN7ee32062D1Ev();
+Name_Map name_map_ee32062[] = {
+ NSPAIR(_ZN7ee32062C1Ev),
+ NSPAIR(_ZN7ee32062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee32062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, ABISELECT(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 _ZTI7ee32062[];
+extern void _ZN7ee320623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320623fooEv,_ZTv0_n12_N7ee320623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320623fooEv,_ZThn8_N7ee320623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee32062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32062[0]),
+ (VTBL_ENTRY)&_ZN7ee320623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320623fooEv,_ZTv0_n12_N7ee320623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32062[];
+static VTT_ENTRY vtt_ee32062[] = {
+ {&(_ZTV7ee32062[3]), 3,10},
+ {&(_ZTV7ee32062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32062[];
+extern VTBL_ENTRY _ZTV7ee32062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32062[];
+static VTBL_ENTRY alt_thunk_names940[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320623fooEv,_ZTv0_n12_N7ee320623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320623fooEv,_ZThn8_N7ee320623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32062 = { "ee32062", // class name
+ bases_ee32062, 4,
+ &(vtc_ee32062[0]), // expected_vtbl_contents
+ &(vtt_ee32062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32062),2, //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 ee42062 : dd2062 {
+ int e;
+ virtual void bar(); // _ZN7ee420623barEv
+ ~ee42062(); // tgen
+ ee42062(); // tgen
+};
+//SIG(1 ee42062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42062 ::bar(){vfunc_called(this, "_ZN7ee420623barEv");}
+ee42062 ::~ee42062(){ note_dtor("ee42062", this);} // tgen
+ee42062 ::ee42062(){ note_ctor("ee42062", this);} // tgen
+
+static void Test_ee42062()
+{
+ extern Class_Descriptor cd_ee42062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42062, buf);
+ ee42062 *dp, &lv = *(dp=new (buf) ee42062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), 0, "ee42062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), 0, "ee42062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), 0, "ee42062");
+ check_base_class_offset(lv, (dd2062*), 0, "ee42062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42062.e");
+ test_class_info(&lv, &cd_ee42062);
+ dp->~ee42062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42062(Test_ee42062, "ee42062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42062C1Ev();
+extern void _ZN7ee42062D1Ev();
+Name_Map name_map_ee42062[] = {
+ NSPAIR(_ZN7ee42062C1Ev),
+ NSPAIR(_ZN7ee42062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee42062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42062[];
+extern void _ZN6dd20623fooEv();
+extern void _ZN7ee420623barEv();
+static VTBL_ENTRY vtc_ee42062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42062[0]),
+ (VTBL_ENTRY)&_ZN6dd20623fooEv,
+ (VTBL_ENTRY)&_ZN7ee420623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42062[];
+extern VTBL_ENTRY _ZTV7ee42062[];
+Class_Descriptor cd_ee42062 = { "ee42062", // class name
+ bases_ee42062, 4,
+ &(vtc_ee42062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42062),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 ee52062 : virtual dd2062 {
+ int e;
+ virtual void bar(); // _ZN7ee520623barEv
+ ~ee52062(); // tgen
+ ee52062(); // tgen
+};
+//SIG(1 ee52062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52062 ::bar(){vfunc_called(this, "_ZN7ee520623barEv");}
+ee52062 ::~ee52062(){ note_dtor("ee52062", this);} // tgen
+ee52062 ::ee52062(){ note_ctor("ee52062", this);} // tgen
+
+static void Test_ee52062()
+{
+ extern Class_Descriptor cd_ee52062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52062, buf);
+ ee52062 *dp, &lv = *(dp=new (buf) ee52062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee52062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee52062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), ABISELECT(16,8), "ee52062");
+ check_base_class_offset(lv, (dd2062*), ABISELECT(16,8), "ee52062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52062.e");
+ test_class_info(&lv, &cd_ee52062);
+ dp->~ee52062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52062(Test_ee52062, "ee52062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52062C1Ev();
+extern void _ZN7ee52062D1Ev();
+Name_Map name_map_ee52062[] = {
+ NSPAIR(_ZN7ee52062C1Ev),
+ NSPAIR(_ZN7ee52062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee52062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, ABISELECT(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 _ZTI7ee52062[];
+extern void _ZN7ee520623barEv();
+extern void _ZN6dd20623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520623barEv,_ZTv0_n16_N7ee520623barEv)();
+extern void ABISELECT(_ZThn16_N7ee520623barEv,_ZThn8_N7ee520623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52062[0]),
+ (VTBL_ENTRY)&_ZN7ee520623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52062[0]),
+ (VTBL_ENTRY)&_ZN6dd20623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520623barEv,_ZTv0_n16_N7ee520623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52062[];
+static VTT_ENTRY vtt_ee52062[] = {
+ {&(_ZTV7ee52062[3]), 3,10},
+ {&(_ZTV7ee52062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52062[];
+extern VTBL_ENTRY _ZTV7ee52062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52062[];
+static VTBL_ENTRY alt_thunk_names941[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520623barEv,_ZTv0_n16_N7ee520623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520623barEv,_ZThn8_N7ee520623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52062 = { "ee52062", // class name
+ bases_ee52062, 4,
+ &(vtc_ee52062[0]), // expected_vtbl_contents
+ &(vtt_ee52062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52062),2, //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 ee62062 : dd2062 {
+ int e;
+ virtual void foo(); // _ZN7ee620623fooEv
+ virtual void bar(); // _ZN7ee620623barEv
+ ~ee62062(); // tgen
+ ee62062(); // tgen
+};
+//SIG(1 ee62062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62062 ::foo(){vfunc_called(this, "_ZN7ee620623fooEv");}
+void ee62062 ::bar(){vfunc_called(this, "_ZN7ee620623barEv");}
+ee62062 ::~ee62062(){ note_dtor("ee62062", this);} // tgen
+ee62062 ::ee62062(){ note_ctor("ee62062", this);} // tgen
+
+static void Test_ee62062()
+{
+ extern Class_Descriptor cd_ee62062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62062, buf);
+ ee62062 *dp, &lv = *(dp=new (buf) ee62062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), 0, "ee62062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), 0, "ee62062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), 0, "ee62062");
+ check_base_class_offset(lv, (dd2062*), 0, "ee62062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62062.e");
+ test_class_info(&lv, &cd_ee62062);
+ dp->~ee62062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62062(Test_ee62062, "ee62062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62062C1Ev();
+extern void _ZN7ee62062D1Ev();
+Name_Map name_map_ee62062[] = {
+ NSPAIR(_ZN7ee62062C1Ev),
+ NSPAIR(_ZN7ee62062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee62062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62062[];
+extern void _ZN7ee620623fooEv();
+extern void _ZN7ee620623barEv();
+static VTBL_ENTRY vtc_ee62062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62062[0]),
+ (VTBL_ENTRY)&_ZN7ee620623fooEv,
+ (VTBL_ENTRY)&_ZN7ee620623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62062[];
+extern VTBL_ENTRY _ZTV7ee62062[];
+Class_Descriptor cd_ee62062 = { "ee62062", // class name
+ bases_ee62062, 4,
+ &(vtc_ee62062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62062),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 ee72062 : virtual dd2062 {
+ int e;
+ virtual void foo(); // _ZN7ee720623fooEv
+ virtual void bar(); // _ZN7ee720623barEv
+ ~ee72062(); // tgen
+ ee72062(); // tgen
+};
+//SIG(1 ee72062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72062 ::foo(){vfunc_called(this, "_ZN7ee720623fooEv");}
+void ee72062 ::bar(){vfunc_called(this, "_ZN7ee720623barEv");}
+ee72062 ::~ee72062(){ note_dtor("ee72062", this);} // tgen
+ee72062 ::ee72062(){ note_ctor("ee72062", this);} // tgen
+
+static void Test_ee72062()
+{
+ extern Class_Descriptor cd_ee72062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72062, buf);
+ ee72062 *dp, &lv = *(dp=new (buf) ee72062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee72062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd2062*), ABISELECT(16,8), "ee72062");
+ check_base_class_offset(lv, (cc062*)(dd2062*), ABISELECT(16,8), "ee72062");
+ check_base_class_offset(lv, (dd2062*), ABISELECT(16,8), "ee72062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72062.e");
+ test_class_info(&lv, &cd_ee72062);
+ dp->~ee72062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72062(Test_ee72062, "ee72062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72062C1Ev();
+extern void _ZN7ee72062D1Ev();
+Name_Map name_map_ee72062[] = {
+ NSPAIR(_ZN7ee72062C1Ev),
+ NSPAIR(_ZN7ee72062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd2062;
+extern VTBL_ENTRY _ZTI6dd2062[];
+extern VTBL_ENTRY _ZTV6dd2062[];
+static Base_Class bases_ee72062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2062, ABISELECT(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 _ZTI7ee72062[];
+extern void _ZN7ee720623fooEv();
+extern void _ZN7ee720623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720623fooEv,_ZTv0_n12_N7ee720623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720623fooEv,_ZThn8_N7ee720623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720623barEv,_ZTv0_n16_N7ee720623barEv)();
+extern void ABISELECT(_ZThn16_N7ee720623barEv,_ZThn8_N7ee720623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72062[0]),
+ (VTBL_ENTRY)&_ZN7ee720623fooEv,
+ (VTBL_ENTRY)&_ZN7ee720623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720623fooEv,_ZTv0_n12_N7ee720623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720623barEv,_ZTv0_n16_N7ee720623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72062[];
+static VTT_ENTRY vtt_ee72062[] = {
+ {&(_ZTV7ee72062[3]), 3,11},
+ {&(_ZTV7ee72062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72062[];
+extern VTBL_ENTRY _ZTV7ee72062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72062[];
+static VTBL_ENTRY alt_thunk_names942[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720623barEv,_ZTv0_n16_N7ee720623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720623barEv,_ZThn8_N7ee720623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720623fooEv,_ZTv0_n12_N7ee720623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720623fooEv,_ZThn8_N7ee720623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72062 = { "ee72062", // class name
+ bases_ee72062, 4,
+ &(vtc_ee72062[0]), // expected_vtbl_contents
+ &(vtt_ee72062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72062),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names942,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3062 : virtual cc062 {
+ int d;
+ virtual void foo(); // _ZN6dd30623fooEv
+ ~dd3062(); // tgen
+ dd3062(); // tgen
+};
+//SIG(-1 dd3062) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3062 ::foo(){vfunc_called(this, "_ZN6dd30623fooEv");}
+dd3062 ::~dd3062(){ note_dtor("dd3062", this);} // tgen
+dd3062 ::dd3062(){ note_ctor("dd3062", this);} // tgen
+
+static void Test_dd3062()
+{
+ extern Class_Descriptor cd_dd3062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3062, buf);
+ dd3062 *dp, &lv = *(dp=new (buf) dd3062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,8), "dd3062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,8), "dd3062");
+ check_base_class_offset(lv, (cc062*), ABISELECT(16,8), "dd3062");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3062.d");
+ test_class_info(&lv, &cd_dd3062);
+ dp->~dd3062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3062(Test_dd3062, "dd3062", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3062C1Ev();
+extern void _ZN6dd3062D1Ev();
+Name_Map name_map_dd3062[] = {
+ NSPAIR(_ZN6dd3062C1Ev),
+ NSPAIR(_ZN6dd3062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd3062[] = {
+ // 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_bb62, 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_cc062, 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 _ZTI6dd3062[];
+extern void _ZN6dd30623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd3062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3062[];
+static VTT_ENTRY vtt_dd3062[] = {
+ {&(_ZTV6dd3062[3]), 3,10},
+ {&(_ZTV6dd3062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static VTBL_ENTRY alt_thunk_names943[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3062 = { "dd3062", // class name
+ bases_dd3062, 3,
+ &(vtc_dd3062[0]), // expected_vtbl_contents
+ &(vtt_dd3062[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3062),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names943,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03062 : dd3062 {
+ int e;
+ ~ee03062(); // tgen
+ ee03062(); // tgen
+};
+//SIG(1 ee03062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03062 ::~ee03062(){ note_dtor("ee03062", this);} // tgen
+ee03062 ::ee03062(){ note_ctor("ee03062", this);} // tgen
+
+static void Test_ee03062()
+{
+ extern Class_Descriptor cd_ee03062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03062, buf);
+ ee03062 *dp, &lv = *(dp=new (buf) ee03062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee03062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee03062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(16,12), "ee03062");
+ check_base_class_offset(lv, (dd3062*), 0, "ee03062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03062.e");
+ test_class_info(&lv, &cd_ee03062);
+ dp->~ee03062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03062(Test_ee03062, "ee03062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03062C1Ev();
+extern void _ZN7ee03062D1Ev();
+Name_Map name_map_ee03062[] = {
+ NSPAIR(_ZN7ee03062C1Ev),
+ NSPAIR(_ZN7ee03062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee03062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03062[];
+extern void _ZN6dd30623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee03062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee03062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee03062[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee03062[] = {
+ {&(_ZTV7ee03062[3]), 3,10},
+ {&(_tg__ZTV6dd3062__7ee03062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee03062[4]), 4,6},
+ {&(_ZTV7ee03062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03062[];
+extern VTBL_ENTRY _ZTV7ee03062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03062[];
+static VTBL_ENTRY alt_thunk_names944[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03062 = { "ee03062", // class name
+ bases_ee03062, 4,
+ &(vtc_ee03062[0]), // expected_vtbl_contents
+ &(vtt_ee03062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names944,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13062 : virtual dd3062 {
+ int e;
+ ~ee13062(); // tgen
+ ee13062(); // tgen
+};
+//SIG(1 ee13062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13062 ::~ee13062(){ note_dtor("ee13062", this);} // tgen
+ee13062 ::ee13062(){ note_ctor("ee13062", this);} // tgen
+
+static void Test_ee13062()
+{
+ extern Class_Descriptor cd_ee13062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13062, buf);
+ ee13062 *dp, &lv = *(dp=new (buf) ee13062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee13062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee13062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(32,16), "ee13062");
+ check_base_class_offset(lv, (dd3062*), ABISELECT(16,8), "ee13062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13062.e");
+ test_class_info(&lv, &cd_ee13062);
+ dp->~ee13062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13062(Test_ee13062, "ee13062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13062C1Ev();
+extern void _ZN7ee13062D1Ev();
+Name_Map name_map_ee13062[] = {
+ NSPAIR(_ZN7ee13062C1Ev),
+ NSPAIR(_ZN7ee13062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee13062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, ABISELECT(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 _ZTI7ee13062[];
+extern void _ZN6dd30623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee13062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13062[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee13062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee13062[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee13062[] = {
+ {&(_ZTV7ee13062[4]), 4,15},
+ {&(_ZTV7ee13062[8]), 8,15},
+ {&(_ZTV7ee13062[13]), 13,15},
+ {&(_tg__ZTV6dd3062__7ee13062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee13062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13062[];
+extern VTBL_ENTRY _ZTV7ee13062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13062[];
+static VTBL_ENTRY alt_thunk_names945[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13062 = { "ee13062", // class name
+ bases_ee13062, 4,
+ &(vtc_ee13062[0]), // expected_vtbl_contents
+ &(vtt_ee13062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13062),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13062),5, //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 ee23062 : dd3062 {
+ int e;
+ virtual void foo(); // _ZN7ee230623fooEv
+ ~ee23062(); // tgen
+ ee23062(); // tgen
+};
+//SIG(1 ee23062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23062 ::foo(){vfunc_called(this, "_ZN7ee230623fooEv");}
+ee23062 ::~ee23062(){ note_dtor("ee23062", this);} // tgen
+ee23062 ::ee23062(){ note_ctor("ee23062", this);} // tgen
+
+static void Test_ee23062()
+{
+ extern Class_Descriptor cd_ee23062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23062, buf);
+ ee23062 *dp, &lv = *(dp=new (buf) ee23062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee23062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee23062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(16,12), "ee23062");
+ check_base_class_offset(lv, (dd3062*), 0, "ee23062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23062.e");
+ test_class_info(&lv, &cd_ee23062);
+ dp->~ee23062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23062(Test_ee23062, "ee23062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23062C1Ev();
+extern void _ZN7ee23062D1Ev();
+Name_Map name_map_ee23062[] = {
+ NSPAIR(_ZN7ee23062C1Ev),
+ NSPAIR(_ZN7ee23062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee23062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23062[];
+extern void _ZN7ee230623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230623fooEv,_ZTv0_n12_N7ee230623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230623fooEv,_ZThn12_N7ee230623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee23062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23062[0]),
+ (VTBL_ENTRY)&_ZN7ee230623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230623fooEv,_ZTv0_n12_N7ee230623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee23062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee23062[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee23062[] = {
+ {&(_ZTV7ee23062[3]), 3,10},
+ {&(_tg__ZTV6dd3062__7ee23062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee23062[4]), 4,6},
+ {&(_ZTV7ee23062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23062[];
+extern VTBL_ENTRY _ZTV7ee23062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23062[];
+static VTBL_ENTRY alt_thunk_names946[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230623fooEv,_ZTv0_n12_N7ee230623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230623fooEv,_ZThn12_N7ee230623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23062 = { "ee23062", // class name
+ bases_ee23062, 4,
+ &(vtc_ee23062[0]), // expected_vtbl_contents
+ &(vtt_ee23062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names946,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33062 : virtual dd3062 {
+ int e;
+ virtual void foo(); // _ZN7ee330623fooEv
+ ~ee33062(); // tgen
+ ee33062(); // tgen
+};
+//SIG(1 ee33062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33062 ::foo(){vfunc_called(this, "_ZN7ee330623fooEv");}
+ee33062 ::~ee33062(){ note_dtor("ee33062", this);} // tgen
+ee33062 ::ee33062(){ note_ctor("ee33062", this);} // tgen
+
+static void Test_ee33062()
+{
+ extern Class_Descriptor cd_ee33062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33062, buf);
+ ee33062 *dp, &lv = *(dp=new (buf) ee33062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee33062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee33062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(32,16), "ee33062");
+ check_base_class_offset(lv, (dd3062*), ABISELECT(16,8), "ee33062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33062.e");
+ test_class_info(&lv, &cd_ee33062);
+ dp->~ee33062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33062(Test_ee33062, "ee33062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33062C1Ev();
+extern void _ZN7ee33062D1Ev();
+Name_Map name_map_ee33062[] = {
+ NSPAIR(_ZN7ee33062C1Ev),
+ NSPAIR(_ZN7ee33062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee33062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, ABISELECT(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 _ZTI7ee33062[];
+extern void _ZN7ee330623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330623fooEv,_ZTv0_n16_N7ee330623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330623fooEv,_ZThn8_N7ee330623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330623fooEv,_ZTv0_n12_N7ee330623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330623fooEv,_ZThn16_N7ee330623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee33062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33062[0]),
+ (VTBL_ENTRY)&_ZN7ee330623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330623fooEv,_ZTv0_n16_N7ee330623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330623fooEv,_ZTv0_n12_N7ee330623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee33062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee33062[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee33062[] = {
+ {&(_ZTV7ee33062[4]), 4,16},
+ {&(_ZTV7ee33062[9]), 9,16},
+ {&(_ZTV7ee33062[14]), 14,16},
+ {&(_tg__ZTV6dd3062__7ee33062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee33062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33062[];
+extern VTBL_ENTRY _ZTV7ee33062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33062[];
+static VTBL_ENTRY alt_thunk_names947[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330623fooEv,_ZTv0_n12_N7ee330623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330623fooEv,_ZThn16_N7ee330623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330623fooEv,_ZTv0_n16_N7ee330623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330623fooEv,_ZThn8_N7ee330623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33062 = { "ee33062", // class name
+ bases_ee33062, 4,
+ &(vtc_ee33062[0]), // expected_vtbl_contents
+ &(vtt_ee33062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33062),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names947,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43062 : dd3062 {
+ int e;
+ virtual void bar(); // _ZN7ee430623barEv
+ ~ee43062(); // tgen
+ ee43062(); // tgen
+};
+//SIG(1 ee43062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43062 ::bar(){vfunc_called(this, "_ZN7ee430623barEv");}
+ee43062 ::~ee43062(){ note_dtor("ee43062", this);} // tgen
+ee43062 ::ee43062(){ note_ctor("ee43062", this);} // tgen
+
+static void Test_ee43062()
+{
+ extern Class_Descriptor cd_ee43062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43062, buf);
+ ee43062 *dp, &lv = *(dp=new (buf) ee43062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee43062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee43062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(16,12), "ee43062");
+ check_base_class_offset(lv, (dd3062*), 0, "ee43062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43062.e");
+ test_class_info(&lv, &cd_ee43062);
+ dp->~ee43062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43062(Test_ee43062, "ee43062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43062C1Ev();
+extern void _ZN7ee43062D1Ev();
+Name_Map name_map_ee43062[] = {
+ NSPAIR(_ZN7ee43062C1Ev),
+ NSPAIR(_ZN7ee43062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee43062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43062[];
+extern void _ZN6dd30623fooEv();
+extern void _ZN7ee430623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee430623barEv,_ZTv0_n16_N7ee430623barEv)();
+extern void ABISELECT(_ZThn16_N7ee430623barEv,_ZThn12_N7ee430623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+ (VTBL_ENTRY)&_ZN7ee430623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430623barEv,_ZTv0_n16_N7ee430623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee43062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee43062[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee43062[] = {
+ {&(_ZTV7ee43062[3]), 3,11},
+ {&(_tg__ZTV6dd3062__7ee43062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee43062[4]), 4,6},
+ {&(_ZTV7ee43062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43062[];
+extern VTBL_ENTRY _ZTV7ee43062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43062[];
+static VTBL_ENTRY alt_thunk_names948[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430623barEv,_ZTv0_n16_N7ee430623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430623barEv,_ZThn12_N7ee430623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43062 = { "ee43062", // class name
+ bases_ee43062, 4,
+ &(vtc_ee43062[0]), // expected_vtbl_contents
+ &(vtt_ee43062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names948,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53062 : virtual dd3062 {
+ int e;
+ virtual void bar(); // _ZN7ee530623barEv
+ ~ee53062(); // tgen
+ ee53062(); // tgen
+};
+//SIG(1 ee53062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53062 ::bar(){vfunc_called(this, "_ZN7ee530623barEv");}
+ee53062 ::~ee53062(){ note_dtor("ee53062", this);} // tgen
+ee53062 ::ee53062(){ note_ctor("ee53062", this);} // tgen
+
+static void Test_ee53062()
+{
+ extern Class_Descriptor cd_ee53062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53062, buf);
+ ee53062 *dp, &lv = *(dp=new (buf) ee53062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee53062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee53062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(32,16), "ee53062");
+ check_base_class_offset(lv, (dd3062*), ABISELECT(16,8), "ee53062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53062.e");
+ test_class_info(&lv, &cd_ee53062);
+ dp->~ee53062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53062(Test_ee53062, "ee53062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53062C1Ev();
+extern void _ZN7ee53062D1Ev();
+Name_Map name_map_ee53062[] = {
+ NSPAIR(_ZN7ee53062C1Ev),
+ NSPAIR(_ZN7ee53062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee53062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, ABISELECT(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 _ZTI7ee53062[];
+extern void _ZN7ee530623barEv();
+extern void _ZN6dd30623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee530623barEv,_ZTv0_n16_N7ee530623barEv)();
+extern void ABISELECT(_ZThn32_N7ee530623barEv,_ZThn16_N7ee530623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53062[0]),
+ (VTBL_ENTRY)&_ZN7ee530623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530623barEv,_ZTv0_n16_N7ee530623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee53062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee53062[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee53062[] = {
+ {&(_ZTV7ee53062[4]), 4,16},
+ {&(_ZTV7ee53062[9]), 9,16},
+ {&(_ZTV7ee53062[14]), 14,16},
+ {&(_tg__ZTV6dd3062__7ee53062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee53062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53062[];
+extern VTBL_ENTRY _ZTV7ee53062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53062[];
+static VTBL_ENTRY alt_thunk_names949[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530623barEv,_ZTv0_n16_N7ee530623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530623barEv,_ZThn16_N7ee530623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53062 = { "ee53062", // class name
+ bases_ee53062, 4,
+ &(vtc_ee53062[0]), // expected_vtbl_contents
+ &(vtt_ee53062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53062),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names949,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63062 : dd3062 {
+ int e;
+ virtual void foo(); // _ZN7ee630623fooEv
+ virtual void bar(); // _ZN7ee630623barEv
+ ~ee63062(); // tgen
+ ee63062(); // tgen
+};
+//SIG(1 ee63062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63062 ::foo(){vfunc_called(this, "_ZN7ee630623fooEv");}
+void ee63062 ::bar(){vfunc_called(this, "_ZN7ee630623barEv");}
+ee63062 ::~ee63062(){ note_dtor("ee63062", this);} // tgen
+ee63062 ::ee63062(){ note_ctor("ee63062", this);} // tgen
+
+static void Test_ee63062()
+{
+ extern Class_Descriptor cd_ee63062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63062, buf);
+ ee63062 *dp, &lv = *(dp=new (buf) ee63062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee63062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee63062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(16,12), "ee63062");
+ check_base_class_offset(lv, (dd3062*), 0, "ee63062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63062.e");
+ test_class_info(&lv, &cd_ee63062);
+ dp->~ee63062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63062(Test_ee63062, "ee63062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63062C1Ev();
+extern void _ZN7ee63062D1Ev();
+Name_Map name_map_ee63062[] = {
+ NSPAIR(_ZN7ee63062C1Ev),
+ NSPAIR(_ZN7ee63062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee63062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63062[];
+extern void _ZN7ee630623fooEv();
+extern void _ZN7ee630623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630623fooEv,_ZTv0_n12_N7ee630623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630623fooEv,_ZThn12_N7ee630623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630623barEv,_ZTv0_n16_N7ee630623barEv)();
+extern void ABISELECT(_ZThn16_N7ee630623barEv,_ZThn12_N7ee630623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63062[0]),
+ (VTBL_ENTRY)&_ZN7ee630623fooEv,
+ (VTBL_ENTRY)&_ZN7ee630623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630623fooEv,_ZTv0_n12_N7ee630623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630623barEv,_ZTv0_n16_N7ee630623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee63062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee63062[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee63062[] = {
+ {&(_ZTV7ee63062[3]), 3,11},
+ {&(_tg__ZTV6dd3062__7ee63062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee63062[4]), 4,6},
+ {&(_ZTV7ee63062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63062[];
+extern VTBL_ENTRY _ZTV7ee63062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63062[];
+static VTBL_ENTRY alt_thunk_names950[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn12_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630623barEv,_ZTv0_n16_N7ee630623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630623barEv,_ZThn12_N7ee630623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630623fooEv,_ZTv0_n12_N7ee630623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630623fooEv,_ZThn12_N7ee630623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63062 = { "ee63062", // class name
+ bases_ee63062, 4,
+ &(vtc_ee63062[0]), // expected_vtbl_contents
+ &(vtt_ee63062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names950,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73062 : virtual dd3062 {
+ int e;
+ virtual void foo(); // _ZN7ee730623fooEv
+ virtual void bar(); // _ZN7ee730623barEv
+ ~ee73062(); // tgen
+ ee73062(); // tgen
+};
+//SIG(1 ee73062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73062 ::foo(){vfunc_called(this, "_ZN7ee730623fooEv");}
+void ee73062 ::bar(){vfunc_called(this, "_ZN7ee730623barEv");}
+ee73062 ::~ee73062(){ note_dtor("ee73062", this);} // tgen
+ee73062 ::ee73062(){ note_ctor("ee73062", this);} // tgen
+
+static void Test_ee73062()
+{
+ extern Class_Descriptor cd_ee73062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73062, buf);
+ ee73062 *dp, &lv = *(dp=new (buf) ee73062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee73062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee73062");
+ check_base_class_offset(lv, (cc062*)(dd3062*), ABISELECT(32,16), "ee73062");
+ check_base_class_offset(lv, (dd3062*), ABISELECT(16,8), "ee73062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73062.e");
+ test_class_info(&lv, &cd_ee73062);
+ dp->~ee73062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73062(Test_ee73062, "ee73062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73062C1Ev();
+extern void _ZN7ee73062D1Ev();
+Name_Map name_map_ee73062[] = {
+ NSPAIR(_ZN7ee73062C1Ev),
+ NSPAIR(_ZN7ee73062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd3062;
+extern VTBL_ENTRY _ZTI6dd3062[];
+extern VTBL_ENTRY _ZTV6dd3062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3062[];
+static Base_Class bases_ee73062[] = {
+ // 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_bb62, 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_cc062, 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_dd3062, 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 _ZTI7ee73062[];
+extern void _ZN7ee730623fooEv();
+extern void _ZN7ee730623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730623fooEv,_ZTv0_n16_N7ee730623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730623fooEv,_ZThn8_N7ee730623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730623fooEv,_ZTv0_n12_N7ee730623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730623fooEv,_ZThn16_N7ee730623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730623barEv,_ZTv0_n16_N7ee730623barEv)();
+extern void ABISELECT(_ZThn32_N7ee730623barEv,_ZThn16_N7ee730623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73062[0]),
+ (VTBL_ENTRY)&_ZN7ee730623fooEv,
+ (VTBL_ENTRY)&_ZN7ee730623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730623fooEv,_ZTv0_n16_N7ee730623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730623fooEv,_ZTv0_n12_N7ee730623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730623barEv,_ZTv0_n16_N7ee730623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73062[];
+extern void _ZN6dd30623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3062__7ee73062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&_ZN6dd30623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd3062__7ee73062[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee73062[] = {
+ {&(_ZTV7ee73062[4]), 4,17},
+ {&(_ZTV7ee73062[10]), 10,17},
+ {&(_ZTV7ee73062[15]), 15,17},
+ {&(_tg__ZTV6dd3062__7ee73062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd3062__7ee73062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73062[];
+extern VTBL_ENTRY _ZTV7ee73062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73062[];
+static VTBL_ENTRY alt_thunk_names951[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30623fooEv,_ZTv0_n12_N6dd30623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30623fooEv,_ZThn8_N6dd30623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730623barEv,_ZTv0_n16_N7ee730623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730623barEv,_ZThn16_N7ee730623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730623fooEv,_ZTv0_n12_N7ee730623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730623fooEv,_ZThn16_N7ee730623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730623fooEv,_ZTv0_n16_N7ee730623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730623fooEv,_ZThn8_N7ee730623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73062 = { "ee73062", // class name
+ bases_ee73062, 4,
+ &(vtc_ee73062[0]), // expected_vtbl_contents
+ &(vtt_ee73062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73062),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names951,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4062 : cc062 {
+ int d;
+ virtual void bar(); // _ZN6dd40623barEv
+ ~dd4062(); // tgen
+ dd4062(); // tgen
+};
+//SIG(-1 dd4062) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4062 ::bar(){vfunc_called(this, "_ZN6dd40623barEv");}
+dd4062 ::~dd4062(){ note_dtor("dd4062", this);} // tgen
+dd4062 ::dd4062(){ note_ctor("dd4062", this);} // tgen
+
+static void Test_dd4062()
+{
+ extern Class_Descriptor cd_dd4062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4062, buf);
+ dd4062 *dp, &lv = *(dp=new (buf) dd4062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), 0, "dd4062");
+ check_base_class_offset(lv, (bb62*)(cc062*), 0, "dd4062");
+ check_base_class_offset(lv, (cc062*), 0, "dd4062");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4062.d");
+ test_class_info(&lv, &cd_dd4062);
+ dp->~dd4062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4062(Test_dd4062, "dd4062", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4062C1Ev();
+extern void _ZN6dd4062D1Ev();
+Name_Map name_map_dd4062[] = {
+ NSPAIR(_ZN6dd4062C1Ev),
+ NSPAIR(_ZN6dd4062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd4062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd40623barEv();
+static VTBL_ENTRY vtc_dd4062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd40623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+Class_Descriptor cd_dd4062 = { "dd4062", // class name
+ bases_dd4062, 3,
+ &(vtc_dd4062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4062),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 ee04062 : dd4062 {
+ int e;
+ ~ee04062(); // tgen
+ ee04062(); // tgen
+};
+//SIG(1 ee04062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04062 ::~ee04062(){ note_dtor("ee04062", this);} // tgen
+ee04062 ::ee04062(){ note_ctor("ee04062", this);} // tgen
+
+static void Test_ee04062()
+{
+ extern Class_Descriptor cd_ee04062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04062, buf);
+ ee04062 *dp, &lv = *(dp=new (buf) ee04062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), 0, "ee04062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), 0, "ee04062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), 0, "ee04062");
+ check_base_class_offset(lv, (dd4062*), 0, "ee04062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04062.e");
+ test_class_info(&lv, &cd_ee04062);
+ dp->~ee04062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04062(Test_ee04062, "ee04062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04062C1Ev();
+extern void _ZN7ee04062D1Ev();
+Name_Map name_map_ee04062[] = {
+ NSPAIR(_ZN7ee04062C1Ev),
+ NSPAIR(_ZN7ee04062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee04062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, 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 _ZTI7ee04062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd40623barEv();
+static VTBL_ENTRY vtc_ee04062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd40623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04062[];
+extern VTBL_ENTRY _ZTV7ee04062[];
+Class_Descriptor cd_ee04062 = { "ee04062", // class name
+ bases_ee04062, 4,
+ &(vtc_ee04062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04062),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 ee14062 : virtual dd4062 {
+ int e;
+ ~ee14062(); // tgen
+ ee14062(); // tgen
+};
+//SIG(1 ee14062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14062 ::~ee14062(){ note_dtor("ee14062", this);} // tgen
+ee14062 ::ee14062(){ note_ctor("ee14062", this);} // tgen
+
+static void Test_ee14062()
+{
+ extern Class_Descriptor cd_ee14062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14062, buf);
+ ee14062 *dp, &lv = *(dp=new (buf) ee14062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee14062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee14062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), ABISELECT(16,8), "ee14062");
+ check_base_class_offset(lv, (dd4062*), ABISELECT(16,8), "ee14062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14062.e");
+ test_class_info(&lv, &cd_ee14062);
+ dp->~ee14062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14062(Test_ee14062, "ee14062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14062C1Ev();
+extern void _ZN7ee14062D1Ev();
+Name_Map name_map_ee14062[] = {
+ NSPAIR(_ZN7ee14062C1Ev),
+ NSPAIR(_ZN7ee14062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee14062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, 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 _ZTI7ee14062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd40623barEv();
+static VTBL_ENTRY vtc_ee14062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd40623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14062[];
+static VTT_ENTRY vtt_ee14062[] = {
+ {&(_ZTV7ee14062[3]), 3,9},
+ {&(_ZTV7ee14062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14062[];
+extern VTBL_ENTRY _ZTV7ee14062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14062[];
+Class_Descriptor cd_ee14062 = { "ee14062", // class name
+ bases_ee14062, 4,
+ &(vtc_ee14062[0]), // expected_vtbl_contents
+ &(vtt_ee14062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14062),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 ee24062 : dd4062 {
+ int e;
+ virtual void foo(); // _ZN7ee240623fooEv
+ ~ee24062(); // tgen
+ ee24062(); // tgen
+};
+//SIG(1 ee24062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24062 ::foo(){vfunc_called(this, "_ZN7ee240623fooEv");}
+ee24062 ::~ee24062(){ note_dtor("ee24062", this);} // tgen
+ee24062 ::ee24062(){ note_ctor("ee24062", this);} // tgen
+
+static void Test_ee24062()
+{
+ extern Class_Descriptor cd_ee24062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24062, buf);
+ ee24062 *dp, &lv = *(dp=new (buf) ee24062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), 0, "ee24062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), 0, "ee24062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), 0, "ee24062");
+ check_base_class_offset(lv, (dd4062*), 0, "ee24062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24062.e");
+ test_class_info(&lv, &cd_ee24062);
+ dp->~ee24062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24062(Test_ee24062, "ee24062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24062C1Ev();
+extern void _ZN7ee24062D1Ev();
+Name_Map name_map_ee24062[] = {
+ NSPAIR(_ZN7ee24062C1Ev),
+ NSPAIR(_ZN7ee24062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee24062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24062[];
+extern void _ZN7ee240623fooEv();
+extern void _ZN6dd40623barEv();
+static VTBL_ENTRY vtc_ee24062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24062[0]),
+ (VTBL_ENTRY)&_ZN7ee240623fooEv,
+ (VTBL_ENTRY)&_ZN6dd40623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24062[];
+extern VTBL_ENTRY _ZTV7ee24062[];
+Class_Descriptor cd_ee24062 = { "ee24062", // class name
+ bases_ee24062, 4,
+ &(vtc_ee24062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24062),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 ee34062 : virtual dd4062 {
+ int e;
+ virtual void foo(); // _ZN7ee340623fooEv
+ ~ee34062(); // tgen
+ ee34062(); // tgen
+};
+//SIG(1 ee34062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34062 ::foo(){vfunc_called(this, "_ZN7ee340623fooEv");}
+ee34062 ::~ee34062(){ note_dtor("ee34062", this);} // tgen
+ee34062 ::ee34062(){ note_ctor("ee34062", this);} // tgen
+
+static void Test_ee34062()
+{
+ extern Class_Descriptor cd_ee34062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34062, buf);
+ ee34062 *dp, &lv = *(dp=new (buf) ee34062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee34062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee34062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), ABISELECT(16,8), "ee34062");
+ check_base_class_offset(lv, (dd4062*), ABISELECT(16,8), "ee34062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34062.e");
+ test_class_info(&lv, &cd_ee34062);
+ dp->~ee34062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34062(Test_ee34062, "ee34062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34062C1Ev();
+extern void _ZN7ee34062D1Ev();
+Name_Map name_map_ee34062[] = {
+ NSPAIR(_ZN7ee34062C1Ev),
+ NSPAIR(_ZN7ee34062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee34062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, ABISELECT(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 _ZTI7ee34062[];
+extern void _ZN7ee340623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340623fooEv,_ZTv0_n12_N7ee340623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340623fooEv,_ZThn8_N7ee340623fooEv)() __attribute__((weak));
+extern void _ZN6dd40623barEv();
+static VTBL_ENTRY vtc_ee34062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34062[0]),
+ (VTBL_ENTRY)&_ZN7ee340623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340623fooEv,_ZTv0_n12_N7ee340623fooEv),
+ (VTBL_ENTRY)&_ZN6dd40623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34062[];
+static VTT_ENTRY vtt_ee34062[] = {
+ {&(_ZTV7ee34062[3]), 3,10},
+ {&(_ZTV7ee34062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34062[];
+extern VTBL_ENTRY _ZTV7ee34062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34062[];
+static VTBL_ENTRY alt_thunk_names952[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340623fooEv,_ZTv0_n12_N7ee340623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340623fooEv,_ZThn8_N7ee340623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34062 = { "ee34062", // class name
+ bases_ee34062, 4,
+ &(vtc_ee34062[0]), // expected_vtbl_contents
+ &(vtt_ee34062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34062),2, //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 ee44062 : dd4062 {
+ int e;
+ virtual void bar(); // _ZN7ee440623barEv
+ ~ee44062(); // tgen
+ ee44062(); // tgen
+};
+//SIG(1 ee44062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44062 ::bar(){vfunc_called(this, "_ZN7ee440623barEv");}
+ee44062 ::~ee44062(){ note_dtor("ee44062", this);} // tgen
+ee44062 ::ee44062(){ note_ctor("ee44062", this);} // tgen
+
+static void Test_ee44062()
+{
+ extern Class_Descriptor cd_ee44062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44062, buf);
+ ee44062 *dp, &lv = *(dp=new (buf) ee44062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), 0, "ee44062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), 0, "ee44062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), 0, "ee44062");
+ check_base_class_offset(lv, (dd4062*), 0, "ee44062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44062.e");
+ test_class_info(&lv, &cd_ee44062);
+ dp->~ee44062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44062(Test_ee44062, "ee44062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44062C1Ev();
+extern void _ZN7ee44062D1Ev();
+Name_Map name_map_ee44062[] = {
+ NSPAIR(_ZN7ee44062C1Ev),
+ NSPAIR(_ZN7ee44062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee44062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44062[];
+extern void _ZN4bb623fooEv();
+extern void _ZN7ee440623barEv();
+static VTBL_ENTRY vtc_ee44062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN7ee440623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44062[];
+extern VTBL_ENTRY _ZTV7ee44062[];
+Class_Descriptor cd_ee44062 = { "ee44062", // class name
+ bases_ee44062, 4,
+ &(vtc_ee44062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44062),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 ee54062 : virtual dd4062 {
+ int e;
+ virtual void bar(); // _ZN7ee540623barEv
+ ~ee54062(); // tgen
+ ee54062(); // tgen
+};
+//SIG(1 ee54062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54062 ::bar(){vfunc_called(this, "_ZN7ee540623barEv");}
+ee54062 ::~ee54062(){ note_dtor("ee54062", this);} // tgen
+ee54062 ::ee54062(){ note_ctor("ee54062", this);} // tgen
+
+static void Test_ee54062()
+{
+ extern Class_Descriptor cd_ee54062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54062, buf);
+ ee54062 *dp, &lv = *(dp=new (buf) ee54062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee54062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee54062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), ABISELECT(16,8), "ee54062");
+ check_base_class_offset(lv, (dd4062*), ABISELECT(16,8), "ee54062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54062.e");
+ test_class_info(&lv, &cd_ee54062);
+ dp->~ee54062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54062(Test_ee54062, "ee54062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54062C1Ev();
+extern void _ZN7ee54062D1Ev();
+Name_Map name_map_ee54062[] = {
+ NSPAIR(_ZN7ee54062C1Ev),
+ NSPAIR(_ZN7ee54062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee54062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, ABISELECT(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 _ZTI7ee54062[];
+extern void _ZN7ee540623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540623barEv,_ZTv0_n16_N7ee540623barEv)();
+extern void ABISELECT(_ZThn16_N7ee540623barEv,_ZThn8_N7ee540623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54062[0]),
+ (VTBL_ENTRY)&_ZN7ee540623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540623barEv,_ZTv0_n16_N7ee540623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54062[];
+static VTT_ENTRY vtt_ee54062[] = {
+ {&(_ZTV7ee54062[3]), 3,10},
+ {&(_ZTV7ee54062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54062[];
+extern VTBL_ENTRY _ZTV7ee54062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54062[];
+static VTBL_ENTRY alt_thunk_names953[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540623barEv,_ZTv0_n16_N7ee540623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540623barEv,_ZThn8_N7ee540623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54062 = { "ee54062", // class name
+ bases_ee54062, 4,
+ &(vtc_ee54062[0]), // expected_vtbl_contents
+ &(vtt_ee54062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54062),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names953,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64062 : dd4062 {
+ int e;
+ virtual void foo(); // _ZN7ee640623fooEv
+ virtual void bar(); // _ZN7ee640623barEv
+ ~ee64062(); // tgen
+ ee64062(); // tgen
+};
+//SIG(1 ee64062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64062 ::foo(){vfunc_called(this, "_ZN7ee640623fooEv");}
+void ee64062 ::bar(){vfunc_called(this, "_ZN7ee640623barEv");}
+ee64062 ::~ee64062(){ note_dtor("ee64062", this);} // tgen
+ee64062 ::ee64062(){ note_ctor("ee64062", this);} // tgen
+
+static void Test_ee64062()
+{
+ extern Class_Descriptor cd_ee64062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64062, buf);
+ ee64062 *dp, &lv = *(dp=new (buf) ee64062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), 0, "ee64062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), 0, "ee64062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), 0, "ee64062");
+ check_base_class_offset(lv, (dd4062*), 0, "ee64062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64062.e");
+ test_class_info(&lv, &cd_ee64062);
+ dp->~ee64062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64062(Test_ee64062, "ee64062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64062C1Ev();
+extern void _ZN7ee64062D1Ev();
+Name_Map name_map_ee64062[] = {
+ NSPAIR(_ZN7ee64062C1Ev),
+ NSPAIR(_ZN7ee64062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee64062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64062[];
+extern void _ZN7ee640623fooEv();
+extern void _ZN7ee640623barEv();
+static VTBL_ENTRY vtc_ee64062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64062[0]),
+ (VTBL_ENTRY)&_ZN7ee640623fooEv,
+ (VTBL_ENTRY)&_ZN7ee640623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64062[];
+extern VTBL_ENTRY _ZTV7ee64062[];
+Class_Descriptor cd_ee64062 = { "ee64062", // class name
+ bases_ee64062, 4,
+ &(vtc_ee64062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64062),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 ee74062 : virtual dd4062 {
+ int e;
+ virtual void foo(); // _ZN7ee740623fooEv
+ virtual void bar(); // _ZN7ee740623barEv
+ ~ee74062(); // tgen
+ ee74062(); // tgen
+};
+//SIG(1 ee74062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74062 ::foo(){vfunc_called(this, "_ZN7ee740623fooEv");}
+void ee74062 ::bar(){vfunc_called(this, "_ZN7ee740623barEv");}
+ee74062 ::~ee74062(){ note_dtor("ee74062", this);} // tgen
+ee74062 ::ee74062(){ note_ctor("ee74062", this);} // tgen
+
+static void Test_ee74062()
+{
+ extern Class_Descriptor cd_ee74062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74062, buf);
+ ee74062 *dp, &lv = *(dp=new (buf) ee74062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee74062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd4062*), ABISELECT(16,8), "ee74062");
+ check_base_class_offset(lv, (cc062*)(dd4062*), ABISELECT(16,8), "ee74062");
+ check_base_class_offset(lv, (dd4062*), ABISELECT(16,8), "ee74062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74062.e");
+ test_class_info(&lv, &cd_ee74062);
+ dp->~ee74062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74062(Test_ee74062, "ee74062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74062C1Ev();
+extern void _ZN7ee74062D1Ev();
+Name_Map name_map_ee74062[] = {
+ NSPAIR(_ZN7ee74062C1Ev),
+ NSPAIR(_ZN7ee74062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd4062;
+extern VTBL_ENTRY _ZTI6dd4062[];
+extern VTBL_ENTRY _ZTV6dd4062[];
+static Base_Class bases_ee74062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4062, ABISELECT(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 _ZTI7ee74062[];
+extern void _ZN7ee740623fooEv();
+extern void _ZN7ee740623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740623fooEv,_ZTv0_n12_N7ee740623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740623fooEv,_ZThn8_N7ee740623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740623barEv,_ZTv0_n16_N7ee740623barEv)();
+extern void ABISELECT(_ZThn16_N7ee740623barEv,_ZThn8_N7ee740623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74062[0]),
+ (VTBL_ENTRY)&_ZN7ee740623fooEv,
+ (VTBL_ENTRY)&_ZN7ee740623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740623fooEv,_ZTv0_n12_N7ee740623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740623barEv,_ZTv0_n16_N7ee740623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74062[];
+static VTT_ENTRY vtt_ee74062[] = {
+ {&(_ZTV7ee74062[3]), 3,11},
+ {&(_ZTV7ee74062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74062[];
+extern VTBL_ENTRY _ZTV7ee74062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74062[];
+static VTBL_ENTRY alt_thunk_names954[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740623barEv,_ZTv0_n16_N7ee740623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740623barEv,_ZThn8_N7ee740623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740623fooEv,_ZTv0_n12_N7ee740623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740623fooEv,_ZThn8_N7ee740623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74062 = { "ee74062", // class name
+ bases_ee74062, 4,
+ &(vtc_ee74062[0]), // expected_vtbl_contents
+ &(vtt_ee74062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74062),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names954,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5062 : virtual cc062 {
+ int d;
+ virtual void bar(); // _ZN6dd50623barEv
+ ~dd5062(); // tgen
+ dd5062(); // tgen
+};
+//SIG(-1 dd5062) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5062 ::bar(){vfunc_called(this, "_ZN6dd50623barEv");}
+dd5062 ::~dd5062(){ note_dtor("dd5062", this);} // tgen
+dd5062 ::dd5062(){ note_ctor("dd5062", this);} // tgen
+
+static void Test_dd5062()
+{
+ extern Class_Descriptor cd_dd5062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5062, buf);
+ dd5062 *dp, &lv = *(dp=new (buf) dd5062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,8), "dd5062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,8), "dd5062");
+ check_base_class_offset(lv, (cc062*), ABISELECT(16,8), "dd5062");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5062.d");
+ test_class_info(&lv, &cd_dd5062);
+ dp->~dd5062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5062(Test_dd5062, "dd5062", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5062C1Ev();
+extern void _ZN6dd5062D1Ev();
+Name_Map name_map_dd5062[] = {
+ NSPAIR(_ZN6dd5062C1Ev),
+ NSPAIR(_ZN6dd5062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd5062[] = {
+ // 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_bb62, 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_cc062, 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 _ZTI6dd5062[];
+extern void _ZN6dd50623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5062[];
+static VTT_ENTRY vtt_dd5062[] = {
+ {&(_ZTV6dd5062[3]), 3,10},
+ {&(_ZTV6dd5062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static VTBL_ENTRY alt_thunk_names955[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5062 = { "dd5062", // class name
+ bases_dd5062, 3,
+ &(vtc_dd5062[0]), // expected_vtbl_contents
+ &(vtt_dd5062[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5062),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names955,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05062 : dd5062 {
+ int e;
+ ~ee05062(); // tgen
+ ee05062(); // tgen
+};
+//SIG(1 ee05062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05062 ::~ee05062(){ note_dtor("ee05062", this);} // tgen
+ee05062 ::ee05062(){ note_ctor("ee05062", this);} // tgen
+
+static void Test_ee05062()
+{
+ extern Class_Descriptor cd_ee05062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05062, buf);
+ ee05062 *dp, &lv = *(dp=new (buf) ee05062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee05062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee05062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(16,12), "ee05062");
+ check_base_class_offset(lv, (dd5062*), 0, "ee05062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05062.e");
+ test_class_info(&lv, &cd_ee05062);
+ dp->~ee05062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05062(Test_ee05062, "ee05062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05062C1Ev();
+extern void _ZN7ee05062D1Ev();
+Name_Map name_map_ee05062[] = {
+ NSPAIR(_ZN7ee05062C1Ev),
+ NSPAIR(_ZN7ee05062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee05062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05062[];
+extern void _ZN6dd50623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee05062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee05062[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee05062[] = {
+ {&(_ZTV7ee05062[3]), 3,10},
+ {&(_tg__ZTV6dd5062__7ee05062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee05062[4]), 4,6},
+ {&(_ZTV7ee05062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05062[];
+extern VTBL_ENTRY _ZTV7ee05062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05062[];
+static VTBL_ENTRY alt_thunk_names956[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05062 = { "ee05062", // class name
+ bases_ee05062, 4,
+ &(vtc_ee05062[0]), // expected_vtbl_contents
+ &(vtt_ee05062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05062),4, //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 ee15062 : virtual dd5062 {
+ int e;
+ ~ee15062(); // tgen
+ ee15062(); // tgen
+};
+//SIG(1 ee15062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15062 ::~ee15062(){ note_dtor("ee15062", this);} // tgen
+ee15062 ::ee15062(){ note_ctor("ee15062", this);} // tgen
+
+static void Test_ee15062()
+{
+ extern Class_Descriptor cd_ee15062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15062, buf);
+ ee15062 *dp, &lv = *(dp=new (buf) ee15062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee15062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee15062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(32,16), "ee15062");
+ check_base_class_offset(lv, (dd5062*), ABISELECT(16,8), "ee15062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15062.e");
+ test_class_info(&lv, &cd_ee15062);
+ dp->~ee15062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15062(Test_ee15062, "ee15062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15062C1Ev();
+extern void _ZN7ee15062D1Ev();
+Name_Map name_map_ee15062[] = {
+ NSPAIR(_ZN7ee15062C1Ev),
+ NSPAIR(_ZN7ee15062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee15062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, ABISELECT(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 _ZTI7ee15062[];
+extern void _ZN6dd50623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15062[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee15062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee15062[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee15062[] = {
+ {&(_ZTV7ee15062[4]), 4,15},
+ {&(_ZTV7ee15062[8]), 8,15},
+ {&(_ZTV7ee15062[13]), 13,15},
+ {&(_tg__ZTV6dd5062__7ee15062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee15062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15062[];
+extern VTBL_ENTRY _ZTV7ee15062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15062[];
+static VTBL_ENTRY alt_thunk_names957[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15062 = { "ee15062", // class name
+ bases_ee15062, 4,
+ &(vtc_ee15062[0]), // expected_vtbl_contents
+ &(vtt_ee15062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15062),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15062),5, //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 ee25062 : dd5062 {
+ int e;
+ virtual void foo(); // _ZN7ee250623fooEv
+ ~ee25062(); // tgen
+ ee25062(); // tgen
+};
+//SIG(1 ee25062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25062 ::foo(){vfunc_called(this, "_ZN7ee250623fooEv");}
+ee25062 ::~ee25062(){ note_dtor("ee25062", this);} // tgen
+ee25062 ::ee25062(){ note_ctor("ee25062", this);} // tgen
+
+static void Test_ee25062()
+{
+ extern Class_Descriptor cd_ee25062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25062, buf);
+ ee25062 *dp, &lv = *(dp=new (buf) ee25062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee25062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee25062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(16,12), "ee25062");
+ check_base_class_offset(lv, (dd5062*), 0, "ee25062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25062.e");
+ test_class_info(&lv, &cd_ee25062);
+ dp->~ee25062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25062(Test_ee25062, "ee25062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25062C1Ev();
+extern void _ZN7ee25062D1Ev();
+Name_Map name_map_ee25062[] = {
+ NSPAIR(_ZN7ee25062C1Ev),
+ NSPAIR(_ZN7ee25062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee25062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25062[];
+extern void _ZN6dd50623barEv();
+extern void _ZN7ee250623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250623fooEv,_ZTv0_n12_N7ee250623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250623fooEv,_ZThn12_N7ee250623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+ (VTBL_ENTRY)&_ZN7ee250623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250623fooEv,_ZTv0_n12_N7ee250623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee25062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee25062[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee25062[] = {
+ {&(_ZTV7ee25062[3]), 3,11},
+ {&(_tg__ZTV6dd5062__7ee25062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee25062[4]), 4,6},
+ {&(_ZTV7ee25062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25062[];
+extern VTBL_ENTRY _ZTV7ee25062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25062[];
+static VTBL_ENTRY alt_thunk_names958[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250623fooEv,_ZTv0_n12_N7ee250623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250623fooEv,_ZThn12_N7ee250623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25062 = { "ee25062", // class name
+ bases_ee25062, 4,
+ &(vtc_ee25062[0]), // expected_vtbl_contents
+ &(vtt_ee25062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names958,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35062 : virtual dd5062 {
+ int e;
+ virtual void foo(); // _ZN7ee350623fooEv
+ ~ee35062(); // tgen
+ ee35062(); // tgen
+};
+//SIG(1 ee35062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35062 ::foo(){vfunc_called(this, "_ZN7ee350623fooEv");}
+ee35062 ::~ee35062(){ note_dtor("ee35062", this);} // tgen
+ee35062 ::ee35062(){ note_ctor("ee35062", this);} // tgen
+
+static void Test_ee35062()
+{
+ extern Class_Descriptor cd_ee35062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35062, buf);
+ ee35062 *dp, &lv = *(dp=new (buf) ee35062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee35062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee35062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(32,16), "ee35062");
+ check_base_class_offset(lv, (dd5062*), ABISELECT(16,8), "ee35062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35062.e");
+ test_class_info(&lv, &cd_ee35062);
+ dp->~ee35062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35062(Test_ee35062, "ee35062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35062C1Ev();
+extern void _ZN7ee35062D1Ev();
+Name_Map name_map_ee35062[] = {
+ NSPAIR(_ZN7ee35062C1Ev),
+ NSPAIR(_ZN7ee35062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee35062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, ABISELECT(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 _ZTI7ee35062[];
+extern void _ZN7ee350623fooEv();
+extern void _ZN6dd50623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350623fooEv,_ZTv0_n12_N7ee350623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350623fooEv,_ZThn16_N7ee350623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35062[0]),
+ (VTBL_ENTRY)&_ZN7ee350623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350623fooEv,_ZTv0_n12_N7ee350623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee35062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee35062[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee35062[] = {
+ {&(_ZTV7ee35062[4]), 4,16},
+ {&(_ZTV7ee35062[9]), 9,16},
+ {&(_ZTV7ee35062[14]), 14,16},
+ {&(_tg__ZTV6dd5062__7ee35062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee35062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35062[];
+extern VTBL_ENTRY _ZTV7ee35062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35062[];
+static VTBL_ENTRY alt_thunk_names959[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350623fooEv,_ZTv0_n12_N7ee350623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350623fooEv,_ZThn16_N7ee350623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35062 = { "ee35062", // class name
+ bases_ee35062, 4,
+ &(vtc_ee35062[0]), // expected_vtbl_contents
+ &(vtt_ee35062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35062),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names959,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45062 : dd5062 {
+ int e;
+ virtual void bar(); // _ZN7ee450623barEv
+ ~ee45062(); // tgen
+ ee45062(); // tgen
+};
+//SIG(1 ee45062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45062 ::bar(){vfunc_called(this, "_ZN7ee450623barEv");}
+ee45062 ::~ee45062(){ note_dtor("ee45062", this);} // tgen
+ee45062 ::ee45062(){ note_ctor("ee45062", this);} // tgen
+
+static void Test_ee45062()
+{
+ extern Class_Descriptor cd_ee45062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45062, buf);
+ ee45062 *dp, &lv = *(dp=new (buf) ee45062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee45062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee45062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(16,12), "ee45062");
+ check_base_class_offset(lv, (dd5062*), 0, "ee45062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45062.e");
+ test_class_info(&lv, &cd_ee45062);
+ dp->~ee45062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45062(Test_ee45062, "ee45062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45062C1Ev();
+extern void _ZN7ee45062D1Ev();
+Name_Map name_map_ee45062[] = {
+ NSPAIR(_ZN7ee45062C1Ev),
+ NSPAIR(_ZN7ee45062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee45062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45062[];
+extern void _ZN7ee450623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450623barEv,_ZTv0_n16_N7ee450623barEv)();
+extern void ABISELECT(_ZThn16_N7ee450623barEv,_ZThn12_N7ee450623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45062[0]),
+ (VTBL_ENTRY)&_ZN7ee450623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450623barEv,_ZTv0_n16_N7ee450623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee45062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee45062[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee45062[] = {
+ {&(_ZTV7ee45062[3]), 3,10},
+ {&(_tg__ZTV6dd5062__7ee45062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee45062[4]), 4,6},
+ {&(_ZTV7ee45062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45062[];
+extern VTBL_ENTRY _ZTV7ee45062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45062[];
+static VTBL_ENTRY alt_thunk_names960[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450623barEv,_ZTv0_n16_N7ee450623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450623barEv,_ZThn12_N7ee450623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45062 = { "ee45062", // class name
+ bases_ee45062, 4,
+ &(vtc_ee45062[0]), // expected_vtbl_contents
+ &(vtt_ee45062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names960,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55062 : virtual dd5062 {
+ int e;
+ virtual void bar(); // _ZN7ee550623barEv
+ ~ee55062(); // tgen
+ ee55062(); // tgen
+};
+//SIG(1 ee55062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55062 ::bar(){vfunc_called(this, "_ZN7ee550623barEv");}
+ee55062 ::~ee55062(){ note_dtor("ee55062", this);} // tgen
+ee55062 ::ee55062(){ note_ctor("ee55062", this);} // tgen
+
+static void Test_ee55062()
+{
+ extern Class_Descriptor cd_ee55062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55062, buf);
+ ee55062 *dp, &lv = *(dp=new (buf) ee55062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee55062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee55062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(32,16), "ee55062");
+ check_base_class_offset(lv, (dd5062*), ABISELECT(16,8), "ee55062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55062.e");
+ test_class_info(&lv, &cd_ee55062);
+ dp->~ee55062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55062(Test_ee55062, "ee55062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55062C1Ev();
+extern void _ZN7ee55062D1Ev();
+Name_Map name_map_ee55062[] = {
+ NSPAIR(_ZN7ee55062C1Ev),
+ NSPAIR(_ZN7ee55062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee55062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, ABISELECT(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 _ZTI7ee55062[];
+extern void _ZN7ee550623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550623barEv,_ZTv0_n16_N7ee550623barEv)();
+extern void ABISELECT(_ZThn16_N7ee550623barEv,_ZThn8_N7ee550623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550623barEv,_ZTv0_n16_N7ee550623barEv)();
+extern void ABISELECT(_ZThn32_N7ee550623barEv,_ZThn16_N7ee550623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55062[0]),
+ (VTBL_ENTRY)&_ZN7ee550623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550623barEv,_ZTv0_n16_N7ee550623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550623barEv,_ZTv0_n16_N7ee550623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee55062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee55062[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee55062[] = {
+ {&(_ZTV7ee55062[4]), 4,16},
+ {&(_ZTV7ee55062[9]), 9,16},
+ {&(_ZTV7ee55062[14]), 14,16},
+ {&(_tg__ZTV6dd5062__7ee55062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee55062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55062[];
+extern VTBL_ENTRY _ZTV7ee55062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55062[];
+static VTBL_ENTRY alt_thunk_names961[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550623barEv,_ZTv0_n16_N7ee550623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550623barEv,_ZThn16_N7ee550623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550623barEv,_ZThn8_N7ee550623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55062 = { "ee55062", // class name
+ bases_ee55062, 4,
+ &(vtc_ee55062[0]), // expected_vtbl_contents
+ &(vtt_ee55062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55062),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names961,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65062 : dd5062 {
+ int e;
+ virtual void foo(); // _ZN7ee650623fooEv
+ virtual void bar(); // _ZN7ee650623barEv
+ ~ee65062(); // tgen
+ ee65062(); // tgen
+};
+//SIG(1 ee65062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65062 ::foo(){vfunc_called(this, "_ZN7ee650623fooEv");}
+void ee65062 ::bar(){vfunc_called(this, "_ZN7ee650623barEv");}
+ee65062 ::~ee65062(){ note_dtor("ee65062", this);} // tgen
+ee65062 ::ee65062(){ note_ctor("ee65062", this);} // tgen
+
+static void Test_ee65062()
+{
+ extern Class_Descriptor cd_ee65062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65062, buf);
+ ee65062 *dp, &lv = *(dp=new (buf) ee65062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee65062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee65062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(16,12), "ee65062");
+ check_base_class_offset(lv, (dd5062*), 0, "ee65062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65062.e");
+ test_class_info(&lv, &cd_ee65062);
+ dp->~ee65062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65062(Test_ee65062, "ee65062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65062C1Ev();
+extern void _ZN7ee65062D1Ev();
+Name_Map name_map_ee65062[] = {
+ NSPAIR(_ZN7ee65062C1Ev),
+ NSPAIR(_ZN7ee65062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee65062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65062[];
+extern void _ZN7ee650623barEv();
+extern void _ZN7ee650623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650623fooEv,_ZTv0_n12_N7ee650623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650623fooEv,_ZThn12_N7ee650623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650623barEv,_ZTv0_n16_N7ee650623barEv)();
+extern void ABISELECT(_ZThn16_N7ee650623barEv,_ZThn12_N7ee650623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65062[0]),
+ (VTBL_ENTRY)&_ZN7ee650623barEv,
+ (VTBL_ENTRY)&_ZN7ee650623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650623fooEv,_ZTv0_n12_N7ee650623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650623barEv,_ZTv0_n16_N7ee650623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee65062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee65062[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee65062[] = {
+ {&(_ZTV7ee65062[3]), 3,11},
+ {&(_tg__ZTV6dd5062__7ee65062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee65062[4]), 4,6},
+ {&(_ZTV7ee65062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65062[];
+extern VTBL_ENTRY _ZTV7ee65062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65062[];
+static VTBL_ENTRY alt_thunk_names962[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn12_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650623barEv,_ZTv0_n16_N7ee650623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650623barEv,_ZThn12_N7ee650623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650623fooEv,_ZTv0_n12_N7ee650623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650623fooEv,_ZThn12_N7ee650623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65062 = { "ee65062", // class name
+ bases_ee65062, 4,
+ &(vtc_ee65062[0]), // expected_vtbl_contents
+ &(vtt_ee65062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names962,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75062 : virtual dd5062 {
+ int e;
+ virtual void foo(); // _ZN7ee750623fooEv
+ virtual void bar(); // _ZN7ee750623barEv
+ ~ee75062(); // tgen
+ ee75062(); // tgen
+};
+//SIG(1 ee75062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75062 ::foo(){vfunc_called(this, "_ZN7ee750623fooEv");}
+void ee75062 ::bar(){vfunc_called(this, "_ZN7ee750623barEv");}
+ee75062 ::~ee75062(){ note_dtor("ee75062", this);} // tgen
+ee75062 ::ee75062(){ note_ctor("ee75062", this);} // tgen
+
+static void Test_ee75062()
+{
+ extern Class_Descriptor cd_ee75062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75062, buf);
+ ee75062 *dp, &lv = *(dp=new (buf) ee75062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee75062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee75062");
+ check_base_class_offset(lv, (cc062*)(dd5062*), ABISELECT(32,16), "ee75062");
+ check_base_class_offset(lv, (dd5062*), ABISELECT(16,8), "ee75062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75062.e");
+ test_class_info(&lv, &cd_ee75062);
+ dp->~ee75062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75062(Test_ee75062, "ee75062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75062C1Ev();
+extern void _ZN7ee75062D1Ev();
+Name_Map name_map_ee75062[] = {
+ NSPAIR(_ZN7ee75062C1Ev),
+ NSPAIR(_ZN7ee75062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd5062;
+extern VTBL_ENTRY _ZTI6dd5062[];
+extern VTBL_ENTRY _ZTV6dd5062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5062[];
+static Base_Class bases_ee75062[] = {
+ // 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_bb62, 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_cc062, 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_dd5062, 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 _ZTI7ee75062[];
+extern void _ZN7ee750623fooEv();
+extern void _ZN7ee750623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750623barEv,_ZTv0_n16_N7ee750623barEv)();
+extern void ABISELECT(_ZThn16_N7ee750623barEv,_ZThn8_N7ee750623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750623fooEv,_ZTv0_n12_N7ee750623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750623fooEv,_ZThn16_N7ee750623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750623barEv,_ZTv0_n16_N7ee750623barEv)();
+extern void ABISELECT(_ZThn32_N7ee750623barEv,_ZThn16_N7ee750623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75062[0]),
+ (VTBL_ENTRY)&_ZN7ee750623fooEv,
+ (VTBL_ENTRY)&_ZN7ee750623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750623barEv,_ZTv0_n16_N7ee750623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750623fooEv,_ZTv0_n12_N7ee750623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750623barEv,_ZTv0_n16_N7ee750623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75062[];
+extern void _ZN6dd50623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5062__7ee75062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN6dd50623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv)();
+extern void ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd5062__7ee75062[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5062[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv),
+};
+static VTT_ENTRY vtt_ee75062[] = {
+ {&(_ZTV7ee75062[4]), 4,17},
+ {&(_ZTV7ee75062[10]), 10,17},
+ {&(_ZTV7ee75062[15]), 15,17},
+ {&(_tg__ZTV6dd5062__7ee75062[3]), 3,4},
+ {&(_tg__ZTV4bb625cc062__6dd5062__7ee75062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75062[];
+extern VTBL_ENTRY _ZTV7ee75062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75062[];
+static VTBL_ENTRY alt_thunk_names963[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50623barEv,_ZTv0_n16_N6dd50623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50623barEv,_ZThn8_N6dd50623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750623fooEv,_ZTv0_n12_N7ee750623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750623fooEv,_ZThn16_N7ee750623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750623barEv,_ZTv0_n16_N7ee750623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750623barEv,_ZThn16_N7ee750623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750623barEv,_ZThn8_N7ee750623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75062 = { "ee75062", // class name
+ bases_ee75062, 4,
+ &(vtc_ee75062[0]), // expected_vtbl_contents
+ &(vtt_ee75062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75062),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75062),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names963,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6062 : cc062 {
+ int d;
+ virtual void bar(); // _ZN6dd60623barEv
+ virtual void foo(); // _ZN6dd60623fooEv
+ ~dd6062(); // tgen
+ dd6062(); // tgen
+};
+//SIG(-1 dd6062) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6062 ::bar(){vfunc_called(this, "_ZN6dd60623barEv");}
+void dd6062 ::foo(){vfunc_called(this, "_ZN6dd60623fooEv");}
+dd6062 ::~dd6062(){ note_dtor("dd6062", this);} // tgen
+dd6062 ::dd6062(){ note_ctor("dd6062", this);} // tgen
+
+static void Test_dd6062()
+{
+ extern Class_Descriptor cd_dd6062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6062, buf);
+ dd6062 *dp, &lv = *(dp=new (buf) dd6062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), 0, "dd6062");
+ check_base_class_offset(lv, (bb62*)(cc062*), 0, "dd6062");
+ check_base_class_offset(lv, (cc062*), 0, "dd6062");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6062.d");
+ test_class_info(&lv, &cd_dd6062);
+ dp->~dd6062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6062(Test_dd6062, "dd6062", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6062C1Ev();
+extern void _ZN6dd6062D1Ev();
+Name_Map name_map_dd6062[] = {
+ NSPAIR(_ZN6dd6062C1Ev),
+ NSPAIR(_ZN6dd6062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd6062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6062[];
+extern void _ZN6dd60623fooEv();
+extern void _ZN6dd60623barEv();
+static VTBL_ENTRY vtc_dd6062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6062[0]),
+ (VTBL_ENTRY)&_ZN6dd60623fooEv,
+ (VTBL_ENTRY)&_ZN6dd60623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+Class_Descriptor cd_dd6062 = { "dd6062", // class name
+ bases_dd6062, 3,
+ &(vtc_dd6062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6062),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 ee06062 : dd6062 {
+ int e;
+ ~ee06062(); // tgen
+ ee06062(); // tgen
+};
+//SIG(1 ee06062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06062 ::~ee06062(){ note_dtor("ee06062", this);} // tgen
+ee06062 ::ee06062(){ note_ctor("ee06062", this);} // tgen
+
+static void Test_ee06062()
+{
+ extern Class_Descriptor cd_ee06062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06062, buf);
+ ee06062 *dp, &lv = *(dp=new (buf) ee06062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), 0, "ee06062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), 0, "ee06062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), 0, "ee06062");
+ check_base_class_offset(lv, (dd6062*), 0, "ee06062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06062.e");
+ test_class_info(&lv, &cd_ee06062);
+ dp->~ee06062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06062(Test_ee06062, "ee06062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06062C1Ev();
+extern void _ZN7ee06062D1Ev();
+Name_Map name_map_ee06062[] = {
+ NSPAIR(_ZN7ee06062C1Ev),
+ NSPAIR(_ZN7ee06062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee06062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, 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 _ZTI7ee06062[];
+extern void _ZN6dd60623fooEv();
+extern void _ZN6dd60623barEv();
+static VTBL_ENTRY vtc_ee06062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06062[0]),
+ (VTBL_ENTRY)&_ZN6dd60623fooEv,
+ (VTBL_ENTRY)&_ZN6dd60623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06062[];
+extern VTBL_ENTRY _ZTV7ee06062[];
+Class_Descriptor cd_ee06062 = { "ee06062", // class name
+ bases_ee06062, 4,
+ &(vtc_ee06062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06062),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 ee16062 : virtual dd6062 {
+ int e;
+ ~ee16062(); // tgen
+ ee16062(); // tgen
+};
+//SIG(1 ee16062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16062 ::~ee16062(){ note_dtor("ee16062", this);} // tgen
+ee16062 ::ee16062(){ note_ctor("ee16062", this);} // tgen
+
+static void Test_ee16062()
+{
+ extern Class_Descriptor cd_ee16062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16062, buf);
+ ee16062 *dp, &lv = *(dp=new (buf) ee16062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee16062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee16062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), ABISELECT(16,8), "ee16062");
+ check_base_class_offset(lv, (dd6062*), ABISELECT(16,8), "ee16062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16062.e");
+ test_class_info(&lv, &cd_ee16062);
+ dp->~ee16062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16062(Test_ee16062, "ee16062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16062C1Ev();
+extern void _ZN7ee16062D1Ev();
+Name_Map name_map_ee16062[] = {
+ NSPAIR(_ZN7ee16062C1Ev),
+ NSPAIR(_ZN7ee16062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee16062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, 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 _ZTI7ee16062[];
+extern void _ZN6dd60623fooEv();
+extern void _ZN6dd60623barEv();
+static VTBL_ENTRY vtc_ee16062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16062[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16062[0]),
+ (VTBL_ENTRY)&_ZN6dd60623fooEv,
+ (VTBL_ENTRY)&_ZN6dd60623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16062[];
+static VTT_ENTRY vtt_ee16062[] = {
+ {&(_ZTV7ee16062[3]), 3,9},
+ {&(_ZTV7ee16062[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16062[];
+extern VTBL_ENTRY _ZTV7ee16062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16062[];
+Class_Descriptor cd_ee16062 = { "ee16062", // class name
+ bases_ee16062, 4,
+ &(vtc_ee16062[0]), // expected_vtbl_contents
+ &(vtt_ee16062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16062),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16062),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 ee26062 : dd6062 {
+ int e;
+ virtual void foo(); // _ZN7ee260623fooEv
+ ~ee26062(); // tgen
+ ee26062(); // tgen
+};
+//SIG(1 ee26062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26062 ::foo(){vfunc_called(this, "_ZN7ee260623fooEv");}
+ee26062 ::~ee26062(){ note_dtor("ee26062", this);} // tgen
+ee26062 ::ee26062(){ note_ctor("ee26062", this);} // tgen
+
+static void Test_ee26062()
+{
+ extern Class_Descriptor cd_ee26062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26062, buf);
+ ee26062 *dp, &lv = *(dp=new (buf) ee26062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), 0, "ee26062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), 0, "ee26062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), 0, "ee26062");
+ check_base_class_offset(lv, (dd6062*), 0, "ee26062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26062.e");
+ test_class_info(&lv, &cd_ee26062);
+ dp->~ee26062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26062(Test_ee26062, "ee26062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26062C1Ev();
+extern void _ZN7ee26062D1Ev();
+Name_Map name_map_ee26062[] = {
+ NSPAIR(_ZN7ee26062C1Ev),
+ NSPAIR(_ZN7ee26062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee26062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26062[];
+extern void _ZN7ee260623fooEv();
+extern void _ZN6dd60623barEv();
+static VTBL_ENTRY vtc_ee26062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26062[0]),
+ (VTBL_ENTRY)&_ZN7ee260623fooEv,
+ (VTBL_ENTRY)&_ZN6dd60623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26062[];
+extern VTBL_ENTRY _ZTV7ee26062[];
+Class_Descriptor cd_ee26062 = { "ee26062", // class name
+ bases_ee26062, 4,
+ &(vtc_ee26062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26062),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 ee36062 : virtual dd6062 {
+ int e;
+ virtual void foo(); // _ZN7ee360623fooEv
+ ~ee36062(); // tgen
+ ee36062(); // tgen
+};
+//SIG(1 ee36062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36062 ::foo(){vfunc_called(this, "_ZN7ee360623fooEv");}
+ee36062 ::~ee36062(){ note_dtor("ee36062", this);} // tgen
+ee36062 ::ee36062(){ note_ctor("ee36062", this);} // tgen
+
+static void Test_ee36062()
+{
+ extern Class_Descriptor cd_ee36062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36062, buf);
+ ee36062 *dp, &lv = *(dp=new (buf) ee36062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee36062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee36062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), ABISELECT(16,8), "ee36062");
+ check_base_class_offset(lv, (dd6062*), ABISELECT(16,8), "ee36062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36062.e");
+ test_class_info(&lv, &cd_ee36062);
+ dp->~ee36062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36062(Test_ee36062, "ee36062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36062C1Ev();
+extern void _ZN7ee36062D1Ev();
+Name_Map name_map_ee36062[] = {
+ NSPAIR(_ZN7ee36062C1Ev),
+ NSPAIR(_ZN7ee36062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee36062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, ABISELECT(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 _ZTI7ee36062[];
+extern void _ZN7ee360623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360623fooEv,_ZTv0_n12_N7ee360623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360623fooEv,_ZThn8_N7ee360623fooEv)() __attribute__((weak));
+extern void _ZN6dd60623barEv();
+static VTBL_ENTRY vtc_ee36062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36062[0]),
+ (VTBL_ENTRY)&_ZN7ee360623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360623fooEv,_ZTv0_n12_N7ee360623fooEv),
+ (VTBL_ENTRY)&_ZN6dd60623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36062[];
+static VTT_ENTRY vtt_ee36062[] = {
+ {&(_ZTV7ee36062[3]), 3,10},
+ {&(_ZTV7ee36062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36062[];
+extern VTBL_ENTRY _ZTV7ee36062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36062[];
+static VTBL_ENTRY alt_thunk_names964[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360623fooEv,_ZTv0_n12_N7ee360623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360623fooEv,_ZThn8_N7ee360623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36062 = { "ee36062", // class name
+ bases_ee36062, 4,
+ &(vtc_ee36062[0]), // expected_vtbl_contents
+ &(vtt_ee36062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36062),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 ee46062 : dd6062 {
+ int e;
+ virtual void bar(); // _ZN7ee460623barEv
+ ~ee46062(); // tgen
+ ee46062(); // tgen
+};
+//SIG(1 ee46062) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46062 ::bar(){vfunc_called(this, "_ZN7ee460623barEv");}
+ee46062 ::~ee46062(){ note_dtor("ee46062", this);} // tgen
+ee46062 ::ee46062(){ note_ctor("ee46062", this);} // tgen
+
+static void Test_ee46062()
+{
+ extern Class_Descriptor cd_ee46062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46062, buf);
+ ee46062 *dp, &lv = *(dp=new (buf) ee46062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), 0, "ee46062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), 0, "ee46062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), 0, "ee46062");
+ check_base_class_offset(lv, (dd6062*), 0, "ee46062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46062.e");
+ test_class_info(&lv, &cd_ee46062);
+ dp->~ee46062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46062(Test_ee46062, "ee46062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46062C1Ev();
+extern void _ZN7ee46062D1Ev();
+Name_Map name_map_ee46062[] = {
+ NSPAIR(_ZN7ee46062C1Ev),
+ NSPAIR(_ZN7ee46062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee46062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46062[];
+extern void _ZN6dd60623fooEv();
+extern void _ZN7ee460623barEv();
+static VTBL_ENTRY vtc_ee46062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46062[0]),
+ (VTBL_ENTRY)&_ZN6dd60623fooEv,
+ (VTBL_ENTRY)&_ZN7ee460623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46062[];
+extern VTBL_ENTRY _ZTV7ee46062[];
+Class_Descriptor cd_ee46062 = { "ee46062", // class name
+ bases_ee46062, 4,
+ &(vtc_ee46062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46062),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 ee56062 : virtual dd6062 {
+ int e;
+ virtual void bar(); // _ZN7ee560623barEv
+ ~ee56062(); // tgen
+ ee56062(); // tgen
+};
+//SIG(1 ee56062) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56062 ::bar(){vfunc_called(this, "_ZN7ee560623barEv");}
+ee56062 ::~ee56062(){ note_dtor("ee56062", this);} // tgen
+ee56062 ::ee56062(){ note_ctor("ee56062", this);} // tgen
+
+static void Test_ee56062()
+{
+ extern Class_Descriptor cd_ee56062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56062, buf);
+ ee56062 *dp, &lv = *(dp=new (buf) ee56062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee56062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee56062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), ABISELECT(16,8), "ee56062");
+ check_base_class_offset(lv, (dd6062*), ABISELECT(16,8), "ee56062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56062.e");
+ test_class_info(&lv, &cd_ee56062);
+ dp->~ee56062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56062(Test_ee56062, "ee56062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56062C1Ev();
+extern void _ZN7ee56062D1Ev();
+Name_Map name_map_ee56062[] = {
+ NSPAIR(_ZN7ee56062C1Ev),
+ NSPAIR(_ZN7ee56062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee56062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, ABISELECT(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 _ZTI7ee56062[];
+extern void _ZN7ee560623barEv();
+extern void _ZN6dd60623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560623barEv,_ZTv0_n16_N7ee560623barEv)();
+extern void ABISELECT(_ZThn16_N7ee560623barEv,_ZThn8_N7ee560623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56062[0]),
+ (VTBL_ENTRY)&_ZN7ee560623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56062[0]),
+ (VTBL_ENTRY)&_ZN6dd60623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560623barEv,_ZTv0_n16_N7ee560623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56062[];
+static VTT_ENTRY vtt_ee56062[] = {
+ {&(_ZTV7ee56062[3]), 3,10},
+ {&(_ZTV7ee56062[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56062[];
+extern VTBL_ENTRY _ZTV7ee56062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56062[];
+static VTBL_ENTRY alt_thunk_names965[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560623barEv,_ZTv0_n16_N7ee560623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560623barEv,_ZThn8_N7ee560623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56062 = { "ee56062", // class name
+ bases_ee56062, 4,
+ &(vtc_ee56062[0]), // expected_vtbl_contents
+ &(vtt_ee56062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56062),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56062),2, //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 ee66062 : dd6062 {
+ int e;
+ virtual void foo(); // _ZN7ee660623fooEv
+ virtual void bar(); // _ZN7ee660623barEv
+ ~ee66062(); // tgen
+ ee66062(); // tgen
+};
+//SIG(1 ee66062) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66062 ::foo(){vfunc_called(this, "_ZN7ee660623fooEv");}
+void ee66062 ::bar(){vfunc_called(this, "_ZN7ee660623barEv");}
+ee66062 ::~ee66062(){ note_dtor("ee66062", this);} // tgen
+ee66062 ::ee66062(){ note_ctor("ee66062", this);} // tgen
+
+static void Test_ee66062()
+{
+ extern Class_Descriptor cd_ee66062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66062, buf);
+ ee66062 *dp, &lv = *(dp=new (buf) ee66062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), 0, "ee66062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), 0, "ee66062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), 0, "ee66062");
+ check_base_class_offset(lv, (dd6062*), 0, "ee66062");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66062.e");
+ test_class_info(&lv, &cd_ee66062);
+ dp->~ee66062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66062(Test_ee66062, "ee66062", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66062C1Ev();
+extern void _ZN7ee66062D1Ev();
+Name_Map name_map_ee66062[] = {
+ NSPAIR(_ZN7ee66062C1Ev),
+ NSPAIR(_ZN7ee66062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee66062[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66062[];
+extern void _ZN7ee660623fooEv();
+extern void _ZN7ee660623barEv();
+static VTBL_ENTRY vtc_ee66062[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66062[0]),
+ (VTBL_ENTRY)&_ZN7ee660623fooEv,
+ (VTBL_ENTRY)&_ZN7ee660623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66062[];
+extern VTBL_ENTRY _ZTV7ee66062[];
+Class_Descriptor cd_ee66062 = { "ee66062", // class name
+ bases_ee66062, 4,
+ &(vtc_ee66062[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66062),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 ee76062 : virtual dd6062 {
+ int e;
+ virtual void foo(); // _ZN7ee760623fooEv
+ virtual void bar(); // _ZN7ee760623barEv
+ ~ee76062(); // tgen
+ ee76062(); // tgen
+};
+//SIG(1 ee76062) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76062 ::foo(){vfunc_called(this, "_ZN7ee760623fooEv");}
+void ee76062 ::bar(){vfunc_called(this, "_ZN7ee760623barEv");}
+ee76062 ::~ee76062(){ note_dtor("ee76062", this);} // tgen
+ee76062 ::ee76062(){ note_ctor("ee76062", this);} // tgen
+
+static void Test_ee76062()
+{
+ extern Class_Descriptor cd_ee76062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76062, buf);
+ ee76062 *dp, &lv = *(dp=new (buf) ee76062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee76062");
+ check_base_class_offset(lv, (bb62*)(cc062*)(dd6062*), ABISELECT(16,8), "ee76062");
+ check_base_class_offset(lv, (cc062*)(dd6062*), ABISELECT(16,8), "ee76062");
+ check_base_class_offset(lv, (dd6062*), ABISELECT(16,8), "ee76062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76062.e");
+ test_class_info(&lv, &cd_ee76062);
+ dp->~ee76062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76062(Test_ee76062, "ee76062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76062C1Ev();
+extern void _ZN7ee76062D1Ev();
+Name_Map name_map_ee76062[] = {
+ NSPAIR(_ZN7ee76062C1Ev),
+ NSPAIR(_ZN7ee76062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd6062;
+extern VTBL_ENTRY _ZTI6dd6062[];
+extern VTBL_ENTRY _ZTV6dd6062[];
+static Base_Class bases_ee76062[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc062, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6062, ABISELECT(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 _ZTI7ee76062[];
+extern void _ZN7ee760623fooEv();
+extern void _ZN7ee760623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760623fooEv,_ZTv0_n12_N7ee760623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760623fooEv,_ZThn8_N7ee760623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760623barEv,_ZTv0_n16_N7ee760623barEv)();
+extern void ABISELECT(_ZThn16_N7ee760623barEv,_ZThn8_N7ee760623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76062[0]),
+ (VTBL_ENTRY)&_ZN7ee760623fooEv,
+ (VTBL_ENTRY)&_ZN7ee760623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760623fooEv,_ZTv0_n12_N7ee760623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760623barEv,_ZTv0_n16_N7ee760623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76062[];
+static VTT_ENTRY vtt_ee76062[] = {
+ {&(_ZTV7ee76062[3]), 3,11},
+ {&(_ZTV7ee76062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76062[];
+extern VTBL_ENTRY _ZTV7ee76062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76062[];
+static VTBL_ENTRY alt_thunk_names966[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760623barEv,_ZTv0_n16_N7ee760623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760623barEv,_ZThn8_N7ee760623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760623fooEv,_ZTv0_n12_N7ee760623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760623fooEv,_ZThn8_N7ee760623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76062 = { "ee76062", // class name
+ bases_ee76062, 4,
+ &(vtc_ee76062[0]), // expected_vtbl_contents
+ &(vtt_ee76062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76062),2, //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 dd7062 : virtual cc062 {
+ int d;
+ virtual void bar(); // _ZN6dd70623barEv
+ virtual void foo(); // _ZN6dd70623fooEv
+ ~dd7062(); // tgen
+ dd7062(); // tgen
+};
+//SIG(-1 dd7062) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7062 ::bar(){vfunc_called(this, "_ZN6dd70623barEv");}
+void dd7062 ::foo(){vfunc_called(this, "_ZN6dd70623fooEv");}
+dd7062 ::~dd7062(){ note_dtor("dd7062", this);} // tgen
+dd7062 ::dd7062(){ note_ctor("dd7062", this);} // tgen
+
+static void Test_dd7062()
+{
+ extern Class_Descriptor cd_dd7062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7062, buf);
+ dd7062 *dp, &lv = *(dp=new (buf) dd7062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,8), "dd7062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,8), "dd7062");
+ check_base_class_offset(lv, (cc062*), ABISELECT(16,8), "dd7062");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7062.d");
+ test_class_info(&lv, &cd_dd7062);
+ dp->~dd7062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7062(Test_dd7062, "dd7062", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7062C1Ev();
+extern void _ZN6dd7062D1Ev();
+Name_Map name_map_dd7062[] = {
+ NSPAIR(_ZN6dd7062C1Ev),
+ NSPAIR(_ZN6dd7062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+static Base_Class bases_dd7062[] = {
+ // 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_bb62, 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_cc062, 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 _ZTI6dd7062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7062[];
+static VTT_ENTRY vtt_dd7062[] = {
+ {&(_ZTV6dd7062[3]), 3,11},
+ {&(_ZTV6dd7062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static VTBL_ENTRY alt_thunk_names967[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7062 = { "dd7062", // class name
+ bases_dd7062, 3,
+ &(vtc_dd7062[0]), // expected_vtbl_contents
+ &(vtt_dd7062[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7062),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names967,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07062 : dd7062 {
+ int e;
+ ~ee07062(); // tgen
+ ee07062(); // tgen
+};
+//SIG(1 ee07062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07062 ::~ee07062(){ note_dtor("ee07062", this);} // tgen
+ee07062 ::ee07062(){ note_ctor("ee07062", this);} // tgen
+
+static void Test_ee07062()
+{
+ extern Class_Descriptor cd_ee07062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07062, buf);
+ ee07062 *dp, &lv = *(dp=new (buf) ee07062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee07062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee07062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(16,12), "ee07062");
+ check_base_class_offset(lv, (dd7062*), 0, "ee07062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07062.e");
+ test_class_info(&lv, &cd_ee07062);
+ dp->~ee07062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07062(Test_ee07062, "ee07062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07062C1Ev();
+extern void _ZN7ee07062D1Ev();
+Name_Map name_map_ee07062[] = {
+ NSPAIR(_ZN7ee07062C1Ev),
+ NSPAIR(_ZN7ee07062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee07062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee07062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee07062[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee07062[] = {
+ {&(_ZTV7ee07062[3]), 3,11},
+ {&(_tg__ZTV6dd7062__7ee07062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee07062[4]), 4,6},
+ {&(_ZTV7ee07062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07062[];
+extern VTBL_ENTRY _ZTV7ee07062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07062[];
+static VTBL_ENTRY alt_thunk_names968[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07062 = { "ee07062", // class name
+ bases_ee07062, 4,
+ &(vtc_ee07062[0]), // expected_vtbl_contents
+ &(vtt_ee07062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07062),4, //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 ee17062 : virtual dd7062 {
+ int e;
+ ~ee17062(); // tgen
+ ee17062(); // tgen
+};
+//SIG(1 ee17062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17062 ::~ee17062(){ note_dtor("ee17062", this);} // tgen
+ee17062 ::ee17062(){ note_ctor("ee17062", this);} // tgen
+
+static void Test_ee17062()
+{
+ extern Class_Descriptor cd_ee17062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17062, buf);
+ ee17062 *dp, &lv = *(dp=new (buf) ee17062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee17062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee17062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(32,16), "ee17062");
+ check_base_class_offset(lv, (dd7062*), ABISELECT(16,8), "ee17062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17062.e");
+ test_class_info(&lv, &cd_ee17062);
+ dp->~ee17062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17062(Test_ee17062, "ee17062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17062C1Ev();
+extern void _ZN7ee17062D1Ev();
+Name_Map name_map_ee17062[] = {
+ NSPAIR(_ZN7ee17062C1Ev),
+ NSPAIR(_ZN7ee17062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee17062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, 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 _ZTI7ee17062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17062[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee17062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee17062[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee17062[] = {
+ {&(_ZTV7ee17062[4]), 4,17},
+ {&(_ZTV7ee17062[9]), 9,17},
+ {&(_ZTV7ee17062[15]), 15,17},
+ {&(_tg__ZTV6dd7062__7ee17062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee17062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17062[];
+extern VTBL_ENTRY _ZTV7ee17062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17062[];
+static VTBL_ENTRY alt_thunk_names969[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17062 = { "ee17062", // class name
+ bases_ee17062, 4,
+ &(vtc_ee17062[0]), // expected_vtbl_contents
+ &(vtt_ee17062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17062),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17062),5, //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 ee27062 : dd7062 {
+ int e;
+ virtual void foo(); // _ZN7ee270623fooEv
+ ~ee27062(); // tgen
+ ee27062(); // tgen
+};
+//SIG(1 ee27062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27062 ::foo(){vfunc_called(this, "_ZN7ee270623fooEv");}
+ee27062 ::~ee27062(){ note_dtor("ee27062", this);} // tgen
+ee27062 ::ee27062(){ note_ctor("ee27062", this);} // tgen
+
+static void Test_ee27062()
+{
+ extern Class_Descriptor cd_ee27062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27062, buf);
+ ee27062 *dp, &lv = *(dp=new (buf) ee27062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee27062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee27062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(16,12), "ee27062");
+ check_base_class_offset(lv, (dd7062*), 0, "ee27062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27062.e");
+ test_class_info(&lv, &cd_ee27062);
+ dp->~ee27062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27062(Test_ee27062, "ee27062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27062C1Ev();
+extern void _ZN7ee27062D1Ev();
+Name_Map name_map_ee27062[] = {
+ NSPAIR(_ZN7ee27062C1Ev),
+ NSPAIR(_ZN7ee27062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee27062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN7ee270623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270623fooEv,_ZTv0_n12_N7ee270623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270623fooEv,_ZThn12_N7ee270623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN7ee270623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270623fooEv,_ZTv0_n12_N7ee270623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee27062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee27062[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee27062[] = {
+ {&(_ZTV7ee27062[3]), 3,11},
+ {&(_tg__ZTV6dd7062__7ee27062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee27062[4]), 4,6},
+ {&(_ZTV7ee27062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27062[];
+extern VTBL_ENTRY _ZTV7ee27062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27062[];
+static VTBL_ENTRY alt_thunk_names970[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270623fooEv,_ZTv0_n12_N7ee270623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270623fooEv,_ZThn12_N7ee270623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27062 = { "ee27062", // class name
+ bases_ee27062, 4,
+ &(vtc_ee27062[0]), // expected_vtbl_contents
+ &(vtt_ee27062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27062),4, //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 ee37062 : virtual dd7062 {
+ int e;
+ virtual void foo(); // _ZN7ee370623fooEv
+ ~ee37062(); // tgen
+ ee37062(); // tgen
+};
+//SIG(1 ee37062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37062 ::foo(){vfunc_called(this, "_ZN7ee370623fooEv");}
+ee37062 ::~ee37062(){ note_dtor("ee37062", this);} // tgen
+ee37062 ::ee37062(){ note_ctor("ee37062", this);} // tgen
+
+static void Test_ee37062()
+{
+ extern Class_Descriptor cd_ee37062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37062, buf);
+ ee37062 *dp, &lv = *(dp=new (buf) ee37062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee37062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee37062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(32,16), "ee37062");
+ check_base_class_offset(lv, (dd7062*), ABISELECT(16,8), "ee37062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37062.e");
+ test_class_info(&lv, &cd_ee37062);
+ dp->~ee37062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37062(Test_ee37062, "ee37062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37062C1Ev();
+extern void _ZN7ee37062D1Ev();
+Name_Map name_map_ee37062[] = {
+ NSPAIR(_ZN7ee37062C1Ev),
+ NSPAIR(_ZN7ee37062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee37062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, ABISELECT(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 _ZTI7ee37062[];
+extern void _ZN7ee370623fooEv();
+extern void _ZN6dd70623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370623fooEv,_ZTv0_n20_N7ee370623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370623fooEv,_ZThn8_N7ee370623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370623fooEv,_ZTv0_n12_N7ee370623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370623fooEv,_ZThn16_N7ee370623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37062[0]),
+ (VTBL_ENTRY)&_ZN7ee370623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370623fooEv,_ZTv0_n20_N7ee370623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370623fooEv,_ZTv0_n12_N7ee370623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee37062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee37062[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee37062[] = {
+ {&(_ZTV7ee37062[4]), 4,18},
+ {&(_ZTV7ee37062[10]), 10,18},
+ {&(_ZTV7ee37062[16]), 16,18},
+ {&(_tg__ZTV6dd7062__7ee37062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee37062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37062[];
+extern VTBL_ENTRY _ZTV7ee37062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37062[];
+static VTBL_ENTRY alt_thunk_names971[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370623fooEv,_ZTv0_n12_N7ee370623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370623fooEv,_ZThn16_N7ee370623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370623fooEv,_ZTv0_n20_N7ee370623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370623fooEv,_ZThn8_N7ee370623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37062 = { "ee37062", // class name
+ bases_ee37062, 4,
+ &(vtc_ee37062[0]), // expected_vtbl_contents
+ &(vtt_ee37062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37062),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37062),5, //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 ee47062 : dd7062 {
+ int e;
+ virtual void bar(); // _ZN7ee470623barEv
+ ~ee47062(); // tgen
+ ee47062(); // tgen
+};
+//SIG(1 ee47062) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47062 ::bar(){vfunc_called(this, "_ZN7ee470623barEv");}
+ee47062 ::~ee47062(){ note_dtor("ee47062", this);} // tgen
+ee47062 ::ee47062(){ note_ctor("ee47062", this);} // tgen
+
+static void Test_ee47062()
+{
+ extern Class_Descriptor cd_ee47062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47062, buf);
+ ee47062 *dp, &lv = *(dp=new (buf) ee47062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee47062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee47062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(16,12), "ee47062");
+ check_base_class_offset(lv, (dd7062*), 0, "ee47062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47062.e");
+ test_class_info(&lv, &cd_ee47062);
+ dp->~ee47062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47062(Test_ee47062, "ee47062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47062C1Ev();
+extern void _ZN7ee47062D1Ev();
+Name_Map name_map_ee47062[] = {
+ NSPAIR(_ZN7ee47062C1Ev),
+ NSPAIR(_ZN7ee47062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee47062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47062[];
+extern void _ZN7ee470623barEv();
+extern void _ZN6dd70623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee470623barEv,_ZTv0_n16_N7ee470623barEv)();
+extern void ABISELECT(_ZThn16_N7ee470623barEv,_ZThn12_N7ee470623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47062[0]),
+ (VTBL_ENTRY)&_ZN7ee470623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470623barEv,_ZTv0_n16_N7ee470623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee47062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee47062[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee47062[] = {
+ {&(_ZTV7ee47062[3]), 3,11},
+ {&(_tg__ZTV6dd7062__7ee47062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee47062[4]), 4,6},
+ {&(_ZTV7ee47062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47062[];
+extern VTBL_ENTRY _ZTV7ee47062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47062[];
+static VTBL_ENTRY alt_thunk_names972[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470623barEv,_ZTv0_n16_N7ee470623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470623barEv,_ZThn12_N7ee470623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47062 = { "ee47062", // class name
+ bases_ee47062, 4,
+ &(vtc_ee47062[0]), // expected_vtbl_contents
+ &(vtt_ee47062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47062),4, //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 ee57062 : virtual dd7062 {
+ int e;
+ virtual void bar(); // _ZN7ee570623barEv
+ ~ee57062(); // tgen
+ ee57062(); // tgen
+};
+//SIG(1 ee57062) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57062 ::bar(){vfunc_called(this, "_ZN7ee570623barEv");}
+ee57062 ::~ee57062(){ note_dtor("ee57062", this);} // tgen
+ee57062 ::ee57062(){ note_ctor("ee57062", this);} // tgen
+
+static void Test_ee57062()
+{
+ extern Class_Descriptor cd_ee57062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57062, buf);
+ ee57062 *dp, &lv = *(dp=new (buf) ee57062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee57062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee57062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(32,16), "ee57062");
+ check_base_class_offset(lv, (dd7062*), ABISELECT(16,8), "ee57062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57062.e");
+ test_class_info(&lv, &cd_ee57062);
+ dp->~ee57062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57062(Test_ee57062, "ee57062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57062C1Ev();
+extern void _ZN7ee57062D1Ev();
+Name_Map name_map_ee57062[] = {
+ NSPAIR(_ZN7ee57062C1Ev),
+ NSPAIR(_ZN7ee57062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee57062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, ABISELECT(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 _ZTI7ee57062[];
+extern void _ZN7ee570623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570623barEv,_ZTv0_n16_N7ee570623barEv)();
+extern void ABISELECT(_ZThn16_N7ee570623barEv,_ZThn8_N7ee570623barEv)() __attribute__((weak));
+extern void _ZN6dd70623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee570623barEv,_ZTv0_n16_N7ee570623barEv)();
+extern void ABISELECT(_ZThn32_N7ee570623barEv,_ZThn16_N7ee570623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57062[0]),
+ (VTBL_ENTRY)&_ZN7ee570623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570623barEv,_ZTv0_n16_N7ee570623barEv),
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570623barEv,_ZTv0_n16_N7ee570623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee57062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee57062[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee57062[] = {
+ {&(_ZTV7ee57062[4]), 4,18},
+ {&(_ZTV7ee57062[10]), 10,18},
+ {&(_ZTV7ee57062[16]), 16,18},
+ {&(_tg__ZTV6dd7062__7ee57062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee57062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57062[];
+extern VTBL_ENTRY _ZTV7ee57062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57062[];
+static VTBL_ENTRY alt_thunk_names973[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570623barEv,_ZTv0_n16_N7ee570623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570623barEv,_ZThn16_N7ee570623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570623barEv,_ZThn8_N7ee570623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57062 = { "ee57062", // class name
+ bases_ee57062, 4,
+ &(vtc_ee57062[0]), // expected_vtbl_contents
+ &(vtt_ee57062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57062),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57062),5, //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 ee67062 : dd7062 {
+ int e;
+ virtual void foo(); // _ZN7ee670623fooEv
+ virtual void bar(); // _ZN7ee670623barEv
+ ~ee67062(); // tgen
+ ee67062(); // tgen
+};
+//SIG(1 ee67062) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67062 ::foo(){vfunc_called(this, "_ZN7ee670623fooEv");}
+void ee67062 ::bar(){vfunc_called(this, "_ZN7ee670623barEv");}
+ee67062 ::~ee67062(){ note_dtor("ee67062", this);} // tgen
+ee67062 ::ee67062(){ note_ctor("ee67062", this);} // tgen
+
+static void Test_ee67062()
+{
+ extern Class_Descriptor cd_ee67062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67062, buf);
+ ee67062 *dp, &lv = *(dp=new (buf) ee67062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(16,12), "ee67062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(16,12), "ee67062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(16,12), "ee67062");
+ check_base_class_offset(lv, (dd7062*), 0, "ee67062");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67062.e");
+ test_class_info(&lv, &cd_ee67062);
+ dp->~ee67062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67062(Test_ee67062, "ee67062", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67062C1Ev();
+extern void _ZN7ee67062D1Ev();
+Name_Map name_map_ee67062[] = {
+ NSPAIR(_ZN7ee67062C1Ev),
+ NSPAIR(_ZN7ee67062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee67062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67062[];
+extern void _ZN7ee670623barEv();
+extern void _ZN7ee670623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670623fooEv,_ZTv0_n12_N7ee670623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670623fooEv,_ZThn12_N7ee670623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670623barEv,_ZTv0_n16_N7ee670623barEv)();
+extern void ABISELECT(_ZThn16_N7ee670623barEv,_ZThn12_N7ee670623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67062[0]),
+ (VTBL_ENTRY)&_ZN7ee670623barEv,
+ (VTBL_ENTRY)&_ZN7ee670623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670623fooEv,_ZTv0_n12_N7ee670623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670623barEv,_ZTv0_n16_N7ee670623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee67062[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee67062[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee67062[] = {
+ {&(_ZTV7ee67062[3]), 3,11},
+ {&(_tg__ZTV6dd7062__7ee67062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee67062[4]), 4,6},
+ {&(_ZTV7ee67062[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67062[];
+extern VTBL_ENTRY _ZTV7ee67062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67062[];
+static VTBL_ENTRY alt_thunk_names974[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn12_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn12_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670623barEv,_ZTv0_n16_N7ee670623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670623barEv,_ZThn12_N7ee670623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670623fooEv,_ZTv0_n12_N7ee670623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670623fooEv,_ZThn12_N7ee670623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67062 = { "ee67062", // class name
+ bases_ee67062, 4,
+ &(vtc_ee67062[0]), // expected_vtbl_contents
+ &(vtt_ee67062[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67062),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67062),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67062),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names974,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77062 : virtual dd7062 {
+ int e;
+ virtual void foo(); // _ZN7ee770623fooEv
+ virtual void bar(); // _ZN7ee770623barEv
+ ~ee77062(); // tgen
+ ee77062(); // tgen
+};
+//SIG(1 ee77062) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77062 ::foo(){vfunc_called(this, "_ZN7ee770623fooEv");}
+void ee77062 ::bar(){vfunc_called(this, "_ZN7ee770623barEv");}
+ee77062 ::~ee77062(){ note_dtor("ee77062", this);} // tgen
+ee77062 ::ee77062(){ note_ctor("ee77062", this);} // tgen
+
+static void Test_ee77062()
+{
+ extern Class_Descriptor cd_ee77062;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77062, buf);
+ ee77062 *dp, &lv = *(dp=new (buf) ee77062());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77062)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77062)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc062*), ABISELECT(32,16), "ee77062");
+ check_base_class_offset(lv, (bb62*)(cc062*), ABISELECT(32,16), "ee77062");
+ check_base_class_offset(lv, (cc062*)(dd7062*), ABISELECT(32,16), "ee77062");
+ check_base_class_offset(lv, (dd7062*), ABISELECT(16,8), "ee77062");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77062.e");
+ test_class_info(&lv, &cd_ee77062);
+ dp->~ee77062();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77062(Test_ee77062, "ee77062", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77062C1Ev();
+extern void _ZN7ee77062D1Ev();
+Name_Map name_map_ee77062[] = {
+ NSPAIR(_ZN7ee77062C1Ev),
+ NSPAIR(_ZN7ee77062D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc062;
+extern VTBL_ENTRY _ZTI5cc062[];
+extern VTBL_ENTRY _ZTV5cc062[];
+extern Class_Descriptor cd_dd7062;
+extern VTBL_ENTRY _ZTI6dd7062[];
+extern VTBL_ENTRY _ZTV6dd7062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7062[];
+static Base_Class bases_ee77062[] = {
+ // 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_bb62, 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_cc062, 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_dd7062, ABISELECT(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 _ZTI7ee77062[];
+extern void _ZN7ee770623fooEv();
+extern void _ZN7ee770623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770623barEv,_ZTv0_n16_N7ee770623barEv)();
+extern void ABISELECT(_ZThn16_N7ee770623barEv,_ZThn8_N7ee770623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770623fooEv,_ZTv0_n20_N7ee770623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770623fooEv,_ZThn8_N7ee770623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770623fooEv,_ZTv0_n12_N7ee770623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770623fooEv,_ZThn16_N7ee770623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770623barEv,_ZTv0_n16_N7ee770623barEv)();
+extern void ABISELECT(_ZThn32_N7ee770623barEv,_ZThn16_N7ee770623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77062[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77062[0]),
+ (VTBL_ENTRY)&_ZN7ee770623fooEv,
+ (VTBL_ENTRY)&_ZN7ee770623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770623barEv,_ZTv0_n16_N7ee770623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770623fooEv,_ZTv0_n20_N7ee770623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770623fooEv,_ZTv0_n12_N7ee770623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770623barEv,_ZTv0_n16_N7ee770623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77062[];
+extern void _ZN6dd70623barEv();
+extern void _ZN6dd70623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7062__7ee77062[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&_ZN6dd70623barEv,
+ (VTBL_ENTRY)&_ZN6dd70623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv)();
+extern void ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb625cc062__6dd7062__7ee77062[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7062[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv),
+};
+static VTT_ENTRY vtt_ee77062[] = {
+ {&(_ZTV7ee77062[4]), 4,19},
+ {&(_ZTV7ee77062[11]), 11,19},
+ {&(_ZTV7ee77062[17]), 17,19},
+ {&(_tg__ZTV6dd7062__7ee77062[3]), 3,5},
+ {&(_tg__ZTV4bb625cc062__6dd7062__7ee77062[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77062[];
+extern VTBL_ENTRY _ZTV7ee77062[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77062[];
+static VTBL_ENTRY alt_thunk_names975[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70623barEv,_ZTv0_n16_N6dd70623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623barEv,_ZThn8_N6dd70623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70623fooEv,_ZTv0_n12_N6dd70623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70623fooEv,_ZThn8_N6dd70623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770623fooEv,_ZTv0_n12_N7ee770623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770623fooEv,_ZThn16_N7ee770623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770623fooEv,_ZTv0_n20_N7ee770623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770623fooEv,_ZThn8_N7ee770623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770623barEv,_ZTv0_n16_N7ee770623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770623barEv,_ZThn16_N7ee770623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770623barEv,_ZThn8_N7ee770623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77062 = { "ee77062", // class name
+ bases_ee77062, 4,
+ &(vtc_ee77062[0]), // expected_vtbl_contents
+ &(vtt_ee77062[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77062),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77062),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77062),5, //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 cc162 : virtual bb62 {
+ int c;
+ ~cc162(); // tgen
+ cc162(); // tgen
+};
+//SIG(-1 cc162) C1{ VBC2{ BC3{ v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+cc162 ::~cc162(){ note_dtor("cc162", this);} // tgen
+cc162 ::cc162(){ note_ctor("cc162", this);} // tgen
+
+static void Test_cc162()
+{
+ extern Class_Descriptor cd_cc162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc162, buf);
+ cc162 *dp, &lv = *(dp=new (buf) cc162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,8), "cc162");
+ check_base_class_offset(lv, (bb62*), ABISELECT(16,8), "cc162");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc162.c");
+ test_class_info(&lv, &cd_cc162);
+ dp->~cc162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc162(Test_cc162, "cc162", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc162C1Ev();
+extern void _ZN5cc162D1Ev();
+Name_Map name_map_cc162[] = {
+ NSPAIR(_ZN5cc162C1Ev),
+ NSPAIR(_ZN5cc162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc162[] = {
+ // 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_bb62, 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 _ZTI5cc162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_cc162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV5cc162[];
+static VTT_ENTRY vtt_cc162[] = {
+ {&(_ZTV5cc162[3]), 3,9},
+ {&(_ZTV5cc162[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+Class_Descriptor cd_cc162 = { "cc162", // class name
+ bases_cc162, 2,
+ &(vtc_cc162[0]), // expected_vtbl_contents
+ &(vtt_cc162[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc162),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc162),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 dd0162 : cc162 {
+ int d;
+ ~dd0162(); // tgen
+ dd0162(); // tgen
+};
+//SIG(-1 dd0162) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd0162 ::~dd0162(){ note_dtor("dd0162", this);} // tgen
+dd0162 ::dd0162(){ note_ctor("dd0162", this);} // tgen
+
+static void Test_dd0162()
+{
+ extern Class_Descriptor cd_dd0162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0162, buf);
+ dd0162 *dp, &lv = *(dp=new (buf) dd0162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd0162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(16,12), "dd0162");
+ check_base_class_offset(lv, (cc162*), 0, "dd0162");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0162.d");
+ test_class_info(&lv, &cd_dd0162);
+ dp->~dd0162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0162(Test_dd0162, "dd0162", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0162C1Ev();
+extern void _ZN6dd0162D1Ev();
+Name_Map name_map_dd0162[] = {
+ NSPAIR(_ZN6dd0162C1Ev),
+ NSPAIR(_ZN6dd0162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd0162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd0162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd0162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd0162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd0162[] = {
+ {&(_ZTV6dd0162[3]), 3,9},
+ {&(_tg__ZTV5cc162__6dd0162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd0162[4]), 4,6},
+ {&(_ZTV6dd0162[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+Class_Descriptor cd_dd0162 = { "dd0162", // class name
+ bases_dd0162, 3,
+ &(vtc_dd0162[0]), // expected_vtbl_contents
+ &(vtt_dd0162[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0162),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0162),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 ee00162 : dd0162 {
+ int e;
+ ~ee00162(); // tgen
+ ee00162(); // tgen
+};
+//SIG(1 ee00162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee00162 ::~ee00162(){ note_dtor("ee00162", this);} // tgen
+ee00162 ::ee00162(){ note_ctor("ee00162", this);} // tgen
+
+static void Test_ee00162()
+{
+ extern Class_Descriptor cd_ee00162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00162, buf);
+ ee00162 *dp, &lv = *(dp=new (buf) ee00162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee00162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(24,16), "ee00162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), 0, "ee00162");
+ check_base_class_offset(lv, (dd0162*), 0, "ee00162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00162.e");
+ test_class_info(&lv, &cd_ee00162);
+ dp->~ee00162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00162(Test_ee00162, "ee00162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00162C1Ev();
+extern void _ZN7ee00162D1Ev();
+Name_Map name_map_ee00162[] = {
+ NSPAIR(_ZN7ee00162C1Ev),
+ NSPAIR(_ZN7ee00162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee00162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee00162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00162[0]),
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee00162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee00162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee00162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee00162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee00162[] = {
+ {&(_ZTV7ee00162[3]), 3,9},
+ {&(_tg__ZTV6dd0162__7ee00162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee00162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee00162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee00162[4]), 4,6},
+ {&(_ZTV7ee00162[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee00162[];
+extern VTBL_ENTRY _ZTV7ee00162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00162[];
+Class_Descriptor cd_ee00162 = { "ee00162", // class name
+ bases_ee00162, 4,
+ &(vtc_ee00162[0]), // expected_vtbl_contents
+ &(vtt_ee00162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00162),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00162),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 ee10162 : virtual dd0162 {
+ int e;
+ ~ee10162(); // tgen
+ ee10162(); // tgen
+};
+//SIG(1 ee10162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee10162 ::~ee10162(){ note_dtor("ee10162", this);} // tgen
+ee10162 ::ee10162(){ note_ctor("ee10162", this);} // tgen
+
+static void Test_ee10162()
+{
+ extern Class_Descriptor cd_ee10162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10162, buf);
+ ee10162 *dp, &lv = *(dp=new (buf) ee10162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee10162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(32,20), "ee10162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), ABISELECT(16,8), "ee10162");
+ check_base_class_offset(lv, (dd0162*), ABISELECT(16,8), "ee10162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10162.e");
+ test_class_info(&lv, &cd_ee10162);
+ dp->~ee10162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10162(Test_ee10162, "ee10162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10162C1Ev();
+extern void _ZN7ee10162D1Ev();
+Name_Map name_map_ee10162[] = {
+ NSPAIR(_ZN7ee10162C1Ev),
+ NSPAIR(_ZN7ee10162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee10162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 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 _ZTI7ee10162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee10162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10162[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10162[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee10162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee10162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee10162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee10162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee10162[] = {
+ {&(_ZTV7ee10162[4]), 4,13},
+ {&(_ZTV7ee10162[7]), 7,13},
+ {&(_ZTV7ee10162[11]), 11,13},
+ {&(_tg__ZTV6dd0162__7ee10162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee10162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee10162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee10162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10162[];
+extern VTBL_ENTRY _ZTV7ee10162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10162[];
+Class_Descriptor cd_ee10162 = { "ee10162", // class name
+ bases_ee10162, 4,
+ &(vtc_ee10162[0]), // expected_vtbl_contents
+ &(vtt_ee10162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10162),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10162),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 ee20162 : dd0162 {
+ int e;
+ virtual void foo(); // _ZN7ee201623fooEv
+ ~ee20162(); // tgen
+ ee20162(); // tgen
+};
+//SIG(1 ee20162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20162 ::foo(){vfunc_called(this, "_ZN7ee201623fooEv");}
+ee20162 ::~ee20162(){ note_dtor("ee20162", this);} // tgen
+ee20162 ::ee20162(){ note_ctor("ee20162", this);} // tgen
+
+static void Test_ee20162()
+{
+ extern Class_Descriptor cd_ee20162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20162, buf);
+ ee20162 *dp, &lv = *(dp=new (buf) ee20162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee20162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(24,16), "ee20162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), 0, "ee20162");
+ check_base_class_offset(lv, (dd0162*), 0, "ee20162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20162.e");
+ test_class_info(&lv, &cd_ee20162);
+ dp->~ee20162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20162(Test_ee20162, "ee20162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20162C1Ev();
+extern void _ZN7ee20162D1Ev();
+Name_Map name_map_ee20162[] = {
+ NSPAIR(_ZN7ee20162C1Ev),
+ NSPAIR(_ZN7ee20162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee20162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20162[];
+extern void _ZN7ee201623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201623fooEv,_ZTv0_n12_N7ee201623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201623fooEv,_ZThn16_N7ee201623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee20162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20162[0]),
+ (VTBL_ENTRY)&_ZN7ee201623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201623fooEv,_ZTv0_n12_N7ee201623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee20162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee20162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee20162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee20162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee20162[] = {
+ {&(_ZTV7ee20162[3]), 3,10},
+ {&(_tg__ZTV6dd0162__7ee20162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee20162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee20162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee20162[4]), 4,6},
+ {&(_ZTV7ee20162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20162[];
+extern VTBL_ENTRY _ZTV7ee20162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20162[];
+static VTBL_ENTRY alt_thunk_names976[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201623fooEv,_ZTv0_n12_N7ee201623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201623fooEv,_ZThn16_N7ee201623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20162 = { "ee20162", // class name
+ bases_ee20162, 4,
+ &(vtc_ee20162[0]), // expected_vtbl_contents
+ &(vtt_ee20162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20162),6, //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 ee30162 : virtual dd0162 {
+ int e;
+ virtual void foo(); // _ZN7ee301623fooEv
+ ~ee30162(); // tgen
+ ee30162(); // tgen
+};
+//SIG(1 ee30162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30162 ::foo(){vfunc_called(this, "_ZN7ee301623fooEv");}
+ee30162 ::~ee30162(){ note_dtor("ee30162", this);} // tgen
+ee30162 ::ee30162(){ note_ctor("ee30162", this);} // tgen
+
+static void Test_ee30162()
+{
+ extern Class_Descriptor cd_ee30162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30162, buf);
+ ee30162 *dp, &lv = *(dp=new (buf) ee30162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee30162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(32,20), "ee30162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), ABISELECT(16,8), "ee30162");
+ check_base_class_offset(lv, (dd0162*), ABISELECT(16,8), "ee30162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30162.e");
+ test_class_info(&lv, &cd_ee30162);
+ dp->~ee30162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30162(Test_ee30162, "ee30162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30162C1Ev();
+extern void _ZN7ee30162D1Ev();
+Name_Map name_map_ee30162[] = {
+ NSPAIR(_ZN7ee30162C1Ev),
+ NSPAIR(_ZN7ee30162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee30162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 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 _ZTI7ee30162[];
+extern void _ZN7ee301623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301623fooEv,_ZTv0_n12_N7ee301623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301623fooEv,_ZThn20_N7ee301623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee30162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30162[0]),
+ (VTBL_ENTRY)&_ZN7ee301623fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30162[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301623fooEv,_ZTv0_n12_N7ee301623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee30162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee30162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee30162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee30162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee30162[] = {
+ {&(_ZTV7ee30162[4]), 4,14},
+ {&(_ZTV7ee30162[8]), 8,14},
+ {&(_ZTV7ee30162[12]), 12,14},
+ {&(_tg__ZTV6dd0162__7ee30162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee30162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee30162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee30162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30162[];
+extern VTBL_ENTRY _ZTV7ee30162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30162[];
+static VTBL_ENTRY alt_thunk_names977[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301623fooEv,_ZTv0_n12_N7ee301623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301623fooEv,_ZThn20_N7ee301623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30162 = { "ee30162", // class name
+ bases_ee30162, 4,
+ &(vtc_ee30162[0]), // expected_vtbl_contents
+ &(vtt_ee30162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30162),7, //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 ee40162 : dd0162 {
+ int e;
+ virtual void bar(); // _ZN7ee401623barEv
+ ~ee40162(); // tgen
+ ee40162(); // tgen
+};
+//SIG(1 ee40162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40162 ::bar(){vfunc_called(this, "_ZN7ee401623barEv");}
+ee40162 ::~ee40162(){ note_dtor("ee40162", this);} // tgen
+ee40162 ::ee40162(){ note_ctor("ee40162", this);} // tgen
+
+static void Test_ee40162()
+{
+ extern Class_Descriptor cd_ee40162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40162, buf);
+ ee40162 *dp, &lv = *(dp=new (buf) ee40162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee40162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(24,16), "ee40162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), 0, "ee40162");
+ check_base_class_offset(lv, (dd0162*), 0, "ee40162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40162.e");
+ test_class_info(&lv, &cd_ee40162);
+ dp->~ee40162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40162(Test_ee40162, "ee40162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40162C1Ev();
+extern void _ZN7ee40162D1Ev();
+Name_Map name_map_ee40162[] = {
+ NSPAIR(_ZN7ee40162C1Ev),
+ NSPAIR(_ZN7ee40162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee40162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40162[];
+extern void _ZN7ee401623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401623barEv,_ZTv0_n16_N7ee401623barEv)();
+extern void ABISELECT(_ZThn24_N7ee401623barEv,_ZThn16_N7ee401623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40162[0]),
+ (VTBL_ENTRY)&_ZN7ee401623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401623barEv,_ZTv0_n16_N7ee401623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee40162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee40162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee40162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee40162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee40162[] = {
+ {&(_ZTV7ee40162[3]), 3,10},
+ {&(_tg__ZTV6dd0162__7ee40162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee40162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee40162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee40162[4]), 4,6},
+ {&(_ZTV7ee40162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40162[];
+extern VTBL_ENTRY _ZTV7ee40162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40162[];
+static VTBL_ENTRY alt_thunk_names978[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401623barEv,_ZTv0_n16_N7ee401623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401623barEv,_ZThn16_N7ee401623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40162 = { "ee40162", // class name
+ bases_ee40162, 4,
+ &(vtc_ee40162[0]), // expected_vtbl_contents
+ &(vtt_ee40162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40162),6, //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 ee50162 : virtual dd0162 {
+ int e;
+ virtual void bar(); // _ZN7ee501623barEv
+ ~ee50162(); // tgen
+ ee50162(); // tgen
+};
+//SIG(1 ee50162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50162 ::bar(){vfunc_called(this, "_ZN7ee501623barEv");}
+ee50162 ::~ee50162(){ note_dtor("ee50162", this);} // tgen
+ee50162 ::ee50162(){ note_ctor("ee50162", this);} // tgen
+
+static void Test_ee50162()
+{
+ extern Class_Descriptor cd_ee50162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50162, buf);
+ ee50162 *dp, &lv = *(dp=new (buf) ee50162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee50162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(32,20), "ee50162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), ABISELECT(16,8), "ee50162");
+ check_base_class_offset(lv, (dd0162*), ABISELECT(16,8), "ee50162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50162.e");
+ test_class_info(&lv, &cd_ee50162);
+ dp->~ee50162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50162(Test_ee50162, "ee50162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50162C1Ev();
+extern void _ZN7ee50162D1Ev();
+Name_Map name_map_ee50162[] = {
+ NSPAIR(_ZN7ee50162C1Ev),
+ NSPAIR(_ZN7ee50162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee50162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 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 _ZTI7ee50162[];
+extern void _ZN7ee501623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501623barEv,_ZTv0_n16_N7ee501623barEv)();
+extern void ABISELECT(_ZThn32_N7ee501623barEv,_ZThn20_N7ee501623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50162[0]),
+ (VTBL_ENTRY)&_ZN7ee501623barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50162[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501623barEv,_ZTv0_n16_N7ee501623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee50162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee50162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee50162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee50162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee50162[] = {
+ {&(_ZTV7ee50162[4]), 4,14},
+ {&(_ZTV7ee50162[8]), 8,14},
+ {&(_ZTV7ee50162[12]), 12,14},
+ {&(_tg__ZTV6dd0162__7ee50162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee50162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee50162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee50162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50162[];
+extern VTBL_ENTRY _ZTV7ee50162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50162[];
+static VTBL_ENTRY alt_thunk_names979[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501623barEv,_ZTv0_n16_N7ee501623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501623barEv,_ZThn20_N7ee501623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50162 = { "ee50162", // class name
+ bases_ee50162, 4,
+ &(vtc_ee50162[0]), // expected_vtbl_contents
+ &(vtt_ee50162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50162),7, //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 ee60162 : dd0162 {
+ int e;
+ virtual void foo(); // _ZN7ee601623fooEv
+ virtual void bar(); // _ZN7ee601623barEv
+ ~ee60162(); // tgen
+ ee60162(); // tgen
+};
+//SIG(1 ee60162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60162 ::foo(){vfunc_called(this, "_ZN7ee601623fooEv");}
+void ee60162 ::bar(){vfunc_called(this, "_ZN7ee601623barEv");}
+ee60162 ::~ee60162(){ note_dtor("ee60162", this);} // tgen
+ee60162 ::ee60162(){ note_ctor("ee60162", this);} // tgen
+
+static void Test_ee60162()
+{
+ extern Class_Descriptor cd_ee60162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60162, buf);
+ ee60162 *dp, &lv = *(dp=new (buf) ee60162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee60162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(24,16), "ee60162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), 0, "ee60162");
+ check_base_class_offset(lv, (dd0162*), 0, "ee60162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60162.e");
+ test_class_info(&lv, &cd_ee60162);
+ dp->~ee60162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60162(Test_ee60162, "ee60162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60162C1Ev();
+extern void _ZN7ee60162D1Ev();
+Name_Map name_map_ee60162[] = {
+ NSPAIR(_ZN7ee60162C1Ev),
+ NSPAIR(_ZN7ee60162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee60162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60162[];
+extern void _ZN7ee601623fooEv();
+extern void _ZN7ee601623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601623fooEv,_ZTv0_n12_N7ee601623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601623fooEv,_ZThn16_N7ee601623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601623barEv,_ZTv0_n16_N7ee601623barEv)();
+extern void ABISELECT(_ZThn24_N7ee601623barEv,_ZThn16_N7ee601623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60162[0]),
+ (VTBL_ENTRY)&_ZN7ee601623fooEv,
+ (VTBL_ENTRY)&_ZN7ee601623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601623fooEv,_ZTv0_n12_N7ee601623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601623barEv,_ZTv0_n16_N7ee601623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee60162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee60162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee60162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee60162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee60162[] = {
+ {&(_ZTV7ee60162[3]), 3,11},
+ {&(_tg__ZTV6dd0162__7ee60162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee60162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee60162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee60162[4]), 4,6},
+ {&(_ZTV7ee60162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60162[];
+extern VTBL_ENTRY _ZTV7ee60162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60162[];
+static VTBL_ENTRY alt_thunk_names980[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601623barEv,_ZTv0_n16_N7ee601623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601623barEv,_ZThn16_N7ee601623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601623fooEv,_ZTv0_n12_N7ee601623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601623fooEv,_ZThn16_N7ee601623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60162 = { "ee60162", // class name
+ bases_ee60162, 4,
+ &(vtc_ee60162[0]), // expected_vtbl_contents
+ &(vtt_ee60162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60162),6, //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 ee70162 : virtual dd0162 {
+ int e;
+ virtual void foo(); // _ZN7ee701623fooEv
+ virtual void bar(); // _ZN7ee701623barEv
+ ~ee70162(); // tgen
+ ee70162(); // tgen
+};
+//SIG(1 ee70162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70162 ::foo(){vfunc_called(this, "_ZN7ee701623fooEv");}
+void ee70162 ::bar(){vfunc_called(this, "_ZN7ee701623barEv");}
+ee70162 ::~ee70162(){ note_dtor("ee70162", this);} // tgen
+ee70162 ::ee70162(){ note_ctor("ee70162", this);} // tgen
+
+static void Test_ee70162()
+{
+ extern Class_Descriptor cd_ee70162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70162, buf);
+ ee70162 *dp, &lv = *(dp=new (buf) ee70162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee70162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd0162*), ABISELECT(32,20), "ee70162");
+ check_base_class_offset(lv, (cc162*)(dd0162*), ABISELECT(16,8), "ee70162");
+ check_base_class_offset(lv, (dd0162*), ABISELECT(16,8), "ee70162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70162.e");
+ test_class_info(&lv, &cd_ee70162);
+ dp->~ee70162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70162(Test_ee70162, "ee70162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70162C1Ev();
+extern void _ZN7ee70162D1Ev();
+Name_Map name_map_ee70162[] = {
+ NSPAIR(_ZN7ee70162C1Ev),
+ NSPAIR(_ZN7ee70162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd0162;
+extern VTBL_ENTRY _ZTI6dd0162[];
+extern VTBL_ENTRY _ZTV6dd0162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0162[];
+static Base_Class bases_ee70162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0162, 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 _ZTI7ee70162[];
+extern void _ZN7ee701623fooEv();
+extern void _ZN7ee701623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701623fooEv,_ZTv0_n12_N7ee701623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701623fooEv,_ZThn20_N7ee701623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701623barEv,_ZTv0_n16_N7ee701623barEv)();
+extern void ABISELECT(_ZThn32_N7ee701623barEv,_ZThn20_N7ee701623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70162[0]),
+ (VTBL_ENTRY)&_ZN7ee701623fooEv,
+ (VTBL_ENTRY)&_ZN7ee701623barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701623fooEv,_ZTv0_n12_N7ee701623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701623barEv,_ZTv0_n16_N7ee701623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70162[];
+static VTBL_ENTRY _tg__ZTV6dd0162__7ee70162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd0162__7ee70162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd0162__7ee70162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0162__7ee70162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee70162[] = {
+ {&(_ZTV7ee70162[4]), 4,15},
+ {&(_ZTV7ee70162[9]), 9,15},
+ {&(_ZTV7ee70162[13]), 13,15},
+ {&(_tg__ZTV6dd0162__7ee70162[3]), 3,3},
+ {&(_tg__ZTV5cc1626dd0162__7ee70162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd0162__7ee70162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0162__7ee70162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70162[];
+extern VTBL_ENTRY _ZTV7ee70162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70162[];
+static VTBL_ENTRY alt_thunk_names981[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701623barEv,_ZTv0_n16_N7ee701623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701623barEv,_ZThn20_N7ee701623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701623fooEv,_ZTv0_n12_N7ee701623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701623fooEv,_ZThn20_N7ee701623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70162 = { "ee70162", // class name
+ bases_ee70162, 4,
+ &(vtc_ee70162[0]), // expected_vtbl_contents
+ &(vtt_ee70162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70162),7, //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 dd1162 : virtual cc162 {
+ int d;
+ ~dd1162(); // tgen
+ dd1162(); // tgen
+};
+//SIG(-1 dd1162) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+dd1162 ::~dd1162(){ note_dtor("dd1162", this);} // tgen
+dd1162 ::dd1162(){ note_ctor("dd1162", this);} // tgen
+
+static void Test_dd1162()
+{
+ extern Class_Descriptor cd_dd1162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1162, buf);
+ dd1162 *dp, &lv = *(dp=new (buf) dd1162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd1162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,16), "dd1162");
+ check_base_class_offset(lv, (cc162*), ABISELECT(16,8), "dd1162");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1162.d");
+ test_class_info(&lv, &cd_dd1162);
+ dp->~dd1162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1162(Test_dd1162, "dd1162", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1162C1Ev();
+extern void _ZN6dd1162D1Ev();
+Name_Map name_map_dd1162[] = {
+ NSPAIR(_ZN6dd1162C1Ev),
+ NSPAIR(_ZN6dd1162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd1162[] = {
+ // 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_bb62, 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_cc162, 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 _ZTI6dd1162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd1162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd1162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd1162[] = {
+ {&(_ZTV6dd1162[4]), 4,13},
+ {&(_ZTV6dd1162[7]), 7,13},
+ {&(_ZTV6dd1162[11]), 11,13},
+ {&(_tg__ZTV5cc162__6dd1162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd1162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+Class_Descriptor cd_dd1162 = { "dd1162", // class name
+ bases_dd1162, 3,
+ &(vtc_dd1162[0]), // expected_vtbl_contents
+ &(vtt_dd1162[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1162),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1162),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 ee01162 : dd1162 {
+ int e;
+ ~ee01162(); // tgen
+ ee01162(); // tgen
+};
+//SIG(1 ee01162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee01162 ::~ee01162(){ note_dtor("ee01162", this);} // tgen
+ee01162 ::ee01162(){ note_ctor("ee01162", this);} // tgen
+
+static void Test_ee01162()
+{
+ extern Class_Descriptor cd_ee01162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01162, buf);
+ ee01162 *dp, &lv = *(dp=new (buf) ee01162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee01162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee01162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(16,12), "ee01162");
+ check_base_class_offset(lv, (dd1162*), 0, "ee01162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01162.e");
+ test_class_info(&lv, &cd_ee01162);
+ dp->~ee01162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01162(Test_ee01162, "ee01162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01162C1Ev();
+extern void _ZN7ee01162D1Ev();
+Name_Map name_map_ee01162[] = {
+ NSPAIR(_ZN7ee01162C1Ev),
+ NSPAIR(_ZN7ee01162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee01162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee01162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01162[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee01162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee01162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee01162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee01162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee01162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee01162[] = {
+ {&(_ZTV7ee01162[4]), 4,13},
+ {&(_tg__ZTV6dd1162__7ee01162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee01162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee01162[4]), 4,6},
+ {&(_ZTV7ee01162[7]), 7,13},
+ {&(_ZTV7ee01162[11]), 11,13},
+ {&(_tg__ZTV5cc162__7ee01162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee01162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01162[];
+extern VTBL_ENTRY _ZTV7ee01162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01162[];
+Class_Descriptor cd_ee01162 = { "ee01162", // class name
+ bases_ee01162, 4,
+ &(vtc_ee01162[0]), // expected_vtbl_contents
+ &(vtt_ee01162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01162),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01162),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 ee11162 : virtual dd1162 {
+ int e;
+ ~ee11162(); // tgen
+ ee11162(); // tgen
+};
+//SIG(1 ee11162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} Fi}
+
+
+ee11162 ::~ee11162(){ note_dtor("ee11162", this);} // tgen
+ee11162 ::ee11162(){ note_ctor("ee11162", this);} // tgen
+
+static void Test_ee11162()
+{
+ extern Class_Descriptor cd_ee11162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11162, buf);
+ ee11162 *dp, &lv = *(dp=new (buf) ee11162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee11162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee11162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(32,16), "ee11162");
+ check_base_class_offset(lv, (dd1162*), ABISELECT(16,8), "ee11162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11162.e");
+ test_class_info(&lv, &cd_ee11162);
+ dp->~ee11162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11162(Test_ee11162, "ee11162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11162C1Ev();
+extern void _ZN7ee11162D1Ev();
+Name_Map name_map_ee11162[] = {
+ NSPAIR(_ZN7ee11162C1Ev),
+ NSPAIR(_ZN7ee11162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee11162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, ABISELECT(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 _ZTI7ee11162[];
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee11162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11162[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11162[0]),
+ 0,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee11162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee11162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee11162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee11162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee11162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee11162[] = {
+ {&(_ZTV7ee11162[5]), 5,18},
+ {&(_ZTV7ee11162[9]), 9,18},
+ {&(_ZTV7ee11162[12]), 12,18},
+ {&(_ZTV7ee11162[16]), 16,18},
+ {&(_tg__ZTV6dd1162__7ee11162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee11162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee11162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee11162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee11162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11162[];
+extern VTBL_ENTRY _ZTV7ee11162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11162[];
+Class_Descriptor cd_ee11162 = { "ee11162", // class name
+ bases_ee11162, 4,
+ &(vtc_ee11162[0]), // expected_vtbl_contents
+ &(vtt_ee11162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11162),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11162),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 ee21162 : dd1162 {
+ int e;
+ virtual void foo(); // _ZN7ee211623fooEv
+ ~ee21162(); // tgen
+ ee21162(); // tgen
+};
+//SIG(1 ee21162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21162 ::foo(){vfunc_called(this, "_ZN7ee211623fooEv");}
+ee21162 ::~ee21162(){ note_dtor("ee21162", this);} // tgen
+ee21162 ::ee21162(){ note_ctor("ee21162", this);} // tgen
+
+static void Test_ee21162()
+{
+ extern Class_Descriptor cd_ee21162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21162, buf);
+ ee21162 *dp, &lv = *(dp=new (buf) ee21162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee21162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee21162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(16,12), "ee21162");
+ check_base_class_offset(lv, (dd1162*), 0, "ee21162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21162.e");
+ test_class_info(&lv, &cd_ee21162);
+ dp->~ee21162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21162(Test_ee21162, "ee21162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21162C1Ev();
+extern void _ZN7ee21162D1Ev();
+Name_Map name_map_ee21162[] = {
+ NSPAIR(_ZN7ee21162C1Ev),
+ NSPAIR(_ZN7ee21162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee21162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21162[];
+extern void _ZN7ee211623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211623fooEv,_ZTv0_n12_N7ee211623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211623fooEv,_ZThn20_N7ee211623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee21162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21162[0]),
+ (VTBL_ENTRY)&_ZN7ee211623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21162[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211623fooEv,_ZTv0_n12_N7ee211623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee21162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee21162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee21162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee21162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee21162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee21162[] = {
+ {&(_ZTV7ee21162[4]), 4,14},
+ {&(_tg__ZTV6dd1162__7ee21162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee21162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee21162[4]), 4,6},
+ {&(_ZTV7ee21162[8]), 8,14},
+ {&(_ZTV7ee21162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee21162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee21162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21162[];
+extern VTBL_ENTRY _ZTV7ee21162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21162[];
+static VTBL_ENTRY alt_thunk_names982[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211623fooEv,_ZTv0_n12_N7ee211623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211623fooEv,_ZThn20_N7ee211623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21162 = { "ee21162", // class name
+ bases_ee21162, 4,
+ &(vtc_ee21162[0]), // expected_vtbl_contents
+ &(vtt_ee21162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names982,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31162 : virtual dd1162 {
+ int e;
+ virtual void foo(); // _ZN7ee311623fooEv
+ ~ee31162(); // tgen
+ ee31162(); // tgen
+};
+//SIG(1 ee31162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31162 ::foo(){vfunc_called(this, "_ZN7ee311623fooEv");}
+ee31162 ::~ee31162(){ note_dtor("ee31162", this);} // tgen
+ee31162 ::ee31162(){ note_ctor("ee31162", this);} // tgen
+
+static void Test_ee31162()
+{
+ extern Class_Descriptor cd_ee31162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31162, buf);
+ ee31162 *dp, &lv = *(dp=new (buf) ee31162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee31162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee31162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(32,16), "ee31162");
+ check_base_class_offset(lv, (dd1162*), ABISELECT(16,8), "ee31162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31162.e");
+ test_class_info(&lv, &cd_ee31162);
+ dp->~ee31162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31162(Test_ee31162, "ee31162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31162C1Ev();
+extern void _ZN7ee31162D1Ev();
+Name_Map name_map_ee31162[] = {
+ NSPAIR(_ZN7ee31162C1Ev),
+ NSPAIR(_ZN7ee31162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee31162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 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 _ZTI7ee31162[];
+extern void _ZN7ee311623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311623fooEv,_ZTv0_n12_N7ee311623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311623fooEv,_ZThn24_N7ee311623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee31162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31162[0]),
+ (VTBL_ENTRY)&_ZN7ee311623fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31162[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311623fooEv,_ZTv0_n12_N7ee311623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee31162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee31162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee31162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee31162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee31162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee31162[] = {
+ {&(_ZTV7ee31162[5]), 5,19},
+ {&(_ZTV7ee31162[10]), 10,19},
+ {&(_ZTV7ee31162[13]), 13,19},
+ {&(_ZTV7ee31162[17]), 17,19},
+ {&(_tg__ZTV6dd1162__7ee31162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee31162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee31162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee31162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee31162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31162[];
+extern VTBL_ENTRY _ZTV7ee31162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31162[];
+static VTBL_ENTRY alt_thunk_names983[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311623fooEv,_ZTv0_n12_N7ee311623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311623fooEv,_ZThn24_N7ee311623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31162 = { "ee31162", // class name
+ bases_ee31162, 4,
+ &(vtc_ee31162[0]), // expected_vtbl_contents
+ &(vtt_ee31162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31162),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names983,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41162 : dd1162 {
+ int e;
+ virtual void bar(); // _ZN7ee411623barEv
+ ~ee41162(); // tgen
+ ee41162(); // tgen
+};
+//SIG(1 ee41162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41162 ::bar(){vfunc_called(this, "_ZN7ee411623barEv");}
+ee41162 ::~ee41162(){ note_dtor("ee41162", this);} // tgen
+ee41162 ::ee41162(){ note_ctor("ee41162", this);} // tgen
+
+static void Test_ee41162()
+{
+ extern Class_Descriptor cd_ee41162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41162, buf);
+ ee41162 *dp, &lv = *(dp=new (buf) ee41162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee41162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee41162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(16,12), "ee41162");
+ check_base_class_offset(lv, (dd1162*), 0, "ee41162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41162.e");
+ test_class_info(&lv, &cd_ee41162);
+ dp->~ee41162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41162(Test_ee41162, "ee41162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41162C1Ev();
+extern void _ZN7ee41162D1Ev();
+Name_Map name_map_ee41162[] = {
+ NSPAIR(_ZN7ee41162C1Ev),
+ NSPAIR(_ZN7ee41162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee41162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41162[];
+extern void _ZN7ee411623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411623barEv,_ZTv0_n16_N7ee411623barEv)();
+extern void ABISELECT(_ZThn32_N7ee411623barEv,_ZThn20_N7ee411623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41162[0]),
+ (VTBL_ENTRY)&_ZN7ee411623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41162[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411623barEv,_ZTv0_n16_N7ee411623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee41162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee41162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee41162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee41162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee41162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee41162[] = {
+ {&(_ZTV7ee41162[4]), 4,14},
+ {&(_tg__ZTV6dd1162__7ee41162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee41162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee41162[4]), 4,6},
+ {&(_ZTV7ee41162[8]), 8,14},
+ {&(_ZTV7ee41162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee41162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee41162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41162[];
+extern VTBL_ENTRY _ZTV7ee41162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41162[];
+static VTBL_ENTRY alt_thunk_names984[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411623barEv,_ZTv0_n16_N7ee411623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411623barEv,_ZThn20_N7ee411623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41162 = { "ee41162", // class name
+ bases_ee41162, 4,
+ &(vtc_ee41162[0]), // expected_vtbl_contents
+ &(vtt_ee41162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names984,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51162 : virtual dd1162 {
+ int e;
+ virtual void bar(); // _ZN7ee511623barEv
+ ~ee51162(); // tgen
+ ee51162(); // tgen
+};
+//SIG(1 ee51162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51162 ::bar(){vfunc_called(this, "_ZN7ee511623barEv");}
+ee51162 ::~ee51162(){ note_dtor("ee51162", this);} // tgen
+ee51162 ::ee51162(){ note_ctor("ee51162", this);} // tgen
+
+static void Test_ee51162()
+{
+ extern Class_Descriptor cd_ee51162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51162, buf);
+ ee51162 *dp, &lv = *(dp=new (buf) ee51162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee51162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee51162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(32,16), "ee51162");
+ check_base_class_offset(lv, (dd1162*), ABISELECT(16,8), "ee51162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51162.e");
+ test_class_info(&lv, &cd_ee51162);
+ dp->~ee51162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51162(Test_ee51162, "ee51162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51162C1Ev();
+extern void _ZN7ee51162D1Ev();
+Name_Map name_map_ee51162[] = {
+ NSPAIR(_ZN7ee51162C1Ev),
+ NSPAIR(_ZN7ee51162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee51162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 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 _ZTI7ee51162[];
+extern void _ZN7ee511623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511623barEv,_ZTv0_n16_N7ee511623barEv)();
+extern void ABISELECT(_ZThn48_N7ee511623barEv,_ZThn24_N7ee511623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51162[0]),
+ (VTBL_ENTRY)&_ZN7ee511623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51162[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511623barEv,_ZTv0_n16_N7ee511623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee51162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee51162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee51162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee51162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee51162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee51162[] = {
+ {&(_ZTV7ee51162[5]), 5,19},
+ {&(_ZTV7ee51162[10]), 10,19},
+ {&(_ZTV7ee51162[13]), 13,19},
+ {&(_ZTV7ee51162[17]), 17,19},
+ {&(_tg__ZTV6dd1162__7ee51162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee51162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee51162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee51162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee51162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51162[];
+extern VTBL_ENTRY _ZTV7ee51162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51162[];
+static VTBL_ENTRY alt_thunk_names985[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511623barEv,_ZTv0_n16_N7ee511623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511623barEv,_ZThn24_N7ee511623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51162 = { "ee51162", // class name
+ bases_ee51162, 4,
+ &(vtc_ee51162[0]), // expected_vtbl_contents
+ &(vtt_ee51162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51162),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names985,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61162 : dd1162 {
+ int e;
+ virtual void foo(); // _ZN7ee611623fooEv
+ virtual void bar(); // _ZN7ee611623barEv
+ ~ee61162(); // tgen
+ ee61162(); // tgen
+};
+//SIG(1 ee61162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61162 ::foo(){vfunc_called(this, "_ZN7ee611623fooEv");}
+void ee61162 ::bar(){vfunc_called(this, "_ZN7ee611623barEv");}
+ee61162 ::~ee61162(){ note_dtor("ee61162", this);} // tgen
+ee61162 ::ee61162(){ note_ctor("ee61162", this);} // tgen
+
+static void Test_ee61162()
+{
+ extern Class_Descriptor cd_ee61162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61162, buf);
+ ee61162 *dp, &lv = *(dp=new (buf) ee61162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee61162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee61162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(16,12), "ee61162");
+ check_base_class_offset(lv, (dd1162*), 0, "ee61162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61162.e");
+ test_class_info(&lv, &cd_ee61162);
+ dp->~ee61162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61162(Test_ee61162, "ee61162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61162C1Ev();
+extern void _ZN7ee61162D1Ev();
+Name_Map name_map_ee61162[] = {
+ NSPAIR(_ZN7ee61162C1Ev),
+ NSPAIR(_ZN7ee61162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee61162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61162[];
+extern void _ZN7ee611623fooEv();
+extern void _ZN7ee611623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611623fooEv,_ZTv0_n12_N7ee611623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611623fooEv,_ZThn20_N7ee611623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611623barEv,_ZTv0_n16_N7ee611623barEv)();
+extern void ABISELECT(_ZThn32_N7ee611623barEv,_ZThn20_N7ee611623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61162[0]),
+ (VTBL_ENTRY)&_ZN7ee611623fooEv,
+ (VTBL_ENTRY)&_ZN7ee611623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611623fooEv,_ZTv0_n12_N7ee611623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611623barEv,_ZTv0_n16_N7ee611623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee61162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee61162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee61162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee61162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee61162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee61162[] = {
+ {&(_ZTV7ee61162[4]), 4,15},
+ {&(_tg__ZTV6dd1162__7ee61162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee61162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee61162[4]), 4,6},
+ {&(_ZTV7ee61162[9]), 9,15},
+ {&(_ZTV7ee61162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee61162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee61162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61162[];
+extern VTBL_ENTRY _ZTV7ee61162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61162[];
+static VTBL_ENTRY alt_thunk_names986[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611623barEv,_ZTv0_n16_N7ee611623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611623barEv,_ZThn20_N7ee611623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611623fooEv,_ZTv0_n12_N7ee611623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611623fooEv,_ZThn20_N7ee611623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61162 = { "ee61162", // class name
+ bases_ee61162, 4,
+ &(vtc_ee61162[0]), // expected_vtbl_contents
+ &(vtt_ee61162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names986,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71162 : virtual dd1162 {
+ int e;
+ virtual void foo(); // _ZN7ee711623fooEv
+ virtual void bar(); // _ZN7ee711623barEv
+ ~ee71162(); // tgen
+ ee71162(); // tgen
+};
+//SIG(1 ee71162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71162 ::foo(){vfunc_called(this, "_ZN7ee711623fooEv");}
+void ee71162 ::bar(){vfunc_called(this, "_ZN7ee711623barEv");}
+ee71162 ::~ee71162(){ note_dtor("ee71162", this);} // tgen
+ee71162 ::ee71162(){ note_ctor("ee71162", this);} // tgen
+
+static void Test_ee71162()
+{
+ extern Class_Descriptor cd_ee71162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71162, buf);
+ ee71162 *dp, &lv = *(dp=new (buf) ee71162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee71162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee71162");
+ check_base_class_offset(lv, (cc162*)(dd1162*), ABISELECT(32,16), "ee71162");
+ check_base_class_offset(lv, (dd1162*), ABISELECT(16,8), "ee71162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71162.e");
+ test_class_info(&lv, &cd_ee71162);
+ dp->~ee71162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71162(Test_ee71162, "ee71162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71162C1Ev();
+extern void _ZN7ee71162D1Ev();
+Name_Map name_map_ee71162[] = {
+ NSPAIR(_ZN7ee71162C1Ev),
+ NSPAIR(_ZN7ee71162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd1162;
+extern VTBL_ENTRY _ZTI6dd1162[];
+extern VTBL_ENTRY _ZTV6dd1162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1162[];
+static Base_Class bases_ee71162[] = {
+ // 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_bb62, 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_cc162, 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_dd1162, 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 _ZTI7ee71162[];
+extern void _ZN7ee711623fooEv();
+extern void _ZN7ee711623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711623fooEv,_ZTv0_n12_N7ee711623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711623fooEv,_ZThn24_N7ee711623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711623barEv,_ZTv0_n16_N7ee711623barEv)();
+extern void ABISELECT(_ZThn48_N7ee711623barEv,_ZThn24_N7ee711623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71162[0]),
+ (VTBL_ENTRY)&_ZN7ee711623fooEv,
+ (VTBL_ENTRY)&_ZN7ee711623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71162[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711623fooEv,_ZTv0_n12_N7ee711623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711623barEv,_ZTv0_n16_N7ee711623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71162[];
+static VTBL_ENTRY _tg__ZTV6dd1162__7ee71162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd1162__7ee71162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1162__7ee71162[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee71162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee71162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee71162[] = {
+ {&(_ZTV7ee71162[5]), 5,20},
+ {&(_ZTV7ee71162[11]), 11,20},
+ {&(_ZTV7ee71162[14]), 14,20},
+ {&(_ZTV7ee71162[18]), 18,20},
+ {&(_tg__ZTV6dd1162__7ee71162[4]), 4,4},
+ {&(_tg__ZTV5cc162__6dd1162__7ee71162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd1162__7ee71162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee71162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee71162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71162[];
+extern VTBL_ENTRY _ZTV7ee71162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71162[];
+static VTBL_ENTRY alt_thunk_names987[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711623barEv,_ZTv0_n16_N7ee711623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711623barEv,_ZThn24_N7ee711623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711623fooEv,_ZTv0_n12_N7ee711623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711623fooEv,_ZThn24_N7ee711623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71162 = { "ee71162", // class name
+ bases_ee71162, 4,
+ &(vtc_ee71162[0]), // expected_vtbl_contents
+ &(vtt_ee71162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71162),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names987,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2162 : cc162 {
+ int d;
+ virtual void foo(); // _ZN6dd21623fooEv
+ ~dd2162(); // tgen
+ dd2162(); // tgen
+};
+//SIG(-1 dd2162) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd2162 ::foo(){vfunc_called(this, "_ZN6dd21623fooEv");}
+dd2162 ::~dd2162(){ note_dtor("dd2162", this);} // tgen
+dd2162 ::dd2162(){ note_ctor("dd2162", this);} // tgen
+
+static void Test_dd2162()
+{
+ extern Class_Descriptor cd_dd2162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2162, buf);
+ dd2162 *dp, &lv = *(dp=new (buf) dd2162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd2162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(16,12), "dd2162");
+ check_base_class_offset(lv, (cc162*), 0, "dd2162");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2162.d");
+ test_class_info(&lv, &cd_dd2162);
+ dp->~dd2162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2162(Test_dd2162, "dd2162", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2162C1Ev();
+extern void _ZN6dd2162D1Ev();
+Name_Map name_map_dd2162[] = {
+ NSPAIR(_ZN6dd2162C1Ev),
+ NSPAIR(_ZN6dd2162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd2162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern void _ZN6dd21623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd2162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd2162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd2162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd2162[] = {
+ {&(_ZTV6dd2162[3]), 3,10},
+ {&(_tg__ZTV5cc162__6dd2162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd2162[4]), 4,6},
+ {&(_ZTV6dd2162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static VTBL_ENTRY alt_thunk_names988[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2162 = { "dd2162", // class name
+ bases_dd2162, 3,
+ &(vtc_dd2162[0]), // expected_vtbl_contents
+ &(vtt_dd2162[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2162),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names988,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02162 : dd2162 {
+ int e;
+ ~ee02162(); // tgen
+ ee02162(); // tgen
+};
+//SIG(1 ee02162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02162 ::~ee02162(){ note_dtor("ee02162", this);} // tgen
+ee02162 ::ee02162(){ note_ctor("ee02162", this);} // tgen
+
+static void Test_ee02162()
+{
+ extern Class_Descriptor cd_ee02162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02162, buf);
+ ee02162 *dp, &lv = *(dp=new (buf) ee02162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee02162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(24,16), "ee02162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), 0, "ee02162");
+ check_base_class_offset(lv, (dd2162*), 0, "ee02162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02162.e");
+ test_class_info(&lv, &cd_ee02162);
+ dp->~ee02162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02162(Test_ee02162, "ee02162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02162C1Ev();
+extern void _ZN7ee02162D1Ev();
+Name_Map name_map_ee02162[] = {
+ NSPAIR(_ZN7ee02162C1Ev),
+ NSPAIR(_ZN7ee02162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee02162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02162[];
+extern void _ZN6dd21623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee02162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee02162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee02162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee02162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee02162[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee02162[] = {
+ {&(_ZTV7ee02162[3]), 3,10},
+ {&(_tg__ZTV6dd2162__7ee02162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee02162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee02162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee02162[4]), 4,6},
+ {&(_ZTV7ee02162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02162[];
+extern VTBL_ENTRY _ZTV7ee02162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02162[];
+static VTBL_ENTRY alt_thunk_names989[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02162 = { "ee02162", // class name
+ bases_ee02162, 4,
+ &(vtc_ee02162[0]), // expected_vtbl_contents
+ &(vtt_ee02162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02162),6, //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 ee12162 : virtual dd2162 {
+ int e;
+ ~ee12162(); // tgen
+ ee12162(); // tgen
+};
+//SIG(1 ee12162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12162 ::~ee12162(){ note_dtor("ee12162", this);} // tgen
+ee12162 ::ee12162(){ note_ctor("ee12162", this);} // tgen
+
+static void Test_ee12162()
+{
+ extern Class_Descriptor cd_ee12162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12162, buf);
+ ee12162 *dp, &lv = *(dp=new (buf) ee12162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee12162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(32,20), "ee12162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), ABISELECT(16,8), "ee12162");
+ check_base_class_offset(lv, (dd2162*), ABISELECT(16,8), "ee12162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12162.e");
+ test_class_info(&lv, &cd_ee12162);
+ dp->~ee12162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12162(Test_ee12162, "ee12162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12162C1Ev();
+extern void _ZN7ee12162D1Ev();
+Name_Map name_map_ee12162[] = {
+ NSPAIR(_ZN7ee12162C1Ev),
+ NSPAIR(_ZN7ee12162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee12162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, ABISELECT(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 _ZTI7ee12162[];
+extern void _ZN6dd21623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee12162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12162[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee12162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee12162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee12162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee12162[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee12162[] = {
+ {&(_ZTV7ee12162[4]), 4,15},
+ {&(_ZTV7ee12162[8]), 8,15},
+ {&(_ZTV7ee12162[13]), 13,15},
+ {&(_tg__ZTV6dd2162__7ee12162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee12162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee12162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee12162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12162[];
+extern VTBL_ENTRY _ZTV7ee12162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12162[];
+static VTBL_ENTRY alt_thunk_names990[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12162 = { "ee12162", // class name
+ bases_ee12162, 4,
+ &(vtc_ee12162[0]), // expected_vtbl_contents
+ &(vtt_ee12162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12162),7, //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 ee22162 : dd2162 {
+ int e;
+ virtual void foo(); // _ZN7ee221623fooEv
+ ~ee22162(); // tgen
+ ee22162(); // tgen
+};
+//SIG(1 ee22162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22162 ::foo(){vfunc_called(this, "_ZN7ee221623fooEv");}
+ee22162 ::~ee22162(){ note_dtor("ee22162", this);} // tgen
+ee22162 ::ee22162(){ note_ctor("ee22162", this);} // tgen
+
+static void Test_ee22162()
+{
+ extern Class_Descriptor cd_ee22162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22162, buf);
+ ee22162 *dp, &lv = *(dp=new (buf) ee22162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee22162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(24,16), "ee22162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), 0, "ee22162");
+ check_base_class_offset(lv, (dd2162*), 0, "ee22162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22162.e");
+ test_class_info(&lv, &cd_ee22162);
+ dp->~ee22162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22162(Test_ee22162, "ee22162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22162C1Ev();
+extern void _ZN7ee22162D1Ev();
+Name_Map name_map_ee22162[] = {
+ NSPAIR(_ZN7ee22162C1Ev),
+ NSPAIR(_ZN7ee22162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee22162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22162[];
+extern void _ZN7ee221623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221623fooEv,_ZTv0_n12_N7ee221623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221623fooEv,_ZThn16_N7ee221623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee22162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22162[0]),
+ (VTBL_ENTRY)&_ZN7ee221623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221623fooEv,_ZTv0_n12_N7ee221623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee22162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee22162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee22162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee22162[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee22162[] = {
+ {&(_ZTV7ee22162[3]), 3,10},
+ {&(_tg__ZTV6dd2162__7ee22162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee22162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee22162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee22162[4]), 4,6},
+ {&(_ZTV7ee22162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22162[];
+extern VTBL_ENTRY _ZTV7ee22162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22162[];
+static VTBL_ENTRY alt_thunk_names991[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221623fooEv,_ZTv0_n12_N7ee221623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221623fooEv,_ZThn16_N7ee221623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22162 = { "ee22162", // class name
+ bases_ee22162, 4,
+ &(vtc_ee22162[0]), // expected_vtbl_contents
+ &(vtt_ee22162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22162),6, //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 ee32162 : virtual dd2162 {
+ int e;
+ virtual void foo(); // _ZN7ee321623fooEv
+ ~ee32162(); // tgen
+ ee32162(); // tgen
+};
+//SIG(1 ee32162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32162 ::foo(){vfunc_called(this, "_ZN7ee321623fooEv");}
+ee32162 ::~ee32162(){ note_dtor("ee32162", this);} // tgen
+ee32162 ::ee32162(){ note_ctor("ee32162", this);} // tgen
+
+static void Test_ee32162()
+{
+ extern Class_Descriptor cd_ee32162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32162, buf);
+ ee32162 *dp, &lv = *(dp=new (buf) ee32162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee32162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(32,20), "ee32162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), ABISELECT(16,8), "ee32162");
+ check_base_class_offset(lv, (dd2162*), ABISELECT(16,8), "ee32162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32162.e");
+ test_class_info(&lv, &cd_ee32162);
+ dp->~ee32162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32162(Test_ee32162, "ee32162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32162C1Ev();
+extern void _ZN7ee32162D1Ev();
+Name_Map name_map_ee32162[] = {
+ NSPAIR(_ZN7ee32162C1Ev),
+ NSPAIR(_ZN7ee32162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee32162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, ABISELECT(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 _ZTI7ee32162[];
+extern void _ZN7ee321623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321623fooEv,_ZTv0_n16_N7ee321623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321623fooEv,_ZThn8_N7ee321623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321623fooEv,_ZTv0_n12_N7ee321623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321623fooEv,_ZThn20_N7ee321623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee32162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32162[0]),
+ (VTBL_ENTRY)&_ZN7ee321623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321623fooEv,_ZTv0_n16_N7ee321623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321623fooEv,_ZTv0_n12_N7ee321623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee32162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee32162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee32162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee32162[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee32162[] = {
+ {&(_ZTV7ee32162[4]), 4,16},
+ {&(_ZTV7ee32162[9]), 9,16},
+ {&(_ZTV7ee32162[14]), 14,16},
+ {&(_tg__ZTV6dd2162__7ee32162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee32162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee32162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee32162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32162[];
+extern VTBL_ENTRY _ZTV7ee32162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32162[];
+static VTBL_ENTRY alt_thunk_names992[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321623fooEv,_ZTv0_n12_N7ee321623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321623fooEv,_ZThn20_N7ee321623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321623fooEv,_ZTv0_n16_N7ee321623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321623fooEv,_ZThn8_N7ee321623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32162 = { "ee32162", // class name
+ bases_ee32162, 4,
+ &(vtc_ee32162[0]), // expected_vtbl_contents
+ &(vtt_ee32162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32162),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32162),7, //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 ee42162 : dd2162 {
+ int e;
+ virtual void bar(); // _ZN7ee421623barEv
+ ~ee42162(); // tgen
+ ee42162(); // tgen
+};
+//SIG(1 ee42162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42162 ::bar(){vfunc_called(this, "_ZN7ee421623barEv");}
+ee42162 ::~ee42162(){ note_dtor("ee42162", this);} // tgen
+ee42162 ::ee42162(){ note_ctor("ee42162", this);} // tgen
+
+static void Test_ee42162()
+{
+ extern Class_Descriptor cd_ee42162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42162, buf);
+ ee42162 *dp, &lv = *(dp=new (buf) ee42162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee42162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(24,16), "ee42162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), 0, "ee42162");
+ check_base_class_offset(lv, (dd2162*), 0, "ee42162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42162.e");
+ test_class_info(&lv, &cd_ee42162);
+ dp->~ee42162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42162(Test_ee42162, "ee42162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42162C1Ev();
+extern void _ZN7ee42162D1Ev();
+Name_Map name_map_ee42162[] = {
+ NSPAIR(_ZN7ee42162C1Ev),
+ NSPAIR(_ZN7ee42162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee42162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42162[];
+extern void _ZN6dd21623fooEv();
+extern void _ZN7ee421623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee421623barEv,_ZTv0_n16_N7ee421623barEv)();
+extern void ABISELECT(_ZThn24_N7ee421623barEv,_ZThn16_N7ee421623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+ (VTBL_ENTRY)&_ZN7ee421623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421623barEv,_ZTv0_n16_N7ee421623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee42162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee42162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee42162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee42162[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee42162[] = {
+ {&(_ZTV7ee42162[3]), 3,11},
+ {&(_tg__ZTV6dd2162__7ee42162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee42162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee42162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee42162[4]), 4,6},
+ {&(_ZTV7ee42162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42162[];
+extern VTBL_ENTRY _ZTV7ee42162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42162[];
+static VTBL_ENTRY alt_thunk_names993[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421623barEv,_ZTv0_n16_N7ee421623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421623barEv,_ZThn16_N7ee421623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42162 = { "ee42162", // class name
+ bases_ee42162, 4,
+ &(vtc_ee42162[0]), // expected_vtbl_contents
+ &(vtt_ee42162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42162),6, //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 ee52162 : virtual dd2162 {
+ int e;
+ virtual void bar(); // _ZN7ee521623barEv
+ ~ee52162(); // tgen
+ ee52162(); // tgen
+};
+//SIG(1 ee52162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52162 ::bar(){vfunc_called(this, "_ZN7ee521623barEv");}
+ee52162 ::~ee52162(){ note_dtor("ee52162", this);} // tgen
+ee52162 ::ee52162(){ note_ctor("ee52162", this);} // tgen
+
+static void Test_ee52162()
+{
+ extern Class_Descriptor cd_ee52162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52162, buf);
+ ee52162 *dp, &lv = *(dp=new (buf) ee52162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee52162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(32,20), "ee52162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), ABISELECT(16,8), "ee52162");
+ check_base_class_offset(lv, (dd2162*), ABISELECT(16,8), "ee52162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52162.e");
+ test_class_info(&lv, &cd_ee52162);
+ dp->~ee52162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52162(Test_ee52162, "ee52162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52162C1Ev();
+extern void _ZN7ee52162D1Ev();
+Name_Map name_map_ee52162[] = {
+ NSPAIR(_ZN7ee52162C1Ev),
+ NSPAIR(_ZN7ee52162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee52162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, ABISELECT(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 _ZTI7ee52162[];
+extern void _ZN7ee521623barEv();
+extern void _ZN6dd21623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee521623barEv,_ZTv0_n16_N7ee521623barEv)();
+extern void ABISELECT(_ZThn32_N7ee521623barEv,_ZThn20_N7ee521623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52162[0]),
+ (VTBL_ENTRY)&_ZN7ee521623barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521623barEv,_ZTv0_n16_N7ee521623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee52162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee52162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee52162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee52162[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee52162[] = {
+ {&(_ZTV7ee52162[4]), 4,16},
+ {&(_ZTV7ee52162[9]), 9,16},
+ {&(_ZTV7ee52162[14]), 14,16},
+ {&(_tg__ZTV6dd2162__7ee52162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee52162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee52162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee52162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52162[];
+extern VTBL_ENTRY _ZTV7ee52162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52162[];
+static VTBL_ENTRY alt_thunk_names994[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521623barEv,_ZTv0_n16_N7ee521623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521623barEv,_ZThn20_N7ee521623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52162 = { "ee52162", // class name
+ bases_ee52162, 4,
+ &(vtc_ee52162[0]), // expected_vtbl_contents
+ &(vtt_ee52162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52162),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52162),7, //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 ee62162 : dd2162 {
+ int e;
+ virtual void foo(); // _ZN7ee621623fooEv
+ virtual void bar(); // _ZN7ee621623barEv
+ ~ee62162(); // tgen
+ ee62162(); // tgen
+};
+//SIG(1 ee62162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62162 ::foo(){vfunc_called(this, "_ZN7ee621623fooEv");}
+void ee62162 ::bar(){vfunc_called(this, "_ZN7ee621623barEv");}
+ee62162 ::~ee62162(){ note_dtor("ee62162", this);} // tgen
+ee62162 ::ee62162(){ note_ctor("ee62162", this);} // tgen
+
+static void Test_ee62162()
+{
+ extern Class_Descriptor cd_ee62162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62162, buf);
+ ee62162 *dp, &lv = *(dp=new (buf) ee62162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee62162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(24,16), "ee62162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), 0, "ee62162");
+ check_base_class_offset(lv, (dd2162*), 0, "ee62162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62162.e");
+ test_class_info(&lv, &cd_ee62162);
+ dp->~ee62162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62162(Test_ee62162, "ee62162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62162C1Ev();
+extern void _ZN7ee62162D1Ev();
+Name_Map name_map_ee62162[] = {
+ NSPAIR(_ZN7ee62162C1Ev),
+ NSPAIR(_ZN7ee62162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee62162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62162[];
+extern void _ZN7ee621623fooEv();
+extern void _ZN7ee621623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621623fooEv,_ZTv0_n12_N7ee621623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621623fooEv,_ZThn16_N7ee621623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621623barEv,_ZTv0_n16_N7ee621623barEv)();
+extern void ABISELECT(_ZThn24_N7ee621623barEv,_ZThn16_N7ee621623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62162[0]),
+ (VTBL_ENTRY)&_ZN7ee621623fooEv,
+ (VTBL_ENTRY)&_ZN7ee621623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621623fooEv,_ZTv0_n12_N7ee621623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621623barEv,_ZTv0_n16_N7ee621623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee62162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee62162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee62162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee62162[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee62162[] = {
+ {&(_ZTV7ee62162[3]), 3,11},
+ {&(_tg__ZTV6dd2162__7ee62162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee62162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee62162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee62162[4]), 4,6},
+ {&(_ZTV7ee62162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62162[];
+extern VTBL_ENTRY _ZTV7ee62162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62162[];
+static VTBL_ENTRY alt_thunk_names995[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21623fooEv,_ZThn16_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621623barEv,_ZTv0_n16_N7ee621623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621623barEv,_ZThn16_N7ee621623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621623fooEv,_ZTv0_n12_N7ee621623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621623fooEv,_ZThn16_N7ee621623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62162 = { "ee62162", // class name
+ bases_ee62162, 4,
+ &(vtc_ee62162[0]), // expected_vtbl_contents
+ &(vtt_ee62162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62162),6, //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 ee72162 : virtual dd2162 {
+ int e;
+ virtual void foo(); // _ZN7ee721623fooEv
+ virtual void bar(); // _ZN7ee721623barEv
+ ~ee72162(); // tgen
+ ee72162(); // tgen
+};
+//SIG(1 ee72162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72162 ::foo(){vfunc_called(this, "_ZN7ee721623fooEv");}
+void ee72162 ::bar(){vfunc_called(this, "_ZN7ee721623barEv");}
+ee72162 ::~ee72162(){ note_dtor("ee72162", this);} // tgen
+ee72162 ::ee72162(){ note_ctor("ee72162", this);} // tgen
+
+static void Test_ee72162()
+{
+ extern Class_Descriptor cd_ee72162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72162, buf);
+ ee72162 *dp, &lv = *(dp=new (buf) ee72162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee72162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd2162*), ABISELECT(32,20), "ee72162");
+ check_base_class_offset(lv, (cc162*)(dd2162*), ABISELECT(16,8), "ee72162");
+ check_base_class_offset(lv, (dd2162*), ABISELECT(16,8), "ee72162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72162.e");
+ test_class_info(&lv, &cd_ee72162);
+ dp->~ee72162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72162(Test_ee72162, "ee72162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72162C1Ev();
+extern void _ZN7ee72162D1Ev();
+Name_Map name_map_ee72162[] = {
+ NSPAIR(_ZN7ee72162C1Ev),
+ NSPAIR(_ZN7ee72162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd2162;
+extern VTBL_ENTRY _ZTI6dd2162[];
+extern VTBL_ENTRY _ZTV6dd2162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2162[];
+static Base_Class bases_ee72162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2162, 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 _ZTI7ee72162[];
+extern void _ZN7ee721623fooEv();
+extern void _ZN7ee721623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721623fooEv,_ZTv0_n16_N7ee721623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721623fooEv,_ZThn8_N7ee721623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721623fooEv,_ZTv0_n12_N7ee721623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721623fooEv,_ZThn20_N7ee721623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721623barEv,_ZTv0_n16_N7ee721623barEv)();
+extern void ABISELECT(_ZThn32_N7ee721623barEv,_ZThn20_N7ee721623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72162[0]),
+ (VTBL_ENTRY)&_ZN7ee721623fooEv,
+ (VTBL_ENTRY)&_ZN7ee721623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721623fooEv,_ZTv0_n16_N7ee721623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721623fooEv,_ZTv0_n12_N7ee721623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721623barEv,_ZTv0_n16_N7ee721623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72162[];
+extern void _ZN6dd21623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2162__7ee72162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&_ZN6dd21623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd2162__7ee72162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd2162__7ee72162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2162__7ee72162[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee72162[] = {
+ {&(_ZTV7ee72162[4]), 4,17},
+ {&(_ZTV7ee72162[10]), 10,17},
+ {&(_ZTV7ee72162[15]), 15,17},
+ {&(_tg__ZTV6dd2162__7ee72162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd2162__7ee72162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd2162__7ee72162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2162__7ee72162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72162[];
+extern VTBL_ENTRY _ZTV7ee72162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72162[];
+static VTBL_ENTRY alt_thunk_names996[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21623fooEv,_ZTv0_n12_N6dd21623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21623fooEv,_ZThn12_N6dd21623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721623barEv,_ZTv0_n16_N7ee721623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721623barEv,_ZThn20_N7ee721623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721623fooEv,_ZTv0_n12_N7ee721623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721623fooEv,_ZThn20_N7ee721623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721623fooEv,_ZTv0_n16_N7ee721623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721623fooEv,_ZThn8_N7ee721623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72162 = { "ee72162", // class name
+ bases_ee72162, 4,
+ &(vtc_ee72162[0]), // expected_vtbl_contents
+ &(vtt_ee72162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72162),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72162),7, //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 dd3162 : virtual cc162 {
+ int d;
+ virtual void foo(); // _ZN6dd31623fooEv
+ ~dd3162(); // tgen
+ dd3162(); // tgen
+};
+//SIG(-1 dd3162) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void dd3162 ::foo(){vfunc_called(this, "_ZN6dd31623fooEv");}
+dd3162 ::~dd3162(){ note_dtor("dd3162", this);} // tgen
+dd3162 ::dd3162(){ note_ctor("dd3162", this);} // tgen
+
+static void Test_dd3162()
+{
+ extern Class_Descriptor cd_dd3162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3162, buf);
+ dd3162 *dp, &lv = *(dp=new (buf) dd3162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd3162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,16), "dd3162");
+ check_base_class_offset(lv, (cc162*), ABISELECT(16,8), "dd3162");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3162.d");
+ test_class_info(&lv, &cd_dd3162);
+ dp->~dd3162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3162(Test_dd3162, "dd3162", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3162C1Ev();
+extern void _ZN6dd3162D1Ev();
+Name_Map name_map_dd3162[] = {
+ NSPAIR(_ZN6dd3162C1Ev),
+ NSPAIR(_ZN6dd3162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd3162[] = {
+ // 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_bb62, 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_cc162, 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 _ZTI6dd3162[];
+extern void _ZN6dd31623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd3162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd3162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd3162[] = {
+ {&(_ZTV6dd3162[4]), 4,14},
+ {&(_ZTV6dd3162[8]), 8,14},
+ {&(_ZTV6dd3162[12]), 12,14},
+ {&(_tg__ZTV5cc162__6dd3162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd3162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static VTBL_ENTRY alt_thunk_names997[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3162 = { "dd3162", // class name
+ bases_dd3162, 3,
+ &(vtc_dd3162[0]), // expected_vtbl_contents
+ &(vtt_dd3162[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3162),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names997,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03162 : dd3162 {
+ int e;
+ ~ee03162(); // tgen
+ ee03162(); // tgen
+};
+//SIG(1 ee03162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03162 ::~ee03162(){ note_dtor("ee03162", this);} // tgen
+ee03162 ::ee03162(){ note_ctor("ee03162", this);} // tgen
+
+static void Test_ee03162()
+{
+ extern Class_Descriptor cd_ee03162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03162, buf);
+ ee03162 *dp, &lv = *(dp=new (buf) ee03162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee03162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee03162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(16,12), "ee03162");
+ check_base_class_offset(lv, (dd3162*), 0, "ee03162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03162.e");
+ test_class_info(&lv, &cd_ee03162);
+ dp->~ee03162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03162(Test_ee03162, "ee03162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03162C1Ev();
+extern void _ZN7ee03162D1Ev();
+Name_Map name_map_ee03162[] = {
+ NSPAIR(_ZN7ee03162C1Ev),
+ NSPAIR(_ZN7ee03162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee03162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03162[];
+extern void _ZN6dd31623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee03162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03162[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee03162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee03162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee03162[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee03162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee03162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee03162[] = {
+ {&(_ZTV7ee03162[4]), 4,14},
+ {&(_tg__ZTV6dd3162__7ee03162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee03162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee03162[4]), 4,6},
+ {&(_ZTV7ee03162[8]), 8,14},
+ {&(_ZTV7ee03162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee03162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee03162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03162[];
+extern VTBL_ENTRY _ZTV7ee03162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03162[];
+static VTBL_ENTRY alt_thunk_names998[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03162 = { "ee03162", // class name
+ bases_ee03162, 4,
+ &(vtc_ee03162[0]), // expected_vtbl_contents
+ &(vtt_ee03162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names998,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13162 : virtual dd3162 {
+ int e;
+ ~ee13162(); // tgen
+ ee13162(); // tgen
+};
+//SIG(1 ee13162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13162 ::~ee13162(){ note_dtor("ee13162", this);} // tgen
+ee13162 ::ee13162(){ note_ctor("ee13162", this);} // tgen
+
+static void Test_ee13162()
+{
+ extern Class_Descriptor cd_ee13162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13162, buf);
+ ee13162 *dp, &lv = *(dp=new (buf) ee13162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee13162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee13162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(32,16), "ee13162");
+ check_base_class_offset(lv, (dd3162*), ABISELECT(16,8), "ee13162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13162.e");
+ test_class_info(&lv, &cd_ee13162);
+ dp->~ee13162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13162(Test_ee13162, "ee13162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13162C1Ev();
+extern void _ZN7ee13162D1Ev();
+Name_Map name_map_ee13162[] = {
+ NSPAIR(_ZN7ee13162C1Ev),
+ NSPAIR(_ZN7ee13162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee13162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, ABISELECT(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 _ZTI7ee13162[];
+extern void _ZN6dd31623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee13162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13162[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13162[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee13162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee13162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee13162[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee13162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee13162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee13162[] = {
+ {&(_ZTV7ee13162[5]), 5,20},
+ {&(_ZTV7ee13162[10]), 10,20},
+ {&(_ZTV7ee13162[14]), 14,20},
+ {&(_ZTV7ee13162[18]), 18,20},
+ {&(_tg__ZTV6dd3162__7ee13162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee13162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee13162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee13162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee13162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13162[];
+extern VTBL_ENTRY _ZTV7ee13162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13162[];
+static VTBL_ENTRY alt_thunk_names999[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13162 = { "ee13162", // class name
+ bases_ee13162, 4,
+ &(vtc_ee13162[0]), // expected_vtbl_contents
+ &(vtt_ee13162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13162),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13162),9, //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 ee23162 : dd3162 {
+ int e;
+ virtual void foo(); // _ZN7ee231623fooEv
+ ~ee23162(); // tgen
+ ee23162(); // tgen
+};
+//SIG(1 ee23162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23162 ::foo(){vfunc_called(this, "_ZN7ee231623fooEv");}
+ee23162 ::~ee23162(){ note_dtor("ee23162", this);} // tgen
+ee23162 ::ee23162(){ note_ctor("ee23162", this);} // tgen
+
+static void Test_ee23162()
+{
+ extern Class_Descriptor cd_ee23162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23162, buf);
+ ee23162 *dp, &lv = *(dp=new (buf) ee23162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee23162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee23162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(16,12), "ee23162");
+ check_base_class_offset(lv, (dd3162*), 0, "ee23162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23162.e");
+ test_class_info(&lv, &cd_ee23162);
+ dp->~ee23162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23162(Test_ee23162, "ee23162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23162C1Ev();
+extern void _ZN7ee23162D1Ev();
+Name_Map name_map_ee23162[] = {
+ NSPAIR(_ZN7ee23162C1Ev),
+ NSPAIR(_ZN7ee23162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee23162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23162[];
+extern void _ZN7ee231623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231623fooEv,_ZTv0_n12_N7ee231623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231623fooEv,_ZThn20_N7ee231623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee23162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23162[0]),
+ (VTBL_ENTRY)&_ZN7ee231623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23162[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231623fooEv,_ZTv0_n12_N7ee231623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee23162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee23162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee23162[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee23162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee23162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee23162[] = {
+ {&(_ZTV7ee23162[4]), 4,14},
+ {&(_tg__ZTV6dd3162__7ee23162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee23162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee23162[4]), 4,6},
+ {&(_ZTV7ee23162[8]), 8,14},
+ {&(_ZTV7ee23162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee23162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee23162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23162[];
+extern VTBL_ENTRY _ZTV7ee23162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23162[];
+static VTBL_ENTRY alt_thunk_names1000[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231623fooEv,_ZTv0_n12_N7ee231623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231623fooEv,_ZThn20_N7ee231623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23162 = { "ee23162", // class name
+ bases_ee23162, 4,
+ &(vtc_ee23162[0]), // expected_vtbl_contents
+ &(vtt_ee23162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1000,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33162 : virtual dd3162 {
+ int e;
+ virtual void foo(); // _ZN7ee331623fooEv
+ ~ee33162(); // tgen
+ ee33162(); // tgen
+};
+//SIG(1 ee33162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33162 ::foo(){vfunc_called(this, "_ZN7ee331623fooEv");}
+ee33162 ::~ee33162(){ note_dtor("ee33162", this);} // tgen
+ee33162 ::ee33162(){ note_ctor("ee33162", this);} // tgen
+
+static void Test_ee33162()
+{
+ extern Class_Descriptor cd_ee33162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33162, buf);
+ ee33162 *dp, &lv = *(dp=new (buf) ee33162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee33162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee33162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(32,16), "ee33162");
+ check_base_class_offset(lv, (dd3162*), ABISELECT(16,8), "ee33162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33162.e");
+ test_class_info(&lv, &cd_ee33162);
+ dp->~ee33162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33162(Test_ee33162, "ee33162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33162C1Ev();
+extern void _ZN7ee33162D1Ev();
+Name_Map name_map_ee33162[] = {
+ NSPAIR(_ZN7ee33162C1Ev),
+ NSPAIR(_ZN7ee33162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee33162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, ABISELECT(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 _ZTI7ee33162[];
+extern void _ZN7ee331623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331623fooEv,_ZTv0_n20_N7ee331623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331623fooEv,_ZThn8_N7ee331623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331623fooEv,_ZTv0_n12_N7ee331623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331623fooEv,_ZThn24_N7ee331623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee33162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33162[0]),
+ (VTBL_ENTRY)&_ZN7ee331623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331623fooEv,_ZTv0_n20_N7ee331623fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33162[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331623fooEv,_ZTv0_n12_N7ee331623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee33162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee33162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee33162[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee33162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee33162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee33162[] = {
+ {&(_ZTV7ee33162[5]), 5,21},
+ {&(_ZTV7ee33162[11]), 11,21},
+ {&(_ZTV7ee33162[15]), 15,21},
+ {&(_ZTV7ee33162[19]), 19,21},
+ {&(_tg__ZTV6dd3162__7ee33162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee33162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee33162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee33162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee33162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33162[];
+extern VTBL_ENTRY _ZTV7ee33162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33162[];
+static VTBL_ENTRY alt_thunk_names1001[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331623fooEv,_ZTv0_n12_N7ee331623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331623fooEv,_ZThn24_N7ee331623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331623fooEv,_ZTv0_n20_N7ee331623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331623fooEv,_ZThn8_N7ee331623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33162 = { "ee33162", // class name
+ bases_ee33162, 4,
+ &(vtc_ee33162[0]), // expected_vtbl_contents
+ &(vtt_ee33162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33162),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1001,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43162 : dd3162 {
+ int e;
+ virtual void bar(); // _ZN7ee431623barEv
+ ~ee43162(); // tgen
+ ee43162(); // tgen
+};
+//SIG(1 ee43162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43162 ::bar(){vfunc_called(this, "_ZN7ee431623barEv");}
+ee43162 ::~ee43162(){ note_dtor("ee43162", this);} // tgen
+ee43162 ::ee43162(){ note_ctor("ee43162", this);} // tgen
+
+static void Test_ee43162()
+{
+ extern Class_Descriptor cd_ee43162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43162, buf);
+ ee43162 *dp, &lv = *(dp=new (buf) ee43162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee43162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee43162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(16,12), "ee43162");
+ check_base_class_offset(lv, (dd3162*), 0, "ee43162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43162.e");
+ test_class_info(&lv, &cd_ee43162);
+ dp->~ee43162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43162(Test_ee43162, "ee43162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43162C1Ev();
+extern void _ZN7ee43162D1Ev();
+Name_Map name_map_ee43162[] = {
+ NSPAIR(_ZN7ee43162C1Ev),
+ NSPAIR(_ZN7ee43162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee43162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43162[];
+extern void _ZN6dd31623fooEv();
+extern void _ZN7ee431623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee431623barEv,_ZTv0_n16_N7ee431623barEv)();
+extern void ABISELECT(_ZThn32_N7ee431623barEv,_ZThn20_N7ee431623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+ (VTBL_ENTRY)&_ZN7ee431623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431623barEv,_ZTv0_n16_N7ee431623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee43162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee43162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee43162[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee43162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee43162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee43162[] = {
+ {&(_ZTV7ee43162[4]), 4,15},
+ {&(_tg__ZTV6dd3162__7ee43162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee43162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee43162[4]), 4,6},
+ {&(_ZTV7ee43162[9]), 9,15},
+ {&(_ZTV7ee43162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee43162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee43162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43162[];
+extern VTBL_ENTRY _ZTV7ee43162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43162[];
+static VTBL_ENTRY alt_thunk_names1002[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431623barEv,_ZTv0_n16_N7ee431623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431623barEv,_ZThn20_N7ee431623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43162 = { "ee43162", // class name
+ bases_ee43162, 4,
+ &(vtc_ee43162[0]), // expected_vtbl_contents
+ &(vtt_ee43162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1002,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53162 : virtual dd3162 {
+ int e;
+ virtual void bar(); // _ZN7ee531623barEv
+ ~ee53162(); // tgen
+ ee53162(); // tgen
+};
+//SIG(1 ee53162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53162 ::bar(){vfunc_called(this, "_ZN7ee531623barEv");}
+ee53162 ::~ee53162(){ note_dtor("ee53162", this);} // tgen
+ee53162 ::ee53162(){ note_ctor("ee53162", this);} // tgen
+
+static void Test_ee53162()
+{
+ extern Class_Descriptor cd_ee53162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53162, buf);
+ ee53162 *dp, &lv = *(dp=new (buf) ee53162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee53162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee53162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(32,16), "ee53162");
+ check_base_class_offset(lv, (dd3162*), ABISELECT(16,8), "ee53162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53162.e");
+ test_class_info(&lv, &cd_ee53162);
+ dp->~ee53162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53162(Test_ee53162, "ee53162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53162C1Ev();
+extern void _ZN7ee53162D1Ev();
+Name_Map name_map_ee53162[] = {
+ NSPAIR(_ZN7ee53162C1Ev),
+ NSPAIR(_ZN7ee53162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee53162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, ABISELECT(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 _ZTI7ee53162[];
+extern void _ZN7ee531623barEv();
+extern void _ZN6dd31623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee531623barEv,_ZTv0_n16_N7ee531623barEv)();
+extern void ABISELECT(_ZThn48_N7ee531623barEv,_ZThn24_N7ee531623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53162[0]),
+ (VTBL_ENTRY)&_ZN7ee531623barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531623barEv,_ZTv0_n16_N7ee531623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee53162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee53162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee53162[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee53162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee53162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee53162[] = {
+ {&(_ZTV7ee53162[5]), 5,21},
+ {&(_ZTV7ee53162[11]), 11,21},
+ {&(_ZTV7ee53162[15]), 15,21},
+ {&(_ZTV7ee53162[19]), 19,21},
+ {&(_tg__ZTV6dd3162__7ee53162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee53162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee53162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee53162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee53162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53162[];
+extern VTBL_ENTRY _ZTV7ee53162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53162[];
+static VTBL_ENTRY alt_thunk_names1003[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531623barEv,_ZTv0_n16_N7ee531623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531623barEv,_ZThn24_N7ee531623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53162 = { "ee53162", // class name
+ bases_ee53162, 4,
+ &(vtc_ee53162[0]), // expected_vtbl_contents
+ &(vtt_ee53162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53162),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1003,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63162 : dd3162 {
+ int e;
+ virtual void foo(); // _ZN7ee631623fooEv
+ virtual void bar(); // _ZN7ee631623barEv
+ ~ee63162(); // tgen
+ ee63162(); // tgen
+};
+//SIG(1 ee63162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63162 ::foo(){vfunc_called(this, "_ZN7ee631623fooEv");}
+void ee63162 ::bar(){vfunc_called(this, "_ZN7ee631623barEv");}
+ee63162 ::~ee63162(){ note_dtor("ee63162", this);} // tgen
+ee63162 ::ee63162(){ note_ctor("ee63162", this);} // tgen
+
+static void Test_ee63162()
+{
+ extern Class_Descriptor cd_ee63162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63162, buf);
+ ee63162 *dp, &lv = *(dp=new (buf) ee63162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee63162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee63162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(16,12), "ee63162");
+ check_base_class_offset(lv, (dd3162*), 0, "ee63162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63162.e");
+ test_class_info(&lv, &cd_ee63162);
+ dp->~ee63162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63162(Test_ee63162, "ee63162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63162C1Ev();
+extern void _ZN7ee63162D1Ev();
+Name_Map name_map_ee63162[] = {
+ NSPAIR(_ZN7ee63162C1Ev),
+ NSPAIR(_ZN7ee63162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee63162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63162[];
+extern void _ZN7ee631623fooEv();
+extern void _ZN7ee631623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631623fooEv,_ZTv0_n12_N7ee631623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631623fooEv,_ZThn20_N7ee631623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631623barEv,_ZTv0_n16_N7ee631623barEv)();
+extern void ABISELECT(_ZThn32_N7ee631623barEv,_ZThn20_N7ee631623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63162[0]),
+ (VTBL_ENTRY)&_ZN7ee631623fooEv,
+ (VTBL_ENTRY)&_ZN7ee631623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631623fooEv,_ZTv0_n12_N7ee631623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631623barEv,_ZTv0_n16_N7ee631623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee63162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee63162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee63162[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee63162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee63162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee63162[] = {
+ {&(_ZTV7ee63162[4]), 4,15},
+ {&(_tg__ZTV6dd3162__7ee63162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee63162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee63162[4]), 4,6},
+ {&(_ZTV7ee63162[9]), 9,15},
+ {&(_ZTV7ee63162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee63162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee63162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63162[];
+extern VTBL_ENTRY _ZTV7ee63162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63162[];
+static VTBL_ENTRY alt_thunk_names1004[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn20_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631623barEv,_ZTv0_n16_N7ee631623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631623barEv,_ZThn20_N7ee631623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631623fooEv,_ZTv0_n12_N7ee631623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631623fooEv,_ZThn20_N7ee631623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63162 = { "ee63162", // class name
+ bases_ee63162, 4,
+ &(vtc_ee63162[0]), // expected_vtbl_contents
+ &(vtt_ee63162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63162),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1004,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73162 : virtual dd3162 {
+ int e;
+ virtual void foo(); // _ZN7ee731623fooEv
+ virtual void bar(); // _ZN7ee731623barEv
+ ~ee73162(); // tgen
+ ee73162(); // tgen
+};
+//SIG(1 ee73162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73162 ::foo(){vfunc_called(this, "_ZN7ee731623fooEv");}
+void ee73162 ::bar(){vfunc_called(this, "_ZN7ee731623barEv");}
+ee73162 ::~ee73162(){ note_dtor("ee73162", this);} // tgen
+ee73162 ::ee73162(){ note_ctor("ee73162", this);} // tgen
+
+static void Test_ee73162()
+{
+ extern Class_Descriptor cd_ee73162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73162, buf);
+ ee73162 *dp, &lv = *(dp=new (buf) ee73162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee73162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee73162");
+ check_base_class_offset(lv, (cc162*)(dd3162*), ABISELECT(32,16), "ee73162");
+ check_base_class_offset(lv, (dd3162*), ABISELECT(16,8), "ee73162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73162.e");
+ test_class_info(&lv, &cd_ee73162);
+ dp->~ee73162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73162(Test_ee73162, "ee73162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73162C1Ev();
+extern void _ZN7ee73162D1Ev();
+Name_Map name_map_ee73162[] = {
+ NSPAIR(_ZN7ee73162C1Ev),
+ NSPAIR(_ZN7ee73162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd3162;
+extern VTBL_ENTRY _ZTI6dd3162[];
+extern VTBL_ENTRY _ZTV6dd3162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3162[];
+static Base_Class bases_ee73162[] = {
+ // 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_bb62, 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_cc162, 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_dd3162, 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 _ZTI7ee73162[];
+extern void _ZN7ee731623fooEv();
+extern void _ZN7ee731623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731623fooEv,_ZTv0_n20_N7ee731623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731623fooEv,_ZThn8_N7ee731623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731623fooEv,_ZTv0_n12_N7ee731623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731623fooEv,_ZThn24_N7ee731623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731623barEv,_ZTv0_n16_N7ee731623barEv)();
+extern void ABISELECT(_ZThn48_N7ee731623barEv,_ZThn24_N7ee731623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73162[0]),
+ (VTBL_ENTRY)&_ZN7ee731623fooEv,
+ (VTBL_ENTRY)&_ZN7ee731623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731623fooEv,_ZTv0_n20_N7ee731623fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731623fooEv,_ZTv0_n12_N7ee731623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731623barEv,_ZTv0_n16_N7ee731623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73162[];
+extern void _ZN6dd31623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3162__7ee73162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&_ZN6dd31623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd3162__7ee73162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3162__7ee73162[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee73162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee73162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee73162[] = {
+ {&(_ZTV7ee73162[5]), 5,22},
+ {&(_ZTV7ee73162[12]), 12,22},
+ {&(_ZTV7ee73162[16]), 16,22},
+ {&(_ZTV7ee73162[20]), 20,22},
+ {&(_tg__ZTV6dd3162__7ee73162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd3162__7ee73162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd3162__7ee73162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee73162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee73162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73162[];
+extern VTBL_ENTRY _ZTV7ee73162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73162[];
+static VTBL_ENTRY alt_thunk_names1005[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31623fooEv,_ZTv0_n12_N6dd31623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31623fooEv,_ZThn16_N6dd31623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731623barEv,_ZTv0_n16_N7ee731623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731623barEv,_ZThn24_N7ee731623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731623fooEv,_ZTv0_n12_N7ee731623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731623fooEv,_ZThn24_N7ee731623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731623fooEv,_ZTv0_n20_N7ee731623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731623fooEv,_ZThn8_N7ee731623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73162 = { "ee73162", // class name
+ bases_ee73162, 4,
+ &(vtc_ee73162[0]), // expected_vtbl_contents
+ &(vtt_ee73162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73162),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1005,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4162 : cc162 {
+ int d;
+ virtual void bar(); // _ZN6dd41623barEv
+ ~dd4162(); // tgen
+ dd4162(); // tgen
+};
+//SIG(-1 dd4162) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd4162 ::bar(){vfunc_called(this, "_ZN6dd41623barEv");}
+dd4162 ::~dd4162(){ note_dtor("dd4162", this);} // tgen
+dd4162 ::dd4162(){ note_ctor("dd4162", this);} // tgen
+
+static void Test_dd4162()
+{
+ extern Class_Descriptor cd_dd4162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4162, buf);
+ dd4162 *dp, &lv = *(dp=new (buf) dd4162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd4162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(16,12), "dd4162");
+ check_base_class_offset(lv, (cc162*), 0, "dd4162");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4162.d");
+ test_class_info(&lv, &cd_dd4162);
+ dp->~dd4162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4162(Test_dd4162, "dd4162", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4162C1Ev();
+extern void _ZN6dd4162D1Ev();
+Name_Map name_map_dd4162[] = {
+ NSPAIR(_ZN6dd4162C1Ev),
+ NSPAIR(_ZN6dd4162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd4162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern void _ZN6dd41623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd4162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd4162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd4162[] = {
+ {&(_ZTV6dd4162[3]), 3,10},
+ {&(_tg__ZTV5cc162__6dd4162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd4162[4]), 4,6},
+ {&(_ZTV6dd4162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static VTBL_ENTRY alt_thunk_names1006[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4162 = { "dd4162", // class name
+ bases_dd4162, 3,
+ &(vtc_dd4162[0]), // expected_vtbl_contents
+ &(vtt_dd4162[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4162),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1006,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04162 : dd4162 {
+ int e;
+ ~ee04162(); // tgen
+ ee04162(); // tgen
+};
+//SIG(1 ee04162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04162 ::~ee04162(){ note_dtor("ee04162", this);} // tgen
+ee04162 ::ee04162(){ note_ctor("ee04162", this);} // tgen
+
+static void Test_ee04162()
+{
+ extern Class_Descriptor cd_ee04162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04162, buf);
+ ee04162 *dp, &lv = *(dp=new (buf) ee04162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee04162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(24,16), "ee04162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), 0, "ee04162");
+ check_base_class_offset(lv, (dd4162*), 0, "ee04162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04162.e");
+ test_class_info(&lv, &cd_ee04162);
+ dp->~ee04162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04162(Test_ee04162, "ee04162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04162C1Ev();
+extern void _ZN7ee04162D1Ev();
+Name_Map name_map_ee04162[] = {
+ NSPAIR(_ZN7ee04162C1Ev),
+ NSPAIR(_ZN7ee04162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee04162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04162[];
+extern void _ZN6dd41623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee04162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee04162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee04162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee04162[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee04162[] = {
+ {&(_ZTV7ee04162[3]), 3,10},
+ {&(_tg__ZTV6dd4162__7ee04162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee04162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee04162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee04162[4]), 4,6},
+ {&(_ZTV7ee04162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04162[];
+extern VTBL_ENTRY _ZTV7ee04162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04162[];
+static VTBL_ENTRY alt_thunk_names1007[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04162 = { "ee04162", // class name
+ bases_ee04162, 4,
+ &(vtc_ee04162[0]), // expected_vtbl_contents
+ &(vtt_ee04162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04162),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1007,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14162 : virtual dd4162 {
+ int e;
+ ~ee14162(); // tgen
+ ee14162(); // tgen
+};
+//SIG(1 ee14162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14162 ::~ee14162(){ note_dtor("ee14162", this);} // tgen
+ee14162 ::ee14162(){ note_ctor("ee14162", this);} // tgen
+
+static void Test_ee14162()
+{
+ extern Class_Descriptor cd_ee14162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14162, buf);
+ ee14162 *dp, &lv = *(dp=new (buf) ee14162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee14162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(32,20), "ee14162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), ABISELECT(16,8), "ee14162");
+ check_base_class_offset(lv, (dd4162*), ABISELECT(16,8), "ee14162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14162.e");
+ test_class_info(&lv, &cd_ee14162);
+ dp->~ee14162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14162(Test_ee14162, "ee14162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14162C1Ev();
+extern void _ZN7ee14162D1Ev();
+Name_Map name_map_ee14162[] = {
+ NSPAIR(_ZN7ee14162C1Ev),
+ NSPAIR(_ZN7ee14162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee14162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, ABISELECT(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 _ZTI7ee14162[];
+extern void _ZN6dd41623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14162[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee14162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee14162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee14162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee14162[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee14162[] = {
+ {&(_ZTV7ee14162[4]), 4,15},
+ {&(_ZTV7ee14162[8]), 8,15},
+ {&(_ZTV7ee14162[13]), 13,15},
+ {&(_tg__ZTV6dd4162__7ee14162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee14162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee14162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee14162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14162[];
+extern VTBL_ENTRY _ZTV7ee14162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14162[];
+static VTBL_ENTRY alt_thunk_names1008[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14162 = { "ee14162", // class name
+ bases_ee14162, 4,
+ &(vtc_ee14162[0]), // expected_vtbl_contents
+ &(vtt_ee14162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14162),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1008,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24162 : dd4162 {
+ int e;
+ virtual void foo(); // _ZN7ee241623fooEv
+ ~ee24162(); // tgen
+ ee24162(); // tgen
+};
+//SIG(1 ee24162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24162 ::foo(){vfunc_called(this, "_ZN7ee241623fooEv");}
+ee24162 ::~ee24162(){ note_dtor("ee24162", this);} // tgen
+ee24162 ::ee24162(){ note_ctor("ee24162", this);} // tgen
+
+static void Test_ee24162()
+{
+ extern Class_Descriptor cd_ee24162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24162, buf);
+ ee24162 *dp, &lv = *(dp=new (buf) ee24162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee24162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(24,16), "ee24162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), 0, "ee24162");
+ check_base_class_offset(lv, (dd4162*), 0, "ee24162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24162.e");
+ test_class_info(&lv, &cd_ee24162);
+ dp->~ee24162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24162(Test_ee24162, "ee24162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24162C1Ev();
+extern void _ZN7ee24162D1Ev();
+Name_Map name_map_ee24162[] = {
+ NSPAIR(_ZN7ee24162C1Ev),
+ NSPAIR(_ZN7ee24162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee24162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24162[];
+extern void _ZN6dd41623barEv();
+extern void _ZN7ee241623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241623fooEv,_ZTv0_n12_N7ee241623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241623fooEv,_ZThn16_N7ee241623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+ (VTBL_ENTRY)&_ZN7ee241623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241623fooEv,_ZTv0_n12_N7ee241623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee24162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee24162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee24162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee24162[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee24162[] = {
+ {&(_ZTV7ee24162[3]), 3,11},
+ {&(_tg__ZTV6dd4162__7ee24162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee24162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee24162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee24162[4]), 4,6},
+ {&(_ZTV7ee24162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24162[];
+extern VTBL_ENTRY _ZTV7ee24162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24162[];
+static VTBL_ENTRY alt_thunk_names1009[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241623fooEv,_ZTv0_n12_N7ee241623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241623fooEv,_ZThn16_N7ee241623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24162 = { "ee24162", // class name
+ bases_ee24162, 4,
+ &(vtc_ee24162[0]), // expected_vtbl_contents
+ &(vtt_ee24162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24162),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 ee34162 : virtual dd4162 {
+ int e;
+ virtual void foo(); // _ZN7ee341623fooEv
+ ~ee34162(); // tgen
+ ee34162(); // tgen
+};
+//SIG(1 ee34162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34162 ::foo(){vfunc_called(this, "_ZN7ee341623fooEv");}
+ee34162 ::~ee34162(){ note_dtor("ee34162", this);} // tgen
+ee34162 ::ee34162(){ note_ctor("ee34162", this);} // tgen
+
+static void Test_ee34162()
+{
+ extern Class_Descriptor cd_ee34162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34162, buf);
+ ee34162 *dp, &lv = *(dp=new (buf) ee34162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee34162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(32,20), "ee34162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), ABISELECT(16,8), "ee34162");
+ check_base_class_offset(lv, (dd4162*), ABISELECT(16,8), "ee34162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34162.e");
+ test_class_info(&lv, &cd_ee34162);
+ dp->~ee34162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34162(Test_ee34162, "ee34162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34162C1Ev();
+extern void _ZN7ee34162D1Ev();
+Name_Map name_map_ee34162[] = {
+ NSPAIR(_ZN7ee34162C1Ev),
+ NSPAIR(_ZN7ee34162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee34162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, ABISELECT(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 _ZTI7ee34162[];
+extern void _ZN7ee341623fooEv();
+extern void _ZN6dd41623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341623fooEv,_ZTv0_n12_N7ee341623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341623fooEv,_ZThn20_N7ee341623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34162[0]),
+ (VTBL_ENTRY)&_ZN7ee341623fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341623fooEv,_ZTv0_n12_N7ee341623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee34162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee34162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee34162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee34162[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee34162[] = {
+ {&(_ZTV7ee34162[4]), 4,16},
+ {&(_ZTV7ee34162[9]), 9,16},
+ {&(_ZTV7ee34162[14]), 14,16},
+ {&(_tg__ZTV6dd4162__7ee34162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee34162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee34162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee34162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34162[];
+extern VTBL_ENTRY _ZTV7ee34162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34162[];
+static VTBL_ENTRY alt_thunk_names1010[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341623fooEv,_ZTv0_n12_N7ee341623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341623fooEv,_ZThn20_N7ee341623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34162 = { "ee34162", // class name
+ bases_ee34162, 4,
+ &(vtc_ee34162[0]), // expected_vtbl_contents
+ &(vtt_ee34162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34162),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34162),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 ee44162 : dd4162 {
+ int e;
+ virtual void bar(); // _ZN7ee441623barEv
+ ~ee44162(); // tgen
+ ee44162(); // tgen
+};
+//SIG(1 ee44162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44162 ::bar(){vfunc_called(this, "_ZN7ee441623barEv");}
+ee44162 ::~ee44162(){ note_dtor("ee44162", this);} // tgen
+ee44162 ::ee44162(){ note_ctor("ee44162", this);} // tgen
+
+static void Test_ee44162()
+{
+ extern Class_Descriptor cd_ee44162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44162, buf);
+ ee44162 *dp, &lv = *(dp=new (buf) ee44162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee44162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(24,16), "ee44162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), 0, "ee44162");
+ check_base_class_offset(lv, (dd4162*), 0, "ee44162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44162.e");
+ test_class_info(&lv, &cd_ee44162);
+ dp->~ee44162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44162(Test_ee44162, "ee44162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44162C1Ev();
+extern void _ZN7ee44162D1Ev();
+Name_Map name_map_ee44162[] = {
+ NSPAIR(_ZN7ee44162C1Ev),
+ NSPAIR(_ZN7ee44162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee44162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44162[];
+extern void _ZN7ee441623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441623barEv,_ZTv0_n16_N7ee441623barEv)();
+extern void ABISELECT(_ZThn24_N7ee441623barEv,_ZThn16_N7ee441623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44162[0]),
+ (VTBL_ENTRY)&_ZN7ee441623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441623barEv,_ZTv0_n16_N7ee441623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee44162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee44162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee44162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee44162[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee44162[] = {
+ {&(_ZTV7ee44162[3]), 3,10},
+ {&(_tg__ZTV6dd4162__7ee44162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee44162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee44162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee44162[4]), 4,6},
+ {&(_ZTV7ee44162[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44162[];
+extern VTBL_ENTRY _ZTV7ee44162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44162[];
+static VTBL_ENTRY alt_thunk_names1011[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441623barEv,_ZTv0_n16_N7ee441623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441623barEv,_ZThn16_N7ee441623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44162 = { "ee44162", // class name
+ bases_ee44162, 4,
+ &(vtc_ee44162[0]), // expected_vtbl_contents
+ &(vtt_ee44162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44162),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44162),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 ee54162 : virtual dd4162 {
+ int e;
+ virtual void bar(); // _ZN7ee541623barEv
+ ~ee54162(); // tgen
+ ee54162(); // tgen
+};
+//SIG(1 ee54162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54162 ::bar(){vfunc_called(this, "_ZN7ee541623barEv");}
+ee54162 ::~ee54162(){ note_dtor("ee54162", this);} // tgen
+ee54162 ::ee54162(){ note_ctor("ee54162", this);} // tgen
+
+static void Test_ee54162()
+{
+ extern Class_Descriptor cd_ee54162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54162, buf);
+ ee54162 *dp, &lv = *(dp=new (buf) ee54162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee54162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(32,20), "ee54162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), ABISELECT(16,8), "ee54162");
+ check_base_class_offset(lv, (dd4162*), ABISELECT(16,8), "ee54162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54162.e");
+ test_class_info(&lv, &cd_ee54162);
+ dp->~ee54162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54162(Test_ee54162, "ee54162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54162C1Ev();
+extern void _ZN7ee54162D1Ev();
+Name_Map name_map_ee54162[] = {
+ NSPAIR(_ZN7ee54162C1Ev),
+ NSPAIR(_ZN7ee54162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee54162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, ABISELECT(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 _ZTI7ee54162[];
+extern void _ZN7ee541623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541623barEv,_ZTv0_n16_N7ee541623barEv)();
+extern void ABISELECT(_ZThn16_N7ee541623barEv,_ZThn8_N7ee541623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541623barEv,_ZTv0_n16_N7ee541623barEv)();
+extern void ABISELECT(_ZThn32_N7ee541623barEv,_ZThn20_N7ee541623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54162[0]),
+ (VTBL_ENTRY)&_ZN7ee541623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541623barEv,_ZTv0_n16_N7ee541623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541623barEv,_ZTv0_n16_N7ee541623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee54162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee54162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee54162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee54162[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee54162[] = {
+ {&(_ZTV7ee54162[4]), 4,16},
+ {&(_ZTV7ee54162[9]), 9,16},
+ {&(_ZTV7ee54162[14]), 14,16},
+ {&(_tg__ZTV6dd4162__7ee54162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee54162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee54162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee54162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54162[];
+extern VTBL_ENTRY _ZTV7ee54162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54162[];
+static VTBL_ENTRY alt_thunk_names1012[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541623barEv,_ZTv0_n16_N7ee541623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541623barEv,_ZThn20_N7ee541623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541623barEv,_ZThn8_N7ee541623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54162 = { "ee54162", // class name
+ bases_ee54162, 4,
+ &(vtc_ee54162[0]), // expected_vtbl_contents
+ &(vtt_ee54162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54162),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54162),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 ee64162 : dd4162 {
+ int e;
+ virtual void foo(); // _ZN7ee641623fooEv
+ virtual void bar(); // _ZN7ee641623barEv
+ ~ee64162(); // tgen
+ ee64162(); // tgen
+};
+//SIG(1 ee64162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64162 ::foo(){vfunc_called(this, "_ZN7ee641623fooEv");}
+void ee64162 ::bar(){vfunc_called(this, "_ZN7ee641623barEv");}
+ee64162 ::~ee64162(){ note_dtor("ee64162", this);} // tgen
+ee64162 ::ee64162(){ note_ctor("ee64162", this);} // tgen
+
+static void Test_ee64162()
+{
+ extern Class_Descriptor cd_ee64162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64162, buf);
+ ee64162 *dp, &lv = *(dp=new (buf) ee64162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee64162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(24,16), "ee64162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), 0, "ee64162");
+ check_base_class_offset(lv, (dd4162*), 0, "ee64162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64162.e");
+ test_class_info(&lv, &cd_ee64162);
+ dp->~ee64162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64162(Test_ee64162, "ee64162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64162C1Ev();
+extern void _ZN7ee64162D1Ev();
+Name_Map name_map_ee64162[] = {
+ NSPAIR(_ZN7ee64162C1Ev),
+ NSPAIR(_ZN7ee64162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee64162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64162[];
+extern void _ZN7ee641623barEv();
+extern void _ZN7ee641623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641623fooEv,_ZTv0_n12_N7ee641623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641623fooEv,_ZThn16_N7ee641623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641623barEv,_ZTv0_n16_N7ee641623barEv)();
+extern void ABISELECT(_ZThn24_N7ee641623barEv,_ZThn16_N7ee641623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64162[0]),
+ (VTBL_ENTRY)&_ZN7ee641623barEv,
+ (VTBL_ENTRY)&_ZN7ee641623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641623fooEv,_ZTv0_n12_N7ee641623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641623barEv,_ZTv0_n16_N7ee641623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee64162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee64162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee64162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee64162[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee64162[] = {
+ {&(_ZTV7ee64162[3]), 3,11},
+ {&(_tg__ZTV6dd4162__7ee64162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee64162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee64162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee64162[4]), 4,6},
+ {&(_ZTV7ee64162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64162[];
+extern VTBL_ENTRY _ZTV7ee64162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64162[];
+static VTBL_ENTRY alt_thunk_names1013[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41623barEv,_ZThn16_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641623barEv,_ZTv0_n16_N7ee641623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641623barEv,_ZThn16_N7ee641623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641623fooEv,_ZTv0_n12_N7ee641623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641623fooEv,_ZThn16_N7ee641623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64162 = { "ee64162", // class name
+ bases_ee64162, 4,
+ &(vtc_ee64162[0]), // expected_vtbl_contents
+ &(vtt_ee64162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64162),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 ee74162 : virtual dd4162 {
+ int e;
+ virtual void foo(); // _ZN7ee741623fooEv
+ virtual void bar(); // _ZN7ee741623barEv
+ ~ee74162(); // tgen
+ ee74162(); // tgen
+};
+//SIG(1 ee74162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74162 ::foo(){vfunc_called(this, "_ZN7ee741623fooEv");}
+void ee74162 ::bar(){vfunc_called(this, "_ZN7ee741623barEv");}
+ee74162 ::~ee74162(){ note_dtor("ee74162", this);} // tgen
+ee74162 ::ee74162(){ note_ctor("ee74162", this);} // tgen
+
+static void Test_ee74162()
+{
+ extern Class_Descriptor cd_ee74162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74162, buf);
+ ee74162 *dp, &lv = *(dp=new (buf) ee74162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee74162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd4162*), ABISELECT(32,20), "ee74162");
+ check_base_class_offset(lv, (cc162*)(dd4162*), ABISELECT(16,8), "ee74162");
+ check_base_class_offset(lv, (dd4162*), ABISELECT(16,8), "ee74162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74162.e");
+ test_class_info(&lv, &cd_ee74162);
+ dp->~ee74162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74162(Test_ee74162, "ee74162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74162C1Ev();
+extern void _ZN7ee74162D1Ev();
+Name_Map name_map_ee74162[] = {
+ NSPAIR(_ZN7ee74162C1Ev),
+ NSPAIR(_ZN7ee74162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd4162;
+extern VTBL_ENTRY _ZTI6dd4162[];
+extern VTBL_ENTRY _ZTV6dd4162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4162[];
+static Base_Class bases_ee74162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4162, 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 _ZTI7ee74162[];
+extern void _ZN7ee741623fooEv();
+extern void _ZN7ee741623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741623barEv,_ZTv0_n16_N7ee741623barEv)();
+extern void ABISELECT(_ZThn16_N7ee741623barEv,_ZThn8_N7ee741623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741623fooEv,_ZTv0_n12_N7ee741623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741623fooEv,_ZThn20_N7ee741623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741623barEv,_ZTv0_n16_N7ee741623barEv)();
+extern void ABISELECT(_ZThn32_N7ee741623barEv,_ZThn20_N7ee741623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74162[0]),
+ (VTBL_ENTRY)&_ZN7ee741623fooEv,
+ (VTBL_ENTRY)&_ZN7ee741623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741623barEv,_ZTv0_n16_N7ee741623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741623fooEv,_ZTv0_n12_N7ee741623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741623barEv,_ZTv0_n16_N7ee741623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74162[];
+extern void _ZN6dd41623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4162__7ee74162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN6dd41623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd4162__7ee74162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd4162__7ee74162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv)();
+extern void ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4162__7ee74162[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv),
+};
+static VTT_ENTRY vtt_ee74162[] = {
+ {&(_ZTV7ee74162[4]), 4,17},
+ {&(_ZTV7ee74162[10]), 10,17},
+ {&(_ZTV7ee74162[15]), 15,17},
+ {&(_tg__ZTV6dd4162__7ee74162[3]), 3,4},
+ {&(_tg__ZTV5cc1626dd4162__7ee74162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd4162__7ee74162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4162__7ee74162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74162[];
+extern VTBL_ENTRY _ZTV7ee74162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74162[];
+static VTBL_ENTRY alt_thunk_names1014[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41623barEv,_ZTv0_n16_N6dd41623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41623barEv,_ZThn12_N6dd41623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741623fooEv,_ZTv0_n12_N7ee741623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741623fooEv,_ZThn20_N7ee741623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741623barEv,_ZTv0_n16_N7ee741623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741623barEv,_ZThn20_N7ee741623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741623barEv,_ZThn8_N7ee741623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74162 = { "ee74162", // class name
+ bases_ee74162, 4,
+ &(vtc_ee74162[0]), // expected_vtbl_contents
+ &(vtt_ee74162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74162),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74162),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 dd5162 : virtual cc162 {
+ int d;
+ virtual void bar(); // _ZN6dd51623barEv
+ ~dd5162(); // tgen
+ dd5162(); // tgen
+};
+//SIG(-1 dd5162) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void dd5162 ::bar(){vfunc_called(this, "_ZN6dd51623barEv");}
+dd5162 ::~dd5162(){ note_dtor("dd5162", this);} // tgen
+dd5162 ::dd5162(){ note_ctor("dd5162", this);} // tgen
+
+static void Test_dd5162()
+{
+ extern Class_Descriptor cd_dd5162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5162, buf);
+ dd5162 *dp, &lv = *(dp=new (buf) dd5162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd5162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,16), "dd5162");
+ check_base_class_offset(lv, (cc162*), ABISELECT(16,8), "dd5162");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5162.d");
+ test_class_info(&lv, &cd_dd5162);
+ dp->~dd5162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5162(Test_dd5162, "dd5162", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5162C1Ev();
+extern void _ZN6dd5162D1Ev();
+Name_Map name_map_dd5162[] = {
+ NSPAIR(_ZN6dd5162C1Ev),
+ NSPAIR(_ZN6dd5162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd5162[] = {
+ // 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_bb62, 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_cc162, 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 _ZTI6dd5162[];
+extern void _ZN6dd51623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd5162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd5162[] = {
+ {&(_ZTV6dd5162[4]), 4,14},
+ {&(_ZTV6dd5162[8]), 8,14},
+ {&(_ZTV6dd5162[12]), 12,14},
+ {&(_tg__ZTV5cc162__6dd5162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd5162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static VTBL_ENTRY alt_thunk_names1015[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5162 = { "dd5162", // class name
+ bases_dd5162, 3,
+ &(vtc_dd5162[0]), // expected_vtbl_contents
+ &(vtt_dd5162[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5162),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1015,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05162 : dd5162 {
+ int e;
+ ~ee05162(); // tgen
+ ee05162(); // tgen
+};
+//SIG(1 ee05162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05162 ::~ee05162(){ note_dtor("ee05162", this);} // tgen
+ee05162 ::ee05162(){ note_ctor("ee05162", this);} // tgen
+
+static void Test_ee05162()
+{
+ extern Class_Descriptor cd_ee05162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05162, buf);
+ ee05162 *dp, &lv = *(dp=new (buf) ee05162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee05162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee05162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(16,12), "ee05162");
+ check_base_class_offset(lv, (dd5162*), 0, "ee05162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05162.e");
+ test_class_info(&lv, &cd_ee05162);
+ dp->~ee05162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05162(Test_ee05162, "ee05162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05162C1Ev();
+extern void _ZN7ee05162D1Ev();
+Name_Map name_map_ee05162[] = {
+ NSPAIR(_ZN7ee05162C1Ev),
+ NSPAIR(_ZN7ee05162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee05162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05162[];
+extern void _ZN6dd51623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05162[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee05162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee05162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee05162[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee05162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee05162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee05162[] = {
+ {&(_ZTV7ee05162[4]), 4,14},
+ {&(_tg__ZTV6dd5162__7ee05162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee05162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee05162[4]), 4,6},
+ {&(_ZTV7ee05162[8]), 8,14},
+ {&(_ZTV7ee05162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee05162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee05162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05162[];
+extern VTBL_ENTRY _ZTV7ee05162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05162[];
+static VTBL_ENTRY alt_thunk_names1016[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05162 = { "ee05162", // class name
+ bases_ee05162, 4,
+ &(vtc_ee05162[0]), // expected_vtbl_contents
+ &(vtt_ee05162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05162),8, //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 ee15162 : virtual dd5162 {
+ int e;
+ ~ee15162(); // tgen
+ ee15162(); // tgen
+};
+//SIG(1 ee15162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15162 ::~ee15162(){ note_dtor("ee15162", this);} // tgen
+ee15162 ::ee15162(){ note_ctor("ee15162", this);} // tgen
+
+static void Test_ee15162()
+{
+ extern Class_Descriptor cd_ee15162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15162, buf);
+ ee15162 *dp, &lv = *(dp=new (buf) ee15162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee15162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee15162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(32,16), "ee15162");
+ check_base_class_offset(lv, (dd5162*), ABISELECT(16,8), "ee15162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15162.e");
+ test_class_info(&lv, &cd_ee15162);
+ dp->~ee15162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15162(Test_ee15162, "ee15162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15162C1Ev();
+extern void _ZN7ee15162D1Ev();
+Name_Map name_map_ee15162[] = {
+ NSPAIR(_ZN7ee15162C1Ev),
+ NSPAIR(_ZN7ee15162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee15162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, ABISELECT(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 _ZTI7ee15162[];
+extern void _ZN6dd51623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15162[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15162[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee15162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee15162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee15162[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee15162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee15162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee15162[] = {
+ {&(_ZTV7ee15162[5]), 5,20},
+ {&(_ZTV7ee15162[10]), 10,20},
+ {&(_ZTV7ee15162[14]), 14,20},
+ {&(_ZTV7ee15162[18]), 18,20},
+ {&(_tg__ZTV6dd5162__7ee15162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee15162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee15162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee15162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee15162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15162[];
+extern VTBL_ENTRY _ZTV7ee15162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15162[];
+static VTBL_ENTRY alt_thunk_names1017[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15162 = { "ee15162", // class name
+ bases_ee15162, 4,
+ &(vtc_ee15162[0]), // expected_vtbl_contents
+ &(vtt_ee15162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15162),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1017,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25162 : dd5162 {
+ int e;
+ virtual void foo(); // _ZN7ee251623fooEv
+ ~ee25162(); // tgen
+ ee25162(); // tgen
+};
+//SIG(1 ee25162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25162 ::foo(){vfunc_called(this, "_ZN7ee251623fooEv");}
+ee25162 ::~ee25162(){ note_dtor("ee25162", this);} // tgen
+ee25162 ::ee25162(){ note_ctor("ee25162", this);} // tgen
+
+static void Test_ee25162()
+{
+ extern Class_Descriptor cd_ee25162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25162, buf);
+ ee25162 *dp, &lv = *(dp=new (buf) ee25162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee25162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee25162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(16,12), "ee25162");
+ check_base_class_offset(lv, (dd5162*), 0, "ee25162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25162.e");
+ test_class_info(&lv, &cd_ee25162);
+ dp->~ee25162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25162(Test_ee25162, "ee25162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25162C1Ev();
+extern void _ZN7ee25162D1Ev();
+Name_Map name_map_ee25162[] = {
+ NSPAIR(_ZN7ee25162C1Ev),
+ NSPAIR(_ZN7ee25162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee25162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25162[];
+extern void _ZN6dd51623barEv();
+extern void _ZN7ee251623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251623fooEv,_ZTv0_n12_N7ee251623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251623fooEv,_ZThn20_N7ee251623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+ (VTBL_ENTRY)&_ZN7ee251623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251623fooEv,_ZTv0_n12_N7ee251623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee25162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee25162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee25162[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee25162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee25162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee25162[] = {
+ {&(_ZTV7ee25162[4]), 4,15},
+ {&(_tg__ZTV6dd5162__7ee25162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee25162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee25162[4]), 4,6},
+ {&(_ZTV7ee25162[9]), 9,15},
+ {&(_ZTV7ee25162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee25162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee25162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25162[];
+extern VTBL_ENTRY _ZTV7ee25162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25162[];
+static VTBL_ENTRY alt_thunk_names1018[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251623fooEv,_ZTv0_n12_N7ee251623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251623fooEv,_ZThn20_N7ee251623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25162 = { "ee25162", // class name
+ bases_ee25162, 4,
+ &(vtc_ee25162[0]), // expected_vtbl_contents
+ &(vtt_ee25162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25162),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 ee35162 : virtual dd5162 {
+ int e;
+ virtual void foo(); // _ZN7ee351623fooEv
+ ~ee35162(); // tgen
+ ee35162(); // tgen
+};
+//SIG(1 ee35162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35162 ::foo(){vfunc_called(this, "_ZN7ee351623fooEv");}
+ee35162 ::~ee35162(){ note_dtor("ee35162", this);} // tgen
+ee35162 ::ee35162(){ note_ctor("ee35162", this);} // tgen
+
+static void Test_ee35162()
+{
+ extern Class_Descriptor cd_ee35162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35162, buf);
+ ee35162 *dp, &lv = *(dp=new (buf) ee35162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee35162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee35162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(32,16), "ee35162");
+ check_base_class_offset(lv, (dd5162*), ABISELECT(16,8), "ee35162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35162.e");
+ test_class_info(&lv, &cd_ee35162);
+ dp->~ee35162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35162(Test_ee35162, "ee35162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35162C1Ev();
+extern void _ZN7ee35162D1Ev();
+Name_Map name_map_ee35162[] = {
+ NSPAIR(_ZN7ee35162C1Ev),
+ NSPAIR(_ZN7ee35162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee35162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, ABISELECT(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 _ZTI7ee35162[];
+extern void _ZN7ee351623fooEv();
+extern void _ZN6dd51623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351623fooEv,_ZTv0_n12_N7ee351623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351623fooEv,_ZThn24_N7ee351623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35162[0]),
+ (VTBL_ENTRY)&_ZN7ee351623fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35162[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351623fooEv,_ZTv0_n12_N7ee351623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee35162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee35162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee35162[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee35162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee35162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee35162[] = {
+ {&(_ZTV7ee35162[5]), 5,21},
+ {&(_ZTV7ee35162[11]), 11,21},
+ {&(_ZTV7ee35162[15]), 15,21},
+ {&(_ZTV7ee35162[19]), 19,21},
+ {&(_tg__ZTV6dd5162__7ee35162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee35162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee35162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee35162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee35162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35162[];
+extern VTBL_ENTRY _ZTV7ee35162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35162[];
+static VTBL_ENTRY alt_thunk_names1019[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351623fooEv,_ZTv0_n12_N7ee351623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351623fooEv,_ZThn24_N7ee351623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35162 = { "ee35162", // class name
+ bases_ee35162, 4,
+ &(vtc_ee35162[0]), // expected_vtbl_contents
+ &(vtt_ee35162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35162),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35162),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 ee45162 : dd5162 {
+ int e;
+ virtual void bar(); // _ZN7ee451623barEv
+ ~ee45162(); // tgen
+ ee45162(); // tgen
+};
+//SIG(1 ee45162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45162 ::bar(){vfunc_called(this, "_ZN7ee451623barEv");}
+ee45162 ::~ee45162(){ note_dtor("ee45162", this);} // tgen
+ee45162 ::ee45162(){ note_ctor("ee45162", this);} // tgen
+
+static void Test_ee45162()
+{
+ extern Class_Descriptor cd_ee45162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45162, buf);
+ ee45162 *dp, &lv = *(dp=new (buf) ee45162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee45162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee45162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(16,12), "ee45162");
+ check_base_class_offset(lv, (dd5162*), 0, "ee45162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45162.e");
+ test_class_info(&lv, &cd_ee45162);
+ dp->~ee45162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45162(Test_ee45162, "ee45162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45162C1Ev();
+extern void _ZN7ee45162D1Ev();
+Name_Map name_map_ee45162[] = {
+ NSPAIR(_ZN7ee45162C1Ev),
+ NSPAIR(_ZN7ee45162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee45162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45162[];
+extern void _ZN7ee451623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451623barEv,_ZTv0_n16_N7ee451623barEv)();
+extern void ABISELECT(_ZThn32_N7ee451623barEv,_ZThn20_N7ee451623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45162[0]),
+ (VTBL_ENTRY)&_ZN7ee451623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45162[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451623barEv,_ZTv0_n16_N7ee451623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee45162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee45162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee45162[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee45162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee45162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee45162[] = {
+ {&(_ZTV7ee45162[4]), 4,14},
+ {&(_tg__ZTV6dd5162__7ee45162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee45162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee45162[4]), 4,6},
+ {&(_ZTV7ee45162[8]), 8,14},
+ {&(_ZTV7ee45162[12]), 12,14},
+ {&(_tg__ZTV5cc162__7ee45162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee45162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45162[];
+extern VTBL_ENTRY _ZTV7ee45162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45162[];
+static VTBL_ENTRY alt_thunk_names1020[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451623barEv,_ZTv0_n16_N7ee451623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451623barEv,_ZThn20_N7ee451623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45162 = { "ee45162", // class name
+ bases_ee45162, 4,
+ &(vtc_ee45162[0]), // expected_vtbl_contents
+ &(vtt_ee45162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45162),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45162),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 ee55162 : virtual dd5162 {
+ int e;
+ virtual void bar(); // _ZN7ee551623barEv
+ ~ee55162(); // tgen
+ ee55162(); // tgen
+};
+//SIG(1 ee55162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55162 ::bar(){vfunc_called(this, "_ZN7ee551623barEv");}
+ee55162 ::~ee55162(){ note_dtor("ee55162", this);} // tgen
+ee55162 ::ee55162(){ note_ctor("ee55162", this);} // tgen
+
+static void Test_ee55162()
+{
+ extern Class_Descriptor cd_ee55162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55162, buf);
+ ee55162 *dp, &lv = *(dp=new (buf) ee55162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee55162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee55162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(32,16), "ee55162");
+ check_base_class_offset(lv, (dd5162*), ABISELECT(16,8), "ee55162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55162.e");
+ test_class_info(&lv, &cd_ee55162);
+ dp->~ee55162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55162(Test_ee55162, "ee55162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55162C1Ev();
+extern void _ZN7ee55162D1Ev();
+Name_Map name_map_ee55162[] = {
+ NSPAIR(_ZN7ee55162C1Ev),
+ NSPAIR(_ZN7ee55162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee55162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, ABISELECT(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 _ZTI7ee55162[];
+extern void _ZN7ee551623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551623barEv,_ZTv0_n20_N7ee551623barEv)();
+extern void ABISELECT(_ZThn16_N7ee551623barEv,_ZThn8_N7ee551623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee551623barEv,_ZTv0_n16_N7ee551623barEv)();
+extern void ABISELECT(_ZThn48_N7ee551623barEv,_ZThn24_N7ee551623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55162[0]),
+ (VTBL_ENTRY)&_ZN7ee551623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551623barEv,_ZTv0_n20_N7ee551623barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55162[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551623barEv,_ZTv0_n16_N7ee551623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee55162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee55162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee55162[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee55162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee55162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee55162[] = {
+ {&(_ZTV7ee55162[5]), 5,21},
+ {&(_ZTV7ee55162[11]), 11,21},
+ {&(_ZTV7ee55162[15]), 15,21},
+ {&(_ZTV7ee55162[19]), 19,21},
+ {&(_tg__ZTV6dd5162__7ee55162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee55162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee55162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee55162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee55162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55162[];
+extern VTBL_ENTRY _ZTV7ee55162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55162[];
+static VTBL_ENTRY alt_thunk_names1021[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551623barEv,_ZTv0_n16_N7ee551623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551623barEv,_ZThn24_N7ee551623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551623barEv,_ZTv0_n20_N7ee551623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551623barEv,_ZThn8_N7ee551623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55162 = { "ee55162", // class name
+ bases_ee55162, 4,
+ &(vtc_ee55162[0]), // expected_vtbl_contents
+ &(vtt_ee55162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55162),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55162),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 ee65162 : dd5162 {
+ int e;
+ virtual void foo(); // _ZN7ee651623fooEv
+ virtual void bar(); // _ZN7ee651623barEv
+ ~ee65162(); // tgen
+ ee65162(); // tgen
+};
+//SIG(1 ee65162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65162 ::foo(){vfunc_called(this, "_ZN7ee651623fooEv");}
+void ee65162 ::bar(){vfunc_called(this, "_ZN7ee651623barEv");}
+ee65162 ::~ee65162(){ note_dtor("ee65162", this);} // tgen
+ee65162 ::ee65162(){ note_ctor("ee65162", this);} // tgen
+
+static void Test_ee65162()
+{
+ extern Class_Descriptor cd_ee65162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65162, buf);
+ ee65162 *dp, &lv = *(dp=new (buf) ee65162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee65162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee65162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(16,12), "ee65162");
+ check_base_class_offset(lv, (dd5162*), 0, "ee65162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65162.e");
+ test_class_info(&lv, &cd_ee65162);
+ dp->~ee65162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65162(Test_ee65162, "ee65162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65162C1Ev();
+extern void _ZN7ee65162D1Ev();
+Name_Map name_map_ee65162[] = {
+ NSPAIR(_ZN7ee65162C1Ev),
+ NSPAIR(_ZN7ee65162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee65162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65162[];
+extern void _ZN7ee651623barEv();
+extern void _ZN7ee651623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651623fooEv,_ZTv0_n12_N7ee651623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651623fooEv,_ZThn20_N7ee651623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651623barEv,_ZTv0_n16_N7ee651623barEv)();
+extern void ABISELECT(_ZThn32_N7ee651623barEv,_ZThn20_N7ee651623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65162[0]),
+ (VTBL_ENTRY)&_ZN7ee651623barEv,
+ (VTBL_ENTRY)&_ZN7ee651623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651623fooEv,_ZTv0_n12_N7ee651623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651623barEv,_ZTv0_n16_N7ee651623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee65162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee65162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee65162[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee65162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee65162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee65162[] = {
+ {&(_ZTV7ee65162[4]), 4,15},
+ {&(_tg__ZTV6dd5162__7ee65162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee65162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee65162[4]), 4,6},
+ {&(_ZTV7ee65162[9]), 9,15},
+ {&(_ZTV7ee65162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee65162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee65162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65162[];
+extern VTBL_ENTRY _ZTV7ee65162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65162[];
+static VTBL_ENTRY alt_thunk_names1022[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn20_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651623barEv,_ZTv0_n16_N7ee651623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651623barEv,_ZThn20_N7ee651623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651623fooEv,_ZTv0_n12_N7ee651623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651623fooEv,_ZThn20_N7ee651623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65162 = { "ee65162", // class name
+ bases_ee65162, 4,
+ &(vtc_ee65162[0]), // expected_vtbl_contents
+ &(vtt_ee65162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65162),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 ee75162 : virtual dd5162 {
+ int e;
+ virtual void foo(); // _ZN7ee751623fooEv
+ virtual void bar(); // _ZN7ee751623barEv
+ ~ee75162(); // tgen
+ ee75162(); // tgen
+};
+//SIG(1 ee75162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75162 ::foo(){vfunc_called(this, "_ZN7ee751623fooEv");}
+void ee75162 ::bar(){vfunc_called(this, "_ZN7ee751623barEv");}
+ee75162 ::~ee75162(){ note_dtor("ee75162", this);} // tgen
+ee75162 ::ee75162(){ note_ctor("ee75162", this);} // tgen
+
+static void Test_ee75162()
+{
+ extern Class_Descriptor cd_ee75162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75162, buf);
+ ee75162 *dp, &lv = *(dp=new (buf) ee75162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee75162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee75162");
+ check_base_class_offset(lv, (cc162*)(dd5162*), ABISELECT(32,16), "ee75162");
+ check_base_class_offset(lv, (dd5162*), ABISELECT(16,8), "ee75162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75162.e");
+ test_class_info(&lv, &cd_ee75162);
+ dp->~ee75162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75162(Test_ee75162, "ee75162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75162C1Ev();
+extern void _ZN7ee75162D1Ev();
+Name_Map name_map_ee75162[] = {
+ NSPAIR(_ZN7ee75162C1Ev),
+ NSPAIR(_ZN7ee75162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd5162;
+extern VTBL_ENTRY _ZTI6dd5162[];
+extern VTBL_ENTRY _ZTV6dd5162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5162[];
+static Base_Class bases_ee75162[] = {
+ // 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_bb62, 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_cc162, 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_dd5162, 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 _ZTI7ee75162[];
+extern void _ZN7ee751623fooEv();
+extern void _ZN7ee751623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751623barEv,_ZTv0_n20_N7ee751623barEv)();
+extern void ABISELECT(_ZThn16_N7ee751623barEv,_ZThn8_N7ee751623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751623fooEv,_ZTv0_n12_N7ee751623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751623fooEv,_ZThn24_N7ee751623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751623barEv,_ZTv0_n16_N7ee751623barEv)();
+extern void ABISELECT(_ZThn48_N7ee751623barEv,_ZThn24_N7ee751623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75162[0]),
+ (VTBL_ENTRY)&_ZN7ee751623fooEv,
+ (VTBL_ENTRY)&_ZN7ee751623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751623barEv,_ZTv0_n20_N7ee751623barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751623fooEv,_ZTv0_n12_N7ee751623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751623barEv,_ZTv0_n16_N7ee751623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75162[];
+extern void _ZN6dd51623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5162__7ee75162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN6dd51623barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd5162__7ee75162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv)();
+extern void ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5162__7ee75162[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee75162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee75162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee75162[] = {
+ {&(_ZTV7ee75162[5]), 5,22},
+ {&(_ZTV7ee75162[12]), 12,22},
+ {&(_ZTV7ee75162[16]), 16,22},
+ {&(_ZTV7ee75162[20]), 20,22},
+ {&(_tg__ZTV6dd5162__7ee75162[4]), 4,5},
+ {&(_tg__ZTV5cc162__6dd5162__7ee75162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd5162__7ee75162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee75162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee75162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75162[];
+extern VTBL_ENTRY _ZTV7ee75162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75162[];
+static VTBL_ENTRY alt_thunk_names1023[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51623barEv,_ZTv0_n16_N6dd51623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51623barEv,_ZThn16_N6dd51623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751623barEv,_ZTv0_n16_N7ee751623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751623barEv,_ZThn24_N7ee751623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751623fooEv,_ZTv0_n12_N7ee751623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751623fooEv,_ZThn24_N7ee751623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751623barEv,_ZTv0_n20_N7ee751623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751623barEv,_ZThn8_N7ee751623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75162 = { "ee75162", // class name
+ bases_ee75162, 4,
+ &(vtc_ee75162[0]), // expected_vtbl_contents
+ &(vtt_ee75162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75162),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75162),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 dd6162 : cc162 {
+ int d;
+ virtual void bar(); // _ZN6dd61623barEv
+ virtual void foo(); // _ZN6dd61623fooEv
+ ~dd6162(); // tgen
+ dd6162(); // tgen
+};
+//SIG(-1 dd6162) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6162 ::bar(){vfunc_called(this, "_ZN6dd61623barEv");}
+void dd6162 ::foo(){vfunc_called(this, "_ZN6dd61623fooEv");}
+dd6162 ::~dd6162(){ note_dtor("dd6162", this);} // tgen
+dd6162 ::dd6162(){ note_ctor("dd6162", this);} // tgen
+
+static void Test_dd6162()
+{
+ extern Class_Descriptor cd_dd6162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6162, buf);
+ dd6162 *dp, &lv = *(dp=new (buf) dd6162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd6162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(16,12), "dd6162");
+ check_base_class_offset(lv, (cc162*), 0, "dd6162");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6162.d");
+ test_class_info(&lv, &cd_dd6162);
+ dp->~dd6162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6162(Test_dd6162, "dd6162", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6162C1Ev();
+extern void _ZN6dd6162D1Ev();
+Name_Map name_map_dd6162[] = {
+ NSPAIR(_ZN6dd6162C1Ev),
+ NSPAIR(_ZN6dd6162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd6162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd6162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd6162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd6162[] = {
+ {&(_ZTV6dd6162[3]), 3,11},
+ {&(_tg__ZTV5cc162__6dd6162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd6162[4]), 4,6},
+ {&(_ZTV6dd6162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static VTBL_ENTRY alt_thunk_names1024[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6162 = { "dd6162", // class name
+ bases_dd6162, 3,
+ &(vtc_dd6162[0]), // expected_vtbl_contents
+ &(vtt_dd6162[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6162),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1024,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06162 : dd6162 {
+ int e;
+ ~ee06162(); // tgen
+ ee06162(); // tgen
+};
+//SIG(1 ee06162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06162 ::~ee06162(){ note_dtor("ee06162", this);} // tgen
+ee06162 ::ee06162(){ note_ctor("ee06162", this);} // tgen
+
+static void Test_ee06162()
+{
+ extern Class_Descriptor cd_ee06162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06162, buf);
+ ee06162 *dp, &lv = *(dp=new (buf) ee06162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee06162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(24,16), "ee06162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), 0, "ee06162");
+ check_base_class_offset(lv, (dd6162*), 0, "ee06162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06162.e");
+ test_class_info(&lv, &cd_ee06162);
+ dp->~ee06162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06162(Test_ee06162, "ee06162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06162C1Ev();
+extern void _ZN7ee06162D1Ev();
+Name_Map name_map_ee06162[] = {
+ NSPAIR(_ZN7ee06162C1Ev),
+ NSPAIR(_ZN7ee06162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee06162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee06162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee06162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee06162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee06162[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee06162[] = {
+ {&(_ZTV7ee06162[3]), 3,11},
+ {&(_tg__ZTV6dd6162__7ee06162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee06162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee06162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee06162[4]), 4,6},
+ {&(_ZTV7ee06162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06162[];
+extern VTBL_ENTRY _ZTV7ee06162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06162[];
+static VTBL_ENTRY alt_thunk_names1025[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06162 = { "ee06162", // class name
+ bases_ee06162, 4,
+ &(vtc_ee06162[0]), // expected_vtbl_contents
+ &(vtt_ee06162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06162),6, //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 ee16162 : virtual dd6162 {
+ int e;
+ ~ee16162(); // tgen
+ ee16162(); // tgen
+};
+//SIG(1 ee16162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16162 ::~ee16162(){ note_dtor("ee16162", this);} // tgen
+ee16162 ::ee16162(){ note_ctor("ee16162", this);} // tgen
+
+static void Test_ee16162()
+{
+ extern Class_Descriptor cd_ee16162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16162, buf);
+ ee16162 *dp, &lv = *(dp=new (buf) ee16162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee16162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(32,20), "ee16162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), ABISELECT(16,8), "ee16162");
+ check_base_class_offset(lv, (dd6162*), ABISELECT(16,8), "ee16162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16162.e");
+ test_class_info(&lv, &cd_ee16162);
+ dp->~ee16162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16162(Test_ee16162, "ee16162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16162C1Ev();
+extern void _ZN7ee16162D1Ev();
+Name_Map name_map_ee16162[] = {
+ NSPAIR(_ZN7ee16162C1Ev),
+ NSPAIR(_ZN7ee16162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee16162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, 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 _ZTI7ee16162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16162[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee16162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee16162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee16162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee16162[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee16162[] = {
+ {&(_ZTV7ee16162[4]), 4,17},
+ {&(_ZTV7ee16162[9]), 9,17},
+ {&(_ZTV7ee16162[15]), 15,17},
+ {&(_tg__ZTV6dd6162__7ee16162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee16162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee16162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee16162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16162[];
+extern VTBL_ENTRY _ZTV7ee16162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16162[];
+static VTBL_ENTRY alt_thunk_names1026[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16162 = { "ee16162", // class name
+ bases_ee16162, 4,
+ &(vtc_ee16162[0]), // expected_vtbl_contents
+ &(vtt_ee16162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16162),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16162),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1026,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26162 : dd6162 {
+ int e;
+ virtual void foo(); // _ZN7ee261623fooEv
+ ~ee26162(); // tgen
+ ee26162(); // tgen
+};
+//SIG(1 ee26162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26162 ::foo(){vfunc_called(this, "_ZN7ee261623fooEv");}
+ee26162 ::~ee26162(){ note_dtor("ee26162", this);} // tgen
+ee26162 ::ee26162(){ note_ctor("ee26162", this);} // tgen
+
+static void Test_ee26162()
+{
+ extern Class_Descriptor cd_ee26162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26162, buf);
+ ee26162 *dp, &lv = *(dp=new (buf) ee26162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee26162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(24,16), "ee26162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), 0, "ee26162");
+ check_base_class_offset(lv, (dd6162*), 0, "ee26162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26162.e");
+ test_class_info(&lv, &cd_ee26162);
+ dp->~ee26162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26162(Test_ee26162, "ee26162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26162C1Ev();
+extern void _ZN7ee26162D1Ev();
+Name_Map name_map_ee26162[] = {
+ NSPAIR(_ZN7ee26162C1Ev),
+ NSPAIR(_ZN7ee26162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee26162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN7ee261623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261623fooEv,_ZTv0_n12_N7ee261623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261623fooEv,_ZThn16_N7ee261623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN7ee261623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261623fooEv,_ZTv0_n12_N7ee261623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee26162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee26162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee26162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee26162[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee26162[] = {
+ {&(_ZTV7ee26162[3]), 3,11},
+ {&(_tg__ZTV6dd6162__7ee26162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee26162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee26162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee26162[4]), 4,6},
+ {&(_ZTV7ee26162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26162[];
+extern VTBL_ENTRY _ZTV7ee26162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26162[];
+static VTBL_ENTRY alt_thunk_names1027[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261623fooEv,_ZTv0_n12_N7ee261623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261623fooEv,_ZThn16_N7ee261623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26162 = { "ee26162", // class name
+ bases_ee26162, 4,
+ &(vtc_ee26162[0]), // expected_vtbl_contents
+ &(vtt_ee26162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26162),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 ee36162 : virtual dd6162 {
+ int e;
+ virtual void foo(); // _ZN7ee361623fooEv
+ ~ee36162(); // tgen
+ ee36162(); // tgen
+};
+//SIG(1 ee36162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36162 ::foo(){vfunc_called(this, "_ZN7ee361623fooEv");}
+ee36162 ::~ee36162(){ note_dtor("ee36162", this);} // tgen
+ee36162 ::ee36162(){ note_ctor("ee36162", this);} // tgen
+
+static void Test_ee36162()
+{
+ extern Class_Descriptor cd_ee36162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36162, buf);
+ ee36162 *dp, &lv = *(dp=new (buf) ee36162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee36162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(32,20), "ee36162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), ABISELECT(16,8), "ee36162");
+ check_base_class_offset(lv, (dd6162*), ABISELECT(16,8), "ee36162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36162.e");
+ test_class_info(&lv, &cd_ee36162);
+ dp->~ee36162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36162(Test_ee36162, "ee36162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36162C1Ev();
+extern void _ZN7ee36162D1Ev();
+Name_Map name_map_ee36162[] = {
+ NSPAIR(_ZN7ee36162C1Ev),
+ NSPAIR(_ZN7ee36162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee36162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, ABISELECT(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 _ZTI7ee36162[];
+extern void _ZN7ee361623fooEv();
+extern void _ZN6dd61623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361623fooEv,_ZTv0_n20_N7ee361623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361623fooEv,_ZThn8_N7ee361623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361623fooEv,_ZTv0_n12_N7ee361623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361623fooEv,_ZThn20_N7ee361623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36162[0]),
+ (VTBL_ENTRY)&_ZN7ee361623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361623fooEv,_ZTv0_n20_N7ee361623fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361623fooEv,_ZTv0_n12_N7ee361623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee36162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee36162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee36162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee36162[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee36162[] = {
+ {&(_ZTV7ee36162[4]), 4,18},
+ {&(_ZTV7ee36162[10]), 10,18},
+ {&(_ZTV7ee36162[16]), 16,18},
+ {&(_tg__ZTV6dd6162__7ee36162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee36162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee36162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee36162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36162[];
+extern VTBL_ENTRY _ZTV7ee36162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36162[];
+static VTBL_ENTRY alt_thunk_names1028[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361623fooEv,_ZTv0_n12_N7ee361623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361623fooEv,_ZThn20_N7ee361623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361623fooEv,_ZTv0_n20_N7ee361623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361623fooEv,_ZThn8_N7ee361623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36162 = { "ee36162", // class name
+ bases_ee36162, 4,
+ &(vtc_ee36162[0]), // expected_vtbl_contents
+ &(vtt_ee36162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36162),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36162),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 ee46162 : dd6162 {
+ int e;
+ virtual void bar(); // _ZN7ee461623barEv
+ ~ee46162(); // tgen
+ ee46162(); // tgen
+};
+//SIG(1 ee46162) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46162 ::bar(){vfunc_called(this, "_ZN7ee461623barEv");}
+ee46162 ::~ee46162(){ note_dtor("ee46162", this);} // tgen
+ee46162 ::ee46162(){ note_ctor("ee46162", this);} // tgen
+
+static void Test_ee46162()
+{
+ extern Class_Descriptor cd_ee46162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46162, buf);
+ ee46162 *dp, &lv = *(dp=new (buf) ee46162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee46162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(24,16), "ee46162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), 0, "ee46162");
+ check_base_class_offset(lv, (dd6162*), 0, "ee46162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46162.e");
+ test_class_info(&lv, &cd_ee46162);
+ dp->~ee46162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46162(Test_ee46162, "ee46162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46162C1Ev();
+extern void _ZN7ee46162D1Ev();
+Name_Map name_map_ee46162[] = {
+ NSPAIR(_ZN7ee46162C1Ev),
+ NSPAIR(_ZN7ee46162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee46162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46162[];
+extern void _ZN7ee461623barEv();
+extern void _ZN6dd61623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee461623barEv,_ZTv0_n16_N7ee461623barEv)();
+extern void ABISELECT(_ZThn24_N7ee461623barEv,_ZThn16_N7ee461623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46162[0]),
+ (VTBL_ENTRY)&_ZN7ee461623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461623barEv,_ZTv0_n16_N7ee461623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee46162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee46162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee46162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee46162[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee46162[] = {
+ {&(_ZTV7ee46162[3]), 3,11},
+ {&(_tg__ZTV6dd6162__7ee46162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee46162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee46162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee46162[4]), 4,6},
+ {&(_ZTV7ee46162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46162[];
+extern VTBL_ENTRY _ZTV7ee46162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46162[];
+static VTBL_ENTRY alt_thunk_names1029[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461623barEv,_ZTv0_n16_N7ee461623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461623barEv,_ZThn16_N7ee461623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46162 = { "ee46162", // class name
+ bases_ee46162, 4,
+ &(vtc_ee46162[0]), // expected_vtbl_contents
+ &(vtt_ee46162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46162),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 ee56162 : virtual dd6162 {
+ int e;
+ virtual void bar(); // _ZN7ee561623barEv
+ ~ee56162(); // tgen
+ ee56162(); // tgen
+};
+//SIG(1 ee56162) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56162 ::bar(){vfunc_called(this, "_ZN7ee561623barEv");}
+ee56162 ::~ee56162(){ note_dtor("ee56162", this);} // tgen
+ee56162 ::ee56162(){ note_ctor("ee56162", this);} // tgen
+
+static void Test_ee56162()
+{
+ extern Class_Descriptor cd_ee56162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56162, buf);
+ ee56162 *dp, &lv = *(dp=new (buf) ee56162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee56162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(32,20), "ee56162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), ABISELECT(16,8), "ee56162");
+ check_base_class_offset(lv, (dd6162*), ABISELECT(16,8), "ee56162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56162.e");
+ test_class_info(&lv, &cd_ee56162);
+ dp->~ee56162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56162(Test_ee56162, "ee56162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56162C1Ev();
+extern void _ZN7ee56162D1Ev();
+Name_Map name_map_ee56162[] = {
+ NSPAIR(_ZN7ee56162C1Ev),
+ NSPAIR(_ZN7ee56162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee56162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, ABISELECT(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 _ZTI7ee56162[];
+extern void _ZN7ee561623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561623barEv,_ZTv0_n16_N7ee561623barEv)();
+extern void ABISELECT(_ZThn16_N7ee561623barEv,_ZThn8_N7ee561623barEv)() __attribute__((weak));
+extern void _ZN6dd61623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee561623barEv,_ZTv0_n16_N7ee561623barEv)();
+extern void ABISELECT(_ZThn32_N7ee561623barEv,_ZThn20_N7ee561623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56162[0]),
+ (VTBL_ENTRY)&_ZN7ee561623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561623barEv,_ZTv0_n16_N7ee561623barEv),
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561623barEv,_ZTv0_n16_N7ee561623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee56162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee56162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee56162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee56162[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee56162[] = {
+ {&(_ZTV7ee56162[4]), 4,18},
+ {&(_ZTV7ee56162[10]), 10,18},
+ {&(_ZTV7ee56162[16]), 16,18},
+ {&(_tg__ZTV6dd6162__7ee56162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee56162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee56162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee56162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56162[];
+extern VTBL_ENTRY _ZTV7ee56162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56162[];
+static VTBL_ENTRY alt_thunk_names1030[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561623barEv,_ZTv0_n16_N7ee561623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561623barEv,_ZThn20_N7ee561623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561623barEv,_ZThn8_N7ee561623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56162 = { "ee56162", // class name
+ bases_ee56162, 4,
+ &(vtc_ee56162[0]), // expected_vtbl_contents
+ &(vtt_ee56162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56162),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56162),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 ee66162 : dd6162 {
+ int e;
+ virtual void foo(); // _ZN7ee661623fooEv
+ virtual void bar(); // _ZN7ee661623barEv
+ ~ee66162(); // tgen
+ ee66162(); // tgen
+};
+//SIG(1 ee66162) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66162 ::foo(){vfunc_called(this, "_ZN7ee661623fooEv");}
+void ee66162 ::bar(){vfunc_called(this, "_ZN7ee661623barEv");}
+ee66162 ::~ee66162(){ note_dtor("ee66162", this);} // tgen
+ee66162 ::ee66162(){ note_ctor("ee66162", this);} // tgen
+
+static void Test_ee66162()
+{
+ extern Class_Descriptor cd_ee66162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66162, buf);
+ ee66162 *dp, &lv = *(dp=new (buf) ee66162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee66162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(24,16), "ee66162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), 0, "ee66162");
+ check_base_class_offset(lv, (dd6162*), 0, "ee66162");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66162.e");
+ test_class_info(&lv, &cd_ee66162);
+ dp->~ee66162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66162(Test_ee66162, "ee66162", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66162C1Ev();
+extern void _ZN7ee66162D1Ev();
+Name_Map name_map_ee66162[] = {
+ NSPAIR(_ZN7ee66162C1Ev),
+ NSPAIR(_ZN7ee66162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee66162[] = {
+ // 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_bb62, 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_cc162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66162[];
+extern void _ZN7ee661623barEv();
+extern void _ZN7ee661623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661623fooEv,_ZTv0_n12_N7ee661623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661623fooEv,_ZThn16_N7ee661623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661623barEv,_ZTv0_n16_N7ee661623barEv)();
+extern void ABISELECT(_ZThn24_N7ee661623barEv,_ZThn16_N7ee661623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66162[0]),
+ (VTBL_ENTRY)&_ZN7ee661623barEv,
+ (VTBL_ENTRY)&_ZN7ee661623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661623fooEv,_ZTv0_n12_N7ee661623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661623barEv,_ZTv0_n16_N7ee661623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee66162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee66162[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee66162[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee66162[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee66162[] = {
+ {&(_ZTV7ee66162[3]), 3,11},
+ {&(_tg__ZTV6dd6162__7ee66162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee66162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee66162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee66162[4]), 4,6},
+ {&(_ZTV7ee66162[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66162[];
+extern VTBL_ENTRY _ZTV7ee66162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66162[];
+static VTBL_ENTRY alt_thunk_names1031[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623barEv,_ZThn16_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61623fooEv,_ZThn16_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661623barEv,_ZTv0_n16_N7ee661623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661623barEv,_ZThn16_N7ee661623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661623fooEv,_ZTv0_n12_N7ee661623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661623fooEv,_ZThn16_N7ee661623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66162 = { "ee66162", // class name
+ bases_ee66162, 4,
+ &(vtc_ee66162[0]), // expected_vtbl_contents
+ &(vtt_ee66162[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66162),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66162),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 ee76162 : virtual dd6162 {
+ int e;
+ virtual void foo(); // _ZN7ee761623fooEv
+ virtual void bar(); // _ZN7ee761623barEv
+ ~ee76162(); // tgen
+ ee76162(); // tgen
+};
+//SIG(1 ee76162) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76162 ::foo(){vfunc_called(this, "_ZN7ee761623fooEv");}
+void ee76162 ::bar(){vfunc_called(this, "_ZN7ee761623barEv");}
+ee76162 ::~ee76162(){ note_dtor("ee76162", this);} // tgen
+ee76162 ::ee76162(){ note_ctor("ee76162", this);} // tgen
+
+static void Test_ee76162()
+{
+ extern Class_Descriptor cd_ee76162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76162, buf);
+ ee76162 *dp, &lv = *(dp=new (buf) ee76162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee76162");
+ check_base_class_offset(lv, (bb62*)(cc162*)(dd6162*), ABISELECT(32,20), "ee76162");
+ check_base_class_offset(lv, (cc162*)(dd6162*), ABISELECT(16,8), "ee76162");
+ check_base_class_offset(lv, (dd6162*), ABISELECT(16,8), "ee76162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76162.e");
+ test_class_info(&lv, &cd_ee76162);
+ dp->~ee76162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76162(Test_ee76162, "ee76162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76162C1Ev();
+extern void _ZN7ee76162D1Ev();
+Name_Map name_map_ee76162[] = {
+ NSPAIR(_ZN7ee76162C1Ev),
+ NSPAIR(_ZN7ee76162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd6162;
+extern VTBL_ENTRY _ZTI6dd6162[];
+extern VTBL_ENTRY _ZTV6dd6162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6162[];
+static Base_Class bases_ee76162[] = {
+ // 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_bb62, 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_cc162, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6162, ABISELECT(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 _ZTI7ee76162[];
+extern void _ZN7ee761623fooEv();
+extern void _ZN7ee761623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761623barEv,_ZTv0_n16_N7ee761623barEv)();
+extern void ABISELECT(_ZThn16_N7ee761623barEv,_ZThn8_N7ee761623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761623fooEv,_ZTv0_n20_N7ee761623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761623fooEv,_ZThn8_N7ee761623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761623fooEv,_ZTv0_n12_N7ee761623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761623fooEv,_ZThn20_N7ee761623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761623barEv,_ZTv0_n16_N7ee761623barEv)();
+extern void ABISELECT(_ZThn32_N7ee761623barEv,_ZThn20_N7ee761623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76162[0]),
+ (VTBL_ENTRY)&_ZN7ee761623fooEv,
+ (VTBL_ENTRY)&_ZN7ee761623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761623barEv,_ZTv0_n16_N7ee761623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761623fooEv,_ZTv0_n20_N7ee761623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761623fooEv,_ZTv0_n12_N7ee761623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761623barEv,_ZTv0_n16_N7ee761623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76162[];
+extern void _ZN6dd61623barEv();
+extern void _ZN6dd61623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6162__7ee76162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&_ZN6dd61623barEv,
+ (VTBL_ENTRY)&_ZN6dd61623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1626dd6162__7ee76162[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc1626dd6162__7ee76162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv)();
+extern void ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6162__7ee76162[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv),
+};
+static VTT_ENTRY vtt_ee76162[] = {
+ {&(_ZTV7ee76162[4]), 4,19},
+ {&(_ZTV7ee76162[11]), 11,19},
+ {&(_ZTV7ee76162[17]), 17,19},
+ {&(_tg__ZTV6dd6162__7ee76162[3]), 3,5},
+ {&(_tg__ZTV5cc1626dd6162__7ee76162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc1626dd6162__7ee76162[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6162__7ee76162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76162[];
+extern VTBL_ENTRY _ZTV7ee76162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76162[];
+static VTBL_ENTRY alt_thunk_names1032[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61623barEv,_ZTv0_n16_N6dd61623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623barEv,_ZThn12_N6dd61623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61623fooEv,_ZTv0_n12_N6dd61623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61623fooEv,_ZThn12_N6dd61623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761623fooEv,_ZTv0_n12_N7ee761623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761623fooEv,_ZThn20_N7ee761623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761623fooEv,_ZTv0_n20_N7ee761623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761623fooEv,_ZThn8_N7ee761623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761623barEv,_ZTv0_n16_N7ee761623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761623barEv,_ZThn20_N7ee761623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761623barEv,_ZThn8_N7ee761623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76162 = { "ee76162", // class name
+ bases_ee76162, 4,
+ &(vtc_ee76162[0]), // expected_vtbl_contents
+ &(vtt_ee76162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76162),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76162),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 dd7162 : virtual cc162 {
+ int d;
+ virtual void bar(); // _ZN6dd71623barEv
+ virtual void foo(); // _ZN6dd71623fooEv
+ ~dd7162(); // tgen
+ dd7162(); // tgen
+};
+//SIG(-1 dd7162) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7162 ::bar(){vfunc_called(this, "_ZN6dd71623barEv");}
+void dd7162 ::foo(){vfunc_called(this, "_ZN6dd71623fooEv");}
+dd7162 ::~dd7162(){ note_dtor("dd7162", this);} // tgen
+dd7162 ::dd7162(){ note_ctor("dd7162", this);} // tgen
+
+static void Test_dd7162()
+{
+ extern Class_Descriptor cd_dd7162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7162, buf);
+ dd7162 *dp, &lv = *(dp=new (buf) dd7162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd7162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,16), "dd7162");
+ check_base_class_offset(lv, (cc162*), ABISELECT(16,8), "dd7162");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7162.d");
+ test_class_info(&lv, &cd_dd7162);
+ dp->~dd7162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7162(Test_dd7162, "dd7162", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7162C1Ev();
+extern void _ZN6dd7162D1Ev();
+Name_Map name_map_dd7162[] = {
+ NSPAIR(_ZN6dd7162C1Ev),
+ NSPAIR(_ZN6dd7162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+static Base_Class bases_dd7162[] = {
+ // 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_bb62, 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_cc162, 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 _ZTI6dd7162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7162[];
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__6dd7162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd7162[] = {
+ {&(_ZTV6dd7162[4]), 4,15},
+ {&(_ZTV6dd7162[9]), 9,15},
+ {&(_ZTV6dd7162[13]), 13,15},
+ {&(_tg__ZTV5cc162__6dd7162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__6dd7162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static VTBL_ENTRY alt_thunk_names1033[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7162 = { "dd7162", // class name
+ bases_dd7162, 3,
+ &(vtc_dd7162[0]), // expected_vtbl_contents
+ &(vtt_dd7162[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7162),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1033,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07162 : dd7162 {
+ int e;
+ ~ee07162(); // tgen
+ ee07162(); // tgen
+};
+//SIG(1 ee07162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07162 ::~ee07162(){ note_dtor("ee07162", this);} // tgen
+ee07162 ::ee07162(){ note_ctor("ee07162", this);} // tgen
+
+static void Test_ee07162()
+{
+ extern Class_Descriptor cd_ee07162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07162, buf);
+ ee07162 *dp, &lv = *(dp=new (buf) ee07162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee07162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee07162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(16,12), "ee07162");
+ check_base_class_offset(lv, (dd7162*), 0, "ee07162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07162.e");
+ test_class_info(&lv, &cd_ee07162);
+ dp->~ee07162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07162(Test_ee07162, "ee07162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07162C1Ev();
+extern void _ZN7ee07162D1Ev();
+Name_Map name_map_ee07162[] = {
+ NSPAIR(_ZN7ee07162C1Ev),
+ NSPAIR(_ZN7ee07162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee07162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee07162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee07162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee07162[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee07162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee07162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee07162[] = {
+ {&(_ZTV7ee07162[4]), 4,15},
+ {&(_tg__ZTV6dd7162__7ee07162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee07162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee07162[4]), 4,6},
+ {&(_ZTV7ee07162[9]), 9,15},
+ {&(_ZTV7ee07162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee07162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee07162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07162[];
+extern VTBL_ENTRY _ZTV7ee07162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07162[];
+static VTBL_ENTRY alt_thunk_names1034[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07162 = { "ee07162", // class name
+ bases_ee07162, 4,
+ &(vtc_ee07162[0]), // expected_vtbl_contents
+ &(vtt_ee07162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07162),8, //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 ee17162 : virtual dd7162 {
+ int e;
+ ~ee17162(); // tgen
+ ee17162(); // tgen
+};
+//SIG(1 ee17162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17162 ::~ee17162(){ note_dtor("ee17162", this);} // tgen
+ee17162 ::ee17162(){ note_ctor("ee17162", this);} // tgen
+
+static void Test_ee17162()
+{
+ extern Class_Descriptor cd_ee17162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17162, buf);
+ ee17162 *dp, &lv = *(dp=new (buf) ee17162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee17162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee17162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(32,16), "ee17162");
+ check_base_class_offset(lv, (dd7162*), ABISELECT(16,8), "ee17162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17162.e");
+ test_class_info(&lv, &cd_ee17162);
+ dp->~ee17162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17162(Test_ee17162, "ee17162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17162C1Ev();
+extern void _ZN7ee17162D1Ev();
+Name_Map name_map_ee17162[] = {
+ NSPAIR(_ZN7ee17162C1Ev),
+ NSPAIR(_ZN7ee17162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee17162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 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 _ZTI7ee17162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17162[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17162[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee17162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee17162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee17162[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee17162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee17162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee17162[] = {
+ {&(_ZTV7ee17162[5]), 5,22},
+ {&(_ZTV7ee17162[11]), 11,22},
+ {&(_ZTV7ee17162[16]), 16,22},
+ {&(_ZTV7ee17162[20]), 20,22},
+ {&(_tg__ZTV6dd7162__7ee17162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee17162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee17162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee17162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee17162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17162[];
+extern VTBL_ENTRY _ZTV7ee17162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17162[];
+static VTBL_ENTRY alt_thunk_names1035[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17162 = { "ee17162", // class name
+ bases_ee17162, 4,
+ &(vtc_ee17162[0]), // expected_vtbl_contents
+ &(vtt_ee17162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17162),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17162),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1035,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27162 : dd7162 {
+ int e;
+ virtual void foo(); // _ZN7ee271623fooEv
+ ~ee27162(); // tgen
+ ee27162(); // tgen
+};
+//SIG(1 ee27162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27162 ::foo(){vfunc_called(this, "_ZN7ee271623fooEv");}
+ee27162 ::~ee27162(){ note_dtor("ee27162", this);} // tgen
+ee27162 ::ee27162(){ note_ctor("ee27162", this);} // tgen
+
+static void Test_ee27162()
+{
+ extern Class_Descriptor cd_ee27162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27162, buf);
+ ee27162 *dp, &lv = *(dp=new (buf) ee27162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee27162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee27162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(16,12), "ee27162");
+ check_base_class_offset(lv, (dd7162*), 0, "ee27162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27162.e");
+ test_class_info(&lv, &cd_ee27162);
+ dp->~ee27162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27162(Test_ee27162, "ee27162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27162C1Ev();
+extern void _ZN7ee27162D1Ev();
+Name_Map name_map_ee27162[] = {
+ NSPAIR(_ZN7ee27162C1Ev),
+ NSPAIR(_ZN7ee27162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee27162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN7ee271623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271623fooEv,_ZTv0_n12_N7ee271623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271623fooEv,_ZThn20_N7ee271623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN7ee271623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271623fooEv,_ZTv0_n12_N7ee271623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee27162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee27162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee27162[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee27162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee27162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee27162[] = {
+ {&(_ZTV7ee27162[4]), 4,15},
+ {&(_tg__ZTV6dd7162__7ee27162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee27162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee27162[4]), 4,6},
+ {&(_ZTV7ee27162[9]), 9,15},
+ {&(_ZTV7ee27162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee27162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee27162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27162[];
+extern VTBL_ENTRY _ZTV7ee27162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27162[];
+static VTBL_ENTRY alt_thunk_names1036[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271623fooEv,_ZTv0_n12_N7ee271623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271623fooEv,_ZThn20_N7ee271623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27162 = { "ee27162", // class name
+ bases_ee27162, 4,
+ &(vtc_ee27162[0]), // expected_vtbl_contents
+ &(vtt_ee27162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27162),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 ee37162 : virtual dd7162 {
+ int e;
+ virtual void foo(); // _ZN7ee371623fooEv
+ ~ee37162(); // tgen
+ ee37162(); // tgen
+};
+//SIG(1 ee37162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37162 ::foo(){vfunc_called(this, "_ZN7ee371623fooEv");}
+ee37162 ::~ee37162(){ note_dtor("ee37162", this);} // tgen
+ee37162 ::ee37162(){ note_ctor("ee37162", this);} // tgen
+
+static void Test_ee37162()
+{
+ extern Class_Descriptor cd_ee37162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37162, buf);
+ ee37162 *dp, &lv = *(dp=new (buf) ee37162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee37162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee37162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(32,16), "ee37162");
+ check_base_class_offset(lv, (dd7162*), ABISELECT(16,8), "ee37162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37162.e");
+ test_class_info(&lv, &cd_ee37162);
+ dp->~ee37162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37162(Test_ee37162, "ee37162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37162C1Ev();
+extern void _ZN7ee37162D1Ev();
+Name_Map name_map_ee37162[] = {
+ NSPAIR(_ZN7ee37162C1Ev),
+ NSPAIR(_ZN7ee37162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee37162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 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 _ZTI7ee37162[];
+extern void _ZN7ee371623fooEv();
+extern void _ZN6dd71623barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371623fooEv,_ZTv0_n24_N7ee371623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371623fooEv,_ZThn8_N7ee371623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371623fooEv,_ZTv0_n12_N7ee371623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371623fooEv,_ZThn24_N7ee371623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37162[0]),
+ (VTBL_ENTRY)&_ZN7ee371623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371623fooEv,_ZTv0_n24_N7ee371623fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37162[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371623fooEv,_ZTv0_n12_N7ee371623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee37162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee37162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee37162[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee37162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee37162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee37162[] = {
+ {&(_ZTV7ee37162[5]), 5,23},
+ {&(_ZTV7ee37162[12]), 12,23},
+ {&(_ZTV7ee37162[17]), 17,23},
+ {&(_ZTV7ee37162[21]), 21,23},
+ {&(_tg__ZTV6dd7162__7ee37162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee37162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee37162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee37162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee37162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37162[];
+extern VTBL_ENTRY _ZTV7ee37162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37162[];
+static VTBL_ENTRY alt_thunk_names1037[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371623fooEv,_ZTv0_n12_N7ee371623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371623fooEv,_ZThn24_N7ee371623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371623fooEv,_ZTv0_n24_N7ee371623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371623fooEv,_ZThn8_N7ee371623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37162 = { "ee37162", // class name
+ bases_ee37162, 4,
+ &(vtc_ee37162[0]), // expected_vtbl_contents
+ &(vtt_ee37162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37162),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37162),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 ee47162 : dd7162 {
+ int e;
+ virtual void bar(); // _ZN7ee471623barEv
+ ~ee47162(); // tgen
+ ee47162(); // tgen
+};
+//SIG(1 ee47162) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47162 ::bar(){vfunc_called(this, "_ZN7ee471623barEv");}
+ee47162 ::~ee47162(){ note_dtor("ee47162", this);} // tgen
+ee47162 ::ee47162(){ note_ctor("ee47162", this);} // tgen
+
+static void Test_ee47162()
+{
+ extern Class_Descriptor cd_ee47162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47162, buf);
+ ee47162 *dp, &lv = *(dp=new (buf) ee47162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee47162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee47162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(16,12), "ee47162");
+ check_base_class_offset(lv, (dd7162*), 0, "ee47162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47162.e");
+ test_class_info(&lv, &cd_ee47162);
+ dp->~ee47162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47162(Test_ee47162, "ee47162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47162C1Ev();
+extern void _ZN7ee47162D1Ev();
+Name_Map name_map_ee47162[] = {
+ NSPAIR(_ZN7ee47162C1Ev),
+ NSPAIR(_ZN7ee47162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee47162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47162[];
+extern void _ZN7ee471623barEv();
+extern void _ZN6dd71623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee471623barEv,_ZTv0_n16_N7ee471623barEv)();
+extern void ABISELECT(_ZThn32_N7ee471623barEv,_ZThn20_N7ee471623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47162[0]),
+ (VTBL_ENTRY)&_ZN7ee471623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471623barEv,_ZTv0_n16_N7ee471623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee47162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee47162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee47162[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee47162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee47162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee47162[] = {
+ {&(_ZTV7ee47162[4]), 4,15},
+ {&(_tg__ZTV6dd7162__7ee47162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee47162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee47162[4]), 4,6},
+ {&(_ZTV7ee47162[9]), 9,15},
+ {&(_ZTV7ee47162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee47162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee47162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47162[];
+extern VTBL_ENTRY _ZTV7ee47162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47162[];
+static VTBL_ENTRY alt_thunk_names1038[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471623barEv,_ZTv0_n16_N7ee471623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471623barEv,_ZThn20_N7ee471623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47162 = { "ee47162", // class name
+ bases_ee47162, 4,
+ &(vtc_ee47162[0]), // expected_vtbl_contents
+ &(vtt_ee47162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47162),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 ee57162 : virtual dd7162 {
+ int e;
+ virtual void bar(); // _ZN7ee571623barEv
+ ~ee57162(); // tgen
+ ee57162(); // tgen
+};
+//SIG(1 ee57162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57162 ::bar(){vfunc_called(this, "_ZN7ee571623barEv");}
+ee57162 ::~ee57162(){ note_dtor("ee57162", this);} // tgen
+ee57162 ::ee57162(){ note_ctor("ee57162", this);} // tgen
+
+static void Test_ee57162()
+{
+ extern Class_Descriptor cd_ee57162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57162, buf);
+ ee57162 *dp, &lv = *(dp=new (buf) ee57162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee57162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee57162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(32,16), "ee57162");
+ check_base_class_offset(lv, (dd7162*), ABISELECT(16,8), "ee57162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57162.e");
+ test_class_info(&lv, &cd_ee57162);
+ dp->~ee57162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57162(Test_ee57162, "ee57162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57162C1Ev();
+extern void _ZN7ee57162D1Ev();
+Name_Map name_map_ee57162[] = {
+ NSPAIR(_ZN7ee57162C1Ev),
+ NSPAIR(_ZN7ee57162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee57162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 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 _ZTI7ee57162[];
+extern void _ZN7ee571623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571623barEv,_ZTv0_n20_N7ee571623barEv)();
+extern void ABISELECT(_ZThn16_N7ee571623barEv,_ZThn8_N7ee571623barEv)() __attribute__((weak));
+extern void _ZN6dd71623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee571623barEv,_ZTv0_n16_N7ee571623barEv)();
+extern void ABISELECT(_ZThn48_N7ee571623barEv,_ZThn24_N7ee571623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57162[0]),
+ (VTBL_ENTRY)&_ZN7ee571623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571623barEv,_ZTv0_n20_N7ee571623barEv),
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571623barEv,_ZTv0_n16_N7ee571623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee57162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee57162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee57162[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee57162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee57162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee57162[] = {
+ {&(_ZTV7ee57162[5]), 5,23},
+ {&(_ZTV7ee57162[12]), 12,23},
+ {&(_ZTV7ee57162[17]), 17,23},
+ {&(_ZTV7ee57162[21]), 21,23},
+ {&(_tg__ZTV6dd7162__7ee57162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee57162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee57162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee57162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee57162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57162[];
+extern VTBL_ENTRY _ZTV7ee57162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57162[];
+static VTBL_ENTRY alt_thunk_names1039[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571623barEv,_ZTv0_n16_N7ee571623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571623barEv,_ZThn24_N7ee571623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571623barEv,_ZTv0_n20_N7ee571623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571623barEv,_ZThn8_N7ee571623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57162 = { "ee57162", // class name
+ bases_ee57162, 4,
+ &(vtc_ee57162[0]), // expected_vtbl_contents
+ &(vtt_ee57162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57162),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57162),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 ee67162 : dd7162 {
+ int e;
+ virtual void foo(); // _ZN7ee671623fooEv
+ virtual void bar(); // _ZN7ee671623barEv
+ ~ee67162(); // tgen
+ ee67162(); // tgen
+};
+//SIG(1 ee67162) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67162 ::foo(){vfunc_called(this, "_ZN7ee671623fooEv");}
+void ee67162 ::bar(){vfunc_called(this, "_ZN7ee671623barEv");}
+ee67162 ::~ee67162(){ note_dtor("ee67162", this);} // tgen
+ee67162 ::ee67162(){ note_ctor("ee67162", this);} // tgen
+
+static void Test_ee67162()
+{
+ extern Class_Descriptor cd_ee67162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67162, buf);
+ ee67162 *dp, &lv = *(dp=new (buf) ee67162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee67162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(32,20), "ee67162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(16,12), "ee67162");
+ check_base_class_offset(lv, (dd7162*), 0, "ee67162");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67162.e");
+ test_class_info(&lv, &cd_ee67162);
+ dp->~ee67162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67162(Test_ee67162, "ee67162", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67162C1Ev();
+extern void _ZN7ee67162D1Ev();
+Name_Map name_map_ee67162[] = {
+ NSPAIR(_ZN7ee67162C1Ev),
+ NSPAIR(_ZN7ee67162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee67162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67162[];
+extern void _ZN7ee671623barEv();
+extern void _ZN7ee671623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671623fooEv,_ZTv0_n12_N7ee671623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671623fooEv,_ZThn20_N7ee671623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671623barEv,_ZTv0_n16_N7ee671623barEv)();
+extern void ABISELECT(_ZThn32_N7ee671623barEv,_ZThn20_N7ee671623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67162[0]),
+ (VTBL_ENTRY)&_ZN7ee671623barEv,
+ (VTBL_ENTRY)&_ZN7ee671623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67162[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671623fooEv,_ZTv0_n12_N7ee671623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671623barEv,_ZTv0_n16_N7ee671623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee67162[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee67162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee67162[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee67162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee67162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee67162[] = {
+ {&(_ZTV7ee67162[4]), 4,15},
+ {&(_tg__ZTV6dd7162__7ee67162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee67162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee67162[4]), 4,6},
+ {&(_ZTV7ee67162[9]), 9,15},
+ {&(_ZTV7ee67162[13]), 13,15},
+ {&(_tg__ZTV5cc162__7ee67162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee67162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67162[];
+extern VTBL_ENTRY _ZTV7ee67162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67162[];
+static VTBL_ENTRY alt_thunk_names1040[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn20_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn20_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671623barEv,_ZTv0_n16_N7ee671623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671623barEv,_ZThn20_N7ee671623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671623fooEv,_ZTv0_n12_N7ee671623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671623fooEv,_ZThn20_N7ee671623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67162 = { "ee67162", // class name
+ bases_ee67162, 4,
+ &(vtc_ee67162[0]), // expected_vtbl_contents
+ &(vtt_ee67162[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67162),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67162),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67162),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 ee77162 : virtual dd7162 {
+ int e;
+ virtual void foo(); // _ZN7ee771623fooEv
+ virtual void bar(); // _ZN7ee771623barEv
+ ~ee77162(); // tgen
+ ee77162(); // tgen
+};
+//SIG(1 ee77162) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77162 ::foo(){vfunc_called(this, "_ZN7ee771623fooEv");}
+void ee77162 ::bar(){vfunc_called(this, "_ZN7ee771623barEv");}
+ee77162 ::~ee77162(){ note_dtor("ee77162", this);} // tgen
+ee77162 ::ee77162(){ note_ctor("ee77162", this);} // tgen
+
+static void Test_ee77162()
+{
+ extern Class_Descriptor cd_ee77162;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77162, buf);
+ ee77162 *dp, &lv = *(dp=new (buf) ee77162());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77162)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77162)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee77162");
+ check_base_class_offset(lv, (bb62*)(cc162*), ABISELECT(48,24), "ee77162");
+ check_base_class_offset(lv, (cc162*)(dd7162*), ABISELECT(32,16), "ee77162");
+ check_base_class_offset(lv, (dd7162*), ABISELECT(16,8), "ee77162");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77162.e");
+ test_class_info(&lv, &cd_ee77162);
+ dp->~ee77162();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77162(Test_ee77162, "ee77162", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77162C1Ev();
+extern void _ZN7ee77162D1Ev();
+Name_Map name_map_ee77162[] = {
+ NSPAIR(_ZN7ee77162C1Ev),
+ NSPAIR(_ZN7ee77162D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc162;
+extern VTBL_ENTRY _ZTI5cc162[];
+extern VTBL_ENTRY _ZTV5cc162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc162[];
+extern Class_Descriptor cd_dd7162;
+extern VTBL_ENTRY _ZTI6dd7162[];
+extern VTBL_ENTRY _ZTV6dd7162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7162[];
+static Base_Class bases_ee77162[] = {
+ // 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_bb62, 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_cc162, 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_dd7162, 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 _ZTI7ee77162[];
+extern void _ZN7ee771623fooEv();
+extern void _ZN7ee771623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771623barEv,_ZTv0_n20_N7ee771623barEv)();
+extern void ABISELECT(_ZThn16_N7ee771623barEv,_ZThn8_N7ee771623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771623fooEv,_ZTv0_n24_N7ee771623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771623fooEv,_ZThn8_N7ee771623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771623fooEv,_ZTv0_n12_N7ee771623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771623fooEv,_ZThn24_N7ee771623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771623barEv,_ZTv0_n16_N7ee771623barEv)();
+extern void ABISELECT(_ZThn48_N7ee771623barEv,_ZThn24_N7ee771623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77162[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77162[0]),
+ (VTBL_ENTRY)&_ZN7ee771623fooEv,
+ (VTBL_ENTRY)&_ZN7ee771623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771623barEv,_ZTv0_n20_N7ee771623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771623fooEv,_ZTv0_n24_N7ee771623fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77162[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771623fooEv,_ZTv0_n12_N7ee771623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771623barEv,_ZTv0_n16_N7ee771623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77162[];
+extern void _ZN6dd71623barEv();
+extern void _ZN6dd71623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7162__7ee77162[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&_ZN6dd71623barEv,
+ (VTBL_ENTRY)&_ZN6dd71623fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc162__6dd7162__7ee77162[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv)();
+extern void ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7162__7ee77162[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7162[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc162__7ee77162[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc162__7ee77162[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc162[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee77162[] = {
+ {&(_ZTV7ee77162[5]), 5,24},
+ {&(_ZTV7ee77162[13]), 13,24},
+ {&(_ZTV7ee77162[18]), 18,24},
+ {&(_ZTV7ee77162[22]), 22,24},
+ {&(_tg__ZTV6dd7162__7ee77162[4]), 4,6},
+ {&(_tg__ZTV5cc162__6dd7162__7ee77162[3]), 3,3},
+ {&(_tg__ZTV4bb62__6dd7162__7ee77162[4]), 4,6},
+ {&(_tg__ZTV5cc162__7ee77162[3]), 3,3},
+ {&(_tg__ZTV4bb62__5cc162__7ee77162[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77162[];
+extern VTBL_ENTRY _ZTV7ee77162[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77162[];
+static VTBL_ENTRY alt_thunk_names1041[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71623barEv,_ZTv0_n16_N6dd71623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623barEv,_ZThn16_N6dd71623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71623fooEv,_ZTv0_n12_N6dd71623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71623fooEv,_ZThn16_N6dd71623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771623barEv,_ZTv0_n16_N7ee771623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771623barEv,_ZThn24_N7ee771623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771623fooEv,_ZTv0_n12_N7ee771623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771623fooEv,_ZThn24_N7ee771623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771623fooEv,_ZTv0_n24_N7ee771623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771623fooEv,_ZThn8_N7ee771623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771623barEv,_ZTv0_n20_N7ee771623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771623barEv,_ZThn8_N7ee771623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77162 = { "ee77162", // class name
+ bases_ee77162, 4,
+ &(vtc_ee77162[0]), // expected_vtbl_contents
+ &(vtt_ee77162[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77162),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77162),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77162),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 cc262 : bb62 {
+ int c;
+ virtual void foo(); // _ZN5cc2623fooEv
+ ~cc262(); // tgen
+ cc262(); // tgen
+};
+//SIG(-1 cc262) C1{ BC2{ BC3{ v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc262 ::foo(){vfunc_called(this, "_ZN5cc2623fooEv");}
+cc262 ::~cc262(){ note_dtor("cc262", this);} // tgen
+cc262 ::cc262(){ note_ctor("cc262", this);} // tgen
+
+static void Test_cc262()
+{
+ extern Class_Descriptor cd_cc262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc262, buf);
+ cc262 *dp, &lv = *(dp=new (buf) cc262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc262)");
+ check_base_class_offset(lv, (aa2*)(bb62*), 0, "cc262");
+ check_base_class_offset(lv, (bb62*), 0, "cc262");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc262.c");
+ test_class_info(&lv, &cd_cc262);
+ dp->~cc262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc262(Test_cc262, "cc262", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc262C1Ev();
+extern void _ZN5cc262D1Ev();
+Name_Map name_map_cc262[] = {
+ NSPAIR(_ZN5cc262C1Ev),
+ NSPAIR(_ZN5cc262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_cc262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+Class_Descriptor cd_cc262 = { "cc262", // class name
+ bases_cc262, 2,
+ &(vtc_cc262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc262),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 dd0262 : cc262 {
+ int d;
+ ~dd0262(); // tgen
+ dd0262(); // tgen
+};
+//SIG(-1 dd0262) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0262 ::~dd0262(){ note_dtor("dd0262", this);} // tgen
+dd0262 ::dd0262(){ note_ctor("dd0262", this);} // tgen
+
+static void Test_dd0262()
+{
+ extern Class_Descriptor cd_dd0262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0262, buf);
+ dd0262 *dp, &lv = *(dp=new (buf) dd0262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), 0, "dd0262");
+ check_base_class_offset(lv, (bb62*)(cc262*), 0, "dd0262");
+ check_base_class_offset(lv, (cc262*), 0, "dd0262");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0262.d");
+ test_class_info(&lv, &cd_dd0262);
+ dp->~dd0262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0262(Test_dd0262, "dd0262", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0262C1Ev();
+extern void _ZN6dd0262D1Ev();
+Name_Map name_map_dd0262[] = {
+ NSPAIR(_ZN6dd0262C1Ev),
+ NSPAIR(_ZN6dd0262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd0262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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 _ZTI6dd0262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd0262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+Class_Descriptor cd_dd0262 = { "dd0262", // class name
+ bases_dd0262, 3,
+ &(vtc_dd0262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0262),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 ee00262 : dd0262 {
+ int e;
+ ~ee00262(); // tgen
+ ee00262(); // tgen
+};
+//SIG(1 ee00262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00262 ::~ee00262(){ note_dtor("ee00262", this);} // tgen
+ee00262 ::ee00262(){ note_ctor("ee00262", this);} // tgen
+
+static void Test_ee00262()
+{
+ extern Class_Descriptor cd_ee00262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00262, buf);
+ ee00262 *dp, &lv = *(dp=new (buf) ee00262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), 0, "ee00262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), 0, "ee00262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), 0, "ee00262");
+ check_base_class_offset(lv, (dd0262*), 0, "ee00262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00262.e");
+ test_class_info(&lv, &cd_ee00262);
+ dp->~ee00262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00262(Test_ee00262, "ee00262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00262C1Ev();
+extern void _ZN7ee00262D1Ev();
+Name_Map name_map_ee00262[] = {
+ NSPAIR(_ZN7ee00262C1Ev),
+ NSPAIR(_ZN7ee00262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee00262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd0262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee00262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00262[];
+extern VTBL_ENTRY _ZTV7ee00262[];
+Class_Descriptor cd_ee00262 = { "ee00262", // class name
+ bases_ee00262, 4,
+ &(vtc_ee00262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00262),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 ee10262 : virtual dd0262 {
+ int e;
+ ~ee10262(); // tgen
+ ee10262(); // tgen
+};
+//SIG(1 ee10262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10262 ::~ee10262(){ note_dtor("ee10262", this);} // tgen
+ee10262 ::ee10262(){ note_ctor("ee10262", this);} // tgen
+
+static void Test_ee10262()
+{
+ extern Class_Descriptor cd_ee10262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10262, buf);
+ ee10262 *dp, &lv = *(dp=new (buf) ee10262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee10262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee10262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), ABISELECT(16,8), "ee10262");
+ check_base_class_offset(lv, (dd0262*), ABISELECT(16,8), "ee10262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10262.e");
+ test_class_info(&lv, &cd_ee10262);
+ dp->~ee10262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10262(Test_ee10262, "ee10262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10262C1Ev();
+extern void _ZN7ee10262D1Ev();
+Name_Map name_map_ee10262[] = {
+ NSPAIR(_ZN7ee10262C1Ev),
+ NSPAIR(_ZN7ee10262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee10262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd0262, 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 _ZTI7ee10262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee10262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10262[];
+static VTT_ENTRY vtt_ee10262[] = {
+ {&(_ZTV7ee10262[3]), 3,9},
+ {&(_ZTV7ee10262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10262[];
+extern VTBL_ENTRY _ZTV7ee10262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10262[];
+Class_Descriptor cd_ee10262 = { "ee10262", // class name
+ bases_ee10262, 4,
+ &(vtc_ee10262[0]), // expected_vtbl_contents
+ &(vtt_ee10262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10262),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 ee20262 : dd0262 {
+ int e;
+ virtual void foo(); // _ZN7ee202623fooEv
+ ~ee20262(); // tgen
+ ee20262(); // tgen
+};
+//SIG(1 ee20262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20262 ::foo(){vfunc_called(this, "_ZN7ee202623fooEv");}
+ee20262 ::~ee20262(){ note_dtor("ee20262", this);} // tgen
+ee20262 ::ee20262(){ note_ctor("ee20262", this);} // tgen
+
+static void Test_ee20262()
+{
+ extern Class_Descriptor cd_ee20262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20262, buf);
+ ee20262 *dp, &lv = *(dp=new (buf) ee20262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), 0, "ee20262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), 0, "ee20262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), 0, "ee20262");
+ check_base_class_offset(lv, (dd0262*), 0, "ee20262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20262.e");
+ test_class_info(&lv, &cd_ee20262);
+ dp->~ee20262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20262(Test_ee20262, "ee20262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20262C1Ev();
+extern void _ZN7ee20262D1Ev();
+Name_Map name_map_ee20262[] = {
+ NSPAIR(_ZN7ee20262C1Ev),
+ NSPAIR(_ZN7ee20262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee20262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20262[];
+extern void _ZN7ee202623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee20262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20262[0]),
+ (VTBL_ENTRY)&_ZN7ee202623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20262[];
+extern VTBL_ENTRY _ZTV7ee20262[];
+Class_Descriptor cd_ee20262 = { "ee20262", // class name
+ bases_ee20262, 4,
+ &(vtc_ee20262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20262),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 ee30262 : virtual dd0262 {
+ int e;
+ virtual void foo(); // _ZN7ee302623fooEv
+ ~ee30262(); // tgen
+ ee30262(); // tgen
+};
+//SIG(1 ee30262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30262 ::foo(){vfunc_called(this, "_ZN7ee302623fooEv");}
+ee30262 ::~ee30262(){ note_dtor("ee30262", this);} // tgen
+ee30262 ::ee30262(){ note_ctor("ee30262", this);} // tgen
+
+static void Test_ee30262()
+{
+ extern Class_Descriptor cd_ee30262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30262, buf);
+ ee30262 *dp, &lv = *(dp=new (buf) ee30262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee30262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee30262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), ABISELECT(16,8), "ee30262");
+ check_base_class_offset(lv, (dd0262*), ABISELECT(16,8), "ee30262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30262.e");
+ test_class_info(&lv, &cd_ee30262);
+ dp->~ee30262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30262(Test_ee30262, "ee30262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30262C1Ev();
+extern void _ZN7ee30262D1Ev();
+Name_Map name_map_ee30262[] = {
+ NSPAIR(_ZN7ee30262C1Ev),
+ NSPAIR(_ZN7ee30262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee30262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd0262, 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 _ZTI7ee30262[];
+extern void _ZN7ee302623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302623fooEv,_ZTv0_n12_N7ee302623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302623fooEv,_ZThn8_N7ee302623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee30262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30262[0]),
+ (VTBL_ENTRY)&_ZN7ee302623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302623fooEv,_ZTv0_n12_N7ee302623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30262[];
+static VTT_ENTRY vtt_ee30262[] = {
+ {&(_ZTV7ee30262[3]), 3,10},
+ {&(_ZTV7ee30262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30262[];
+extern VTBL_ENTRY _ZTV7ee30262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30262[];
+static VTBL_ENTRY alt_thunk_names1042[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302623fooEv,_ZTv0_n12_N7ee302623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302623fooEv,_ZThn8_N7ee302623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30262 = { "ee30262", // class name
+ bases_ee30262, 4,
+ &(vtc_ee30262[0]), // expected_vtbl_contents
+ &(vtt_ee30262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30262),2, //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 ee40262 : dd0262 {
+ int e;
+ virtual void bar(); // _ZN7ee402623barEv
+ ~ee40262(); // tgen
+ ee40262(); // tgen
+};
+//SIG(1 ee40262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40262 ::bar(){vfunc_called(this, "_ZN7ee402623barEv");}
+ee40262 ::~ee40262(){ note_dtor("ee40262", this);} // tgen
+ee40262 ::ee40262(){ note_ctor("ee40262", this);} // tgen
+
+static void Test_ee40262()
+{
+ extern Class_Descriptor cd_ee40262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40262, buf);
+ ee40262 *dp, &lv = *(dp=new (buf) ee40262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), 0, "ee40262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), 0, "ee40262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), 0, "ee40262");
+ check_base_class_offset(lv, (dd0262*), 0, "ee40262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40262.e");
+ test_class_info(&lv, &cd_ee40262);
+ dp->~ee40262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40262(Test_ee40262, "ee40262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40262C1Ev();
+extern void _ZN7ee40262D1Ev();
+Name_Map name_map_ee40262[] = {
+ NSPAIR(_ZN7ee40262C1Ev),
+ NSPAIR(_ZN7ee40262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee40262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN7ee402623barEv();
+static VTBL_ENTRY vtc_ee40262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN7ee402623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40262[];
+extern VTBL_ENTRY _ZTV7ee40262[];
+Class_Descriptor cd_ee40262 = { "ee40262", // class name
+ bases_ee40262, 4,
+ &(vtc_ee40262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40262),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 ee50262 : virtual dd0262 {
+ int e;
+ virtual void bar(); // _ZN7ee502623barEv
+ ~ee50262(); // tgen
+ ee50262(); // tgen
+};
+//SIG(1 ee50262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50262 ::bar(){vfunc_called(this, "_ZN7ee502623barEv");}
+ee50262 ::~ee50262(){ note_dtor("ee50262", this);} // tgen
+ee50262 ::ee50262(){ note_ctor("ee50262", this);} // tgen
+
+static void Test_ee50262()
+{
+ extern Class_Descriptor cd_ee50262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50262, buf);
+ ee50262 *dp, &lv = *(dp=new (buf) ee50262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee50262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee50262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), ABISELECT(16,8), "ee50262");
+ check_base_class_offset(lv, (dd0262*), ABISELECT(16,8), "ee50262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50262.e");
+ test_class_info(&lv, &cd_ee50262);
+ dp->~ee50262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50262(Test_ee50262, "ee50262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50262C1Ev();
+extern void _ZN7ee50262D1Ev();
+Name_Map name_map_ee50262[] = {
+ NSPAIR(_ZN7ee50262C1Ev),
+ NSPAIR(_ZN7ee50262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee50262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd0262, 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 _ZTI7ee50262[];
+extern void _ZN7ee502623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502623barEv,_ZTv0_n16_N7ee502623barEv)();
+extern void ABISELECT(_ZThn16_N7ee502623barEv,_ZThn8_N7ee502623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50262[0]),
+ (VTBL_ENTRY)&_ZN7ee502623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502623barEv,_ZTv0_n16_N7ee502623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50262[];
+static VTT_ENTRY vtt_ee50262[] = {
+ {&(_ZTV7ee50262[3]), 3,10},
+ {&(_ZTV7ee50262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50262[];
+extern VTBL_ENTRY _ZTV7ee50262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50262[];
+static VTBL_ENTRY alt_thunk_names1043[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502623barEv,_ZTv0_n16_N7ee502623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502623barEv,_ZThn8_N7ee502623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50262 = { "ee50262", // class name
+ bases_ee50262, 4,
+ &(vtc_ee50262[0]), // expected_vtbl_contents
+ &(vtt_ee50262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50262),2, //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 ee60262 : dd0262 {
+ int e;
+ virtual void foo(); // _ZN7ee602623fooEv
+ virtual void bar(); // _ZN7ee602623barEv
+ ~ee60262(); // tgen
+ ee60262(); // tgen
+};
+//SIG(1 ee60262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60262 ::foo(){vfunc_called(this, "_ZN7ee602623fooEv");}
+void ee60262 ::bar(){vfunc_called(this, "_ZN7ee602623barEv");}
+ee60262 ::~ee60262(){ note_dtor("ee60262", this);} // tgen
+ee60262 ::ee60262(){ note_ctor("ee60262", this);} // tgen
+
+static void Test_ee60262()
+{
+ extern Class_Descriptor cd_ee60262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60262, buf);
+ ee60262 *dp, &lv = *(dp=new (buf) ee60262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), 0, "ee60262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), 0, "ee60262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), 0, "ee60262");
+ check_base_class_offset(lv, (dd0262*), 0, "ee60262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60262.e");
+ test_class_info(&lv, &cd_ee60262);
+ dp->~ee60262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60262(Test_ee60262, "ee60262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60262C1Ev();
+extern void _ZN7ee60262D1Ev();
+Name_Map name_map_ee60262[] = {
+ NSPAIR(_ZN7ee60262C1Ev),
+ NSPAIR(_ZN7ee60262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee60262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60262[];
+extern void _ZN7ee602623fooEv();
+extern void _ZN7ee602623barEv();
+static VTBL_ENTRY vtc_ee60262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60262[0]),
+ (VTBL_ENTRY)&_ZN7ee602623fooEv,
+ (VTBL_ENTRY)&_ZN7ee602623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60262[];
+extern VTBL_ENTRY _ZTV7ee60262[];
+Class_Descriptor cd_ee60262 = { "ee60262", // class name
+ bases_ee60262, 4,
+ &(vtc_ee60262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60262),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 ee70262 : virtual dd0262 {
+ int e;
+ virtual void foo(); // _ZN7ee702623fooEv
+ virtual void bar(); // _ZN7ee702623barEv
+ ~ee70262(); // tgen
+ ee70262(); // tgen
+};
+//SIG(1 ee70262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70262 ::foo(){vfunc_called(this, "_ZN7ee702623fooEv");}
+void ee70262 ::bar(){vfunc_called(this, "_ZN7ee702623barEv");}
+ee70262 ::~ee70262(){ note_dtor("ee70262", this);} // tgen
+ee70262 ::ee70262(){ note_ctor("ee70262", this);} // tgen
+
+static void Test_ee70262()
+{
+ extern Class_Descriptor cd_ee70262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70262, buf);
+ ee70262 *dp, &lv = *(dp=new (buf) ee70262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee70262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd0262*), ABISELECT(16,8), "ee70262");
+ check_base_class_offset(lv, (cc262*)(dd0262*), ABISELECT(16,8), "ee70262");
+ check_base_class_offset(lv, (dd0262*), ABISELECT(16,8), "ee70262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70262.e");
+ test_class_info(&lv, &cd_ee70262);
+ dp->~ee70262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70262(Test_ee70262, "ee70262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70262C1Ev();
+extern void _ZN7ee70262D1Ev();
+Name_Map name_map_ee70262[] = {
+ NSPAIR(_ZN7ee70262C1Ev),
+ NSPAIR(_ZN7ee70262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd0262;
+extern VTBL_ENTRY _ZTI6dd0262[];
+extern VTBL_ENTRY _ZTV6dd0262[];
+static Base_Class bases_ee70262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd0262, 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 _ZTI7ee70262[];
+extern void _ZN7ee702623fooEv();
+extern void _ZN7ee702623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702623fooEv,_ZTv0_n12_N7ee702623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702623fooEv,_ZThn8_N7ee702623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702623barEv,_ZTv0_n16_N7ee702623barEv)();
+extern void ABISELECT(_ZThn16_N7ee702623barEv,_ZThn8_N7ee702623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70262[0]),
+ (VTBL_ENTRY)&_ZN7ee702623fooEv,
+ (VTBL_ENTRY)&_ZN7ee702623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702623fooEv,_ZTv0_n12_N7ee702623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702623barEv,_ZTv0_n16_N7ee702623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70262[];
+static VTT_ENTRY vtt_ee70262[] = {
+ {&(_ZTV7ee70262[3]), 3,11},
+ {&(_ZTV7ee70262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70262[];
+extern VTBL_ENTRY _ZTV7ee70262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70262[];
+static VTBL_ENTRY alt_thunk_names1044[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702623barEv,_ZTv0_n16_N7ee702623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702623barEv,_ZThn8_N7ee702623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702623fooEv,_ZTv0_n12_N7ee702623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702623fooEv,_ZThn8_N7ee702623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70262 = { "ee70262", // class name
+ bases_ee70262, 4,
+ &(vtc_ee70262[0]), // expected_vtbl_contents
+ &(vtt_ee70262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70262),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1044,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1262 : virtual cc262 {
+ int d;
+ ~dd1262(); // tgen
+ dd1262(); // tgen
+};
+//SIG(-1 dd1262) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1262 ::~dd1262(){ note_dtor("dd1262", this);} // tgen
+dd1262 ::dd1262(){ note_ctor("dd1262", this);} // tgen
+
+static void Test_dd1262()
+{
+ extern Class_Descriptor cd_dd1262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1262, buf);
+ dd1262 *dp, &lv = *(dp=new (buf) dd1262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,8), "dd1262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,8), "dd1262");
+ check_base_class_offset(lv, (cc262*), ABISELECT(16,8), "dd1262");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1262.d");
+ test_class_info(&lv, &cd_dd1262);
+ dp->~dd1262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1262(Test_dd1262, "dd1262", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1262C1Ev();
+extern void _ZN6dd1262D1Ev();
+Name_Map name_map_dd1262[] = {
+ NSPAIR(_ZN6dd1262C1Ev),
+ NSPAIR(_ZN6dd1262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd1262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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 _ZTI6dd1262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd1262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1262[];
+static VTT_ENTRY vtt_dd1262[] = {
+ {&(_ZTV6dd1262[3]), 3,9},
+ {&(_ZTV6dd1262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+Class_Descriptor cd_dd1262 = { "dd1262", // class name
+ bases_dd1262, 3,
+ &(vtc_dd1262[0]), // expected_vtbl_contents
+ &(vtt_dd1262[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1262),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 ee01262 : dd1262 {
+ int e;
+ ~ee01262(); // tgen
+ ee01262(); // tgen
+};
+//SIG(1 ee01262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01262 ::~ee01262(){ note_dtor("ee01262", this);} // tgen
+ee01262 ::ee01262(){ note_ctor("ee01262", this);} // tgen
+
+static void Test_ee01262()
+{
+ extern Class_Descriptor cd_ee01262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01262, buf);
+ ee01262 *dp, &lv = *(dp=new (buf) ee01262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee01262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee01262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(16,12), "ee01262");
+ check_base_class_offset(lv, (dd1262*), 0, "ee01262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01262.e");
+ test_class_info(&lv, &cd_ee01262);
+ dp->~ee01262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01262(Test_ee01262, "ee01262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01262C1Ev();
+extern void _ZN7ee01262D1Ev();
+Name_Map name_map_ee01262[] = {
+ NSPAIR(_ZN7ee01262C1Ev),
+ NSPAIR(_ZN7ee01262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee01262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee01262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee01262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee01262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee01262[] = {
+ {&(_ZTV7ee01262[3]), 3,9},
+ {&(_tg__ZTV6dd1262__7ee01262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee01262[4]), 4,6},
+ {&(_ZTV7ee01262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01262[];
+extern VTBL_ENTRY _ZTV7ee01262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01262[];
+Class_Descriptor cd_ee01262 = { "ee01262", // class name
+ bases_ee01262, 4,
+ &(vtc_ee01262[0]), // expected_vtbl_contents
+ &(vtt_ee01262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01262),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 ee11262 : virtual dd1262 {
+ int e;
+ ~ee11262(); // tgen
+ ee11262(); // tgen
+};
+//SIG(1 ee11262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11262 ::~ee11262(){ note_dtor("ee11262", this);} // tgen
+ee11262 ::ee11262(){ note_ctor("ee11262", this);} // tgen
+
+static void Test_ee11262()
+{
+ extern Class_Descriptor cd_ee11262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11262, buf);
+ ee11262 *dp, &lv = *(dp=new (buf) ee11262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee11262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee11262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(32,16), "ee11262");
+ check_base_class_offset(lv, (dd1262*), ABISELECT(16,8), "ee11262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11262.e");
+ test_class_info(&lv, &cd_ee11262);
+ dp->~ee11262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11262(Test_ee11262, "ee11262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11262C1Ev();
+extern void _ZN7ee11262D1Ev();
+Name_Map name_map_ee11262[] = {
+ NSPAIR(_ZN7ee11262C1Ev),
+ NSPAIR(_ZN7ee11262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee11262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 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 _ZTI7ee11262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee11262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11262[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11262[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee11262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee11262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee11262[] = {
+ {&(_ZTV7ee11262[4]), 4,13},
+ {&(_ZTV7ee11262[7]), 7,13},
+ {&(_ZTV7ee11262[11]), 11,13},
+ {&(_tg__ZTV6dd1262__7ee11262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee11262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11262[];
+extern VTBL_ENTRY _ZTV7ee11262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11262[];
+Class_Descriptor cd_ee11262 = { "ee11262", // class name
+ bases_ee11262, 4,
+ &(vtc_ee11262[0]), // expected_vtbl_contents
+ &(vtt_ee11262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11262),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11262),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 ee21262 : dd1262 {
+ int e;
+ virtual void foo(); // _ZN7ee212623fooEv
+ ~ee21262(); // tgen
+ ee21262(); // tgen
+};
+//SIG(1 ee21262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21262 ::foo(){vfunc_called(this, "_ZN7ee212623fooEv");}
+ee21262 ::~ee21262(){ note_dtor("ee21262", this);} // tgen
+ee21262 ::ee21262(){ note_ctor("ee21262", this);} // tgen
+
+static void Test_ee21262()
+{
+ extern Class_Descriptor cd_ee21262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21262, buf);
+ ee21262 *dp, &lv = *(dp=new (buf) ee21262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee21262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee21262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(16,12), "ee21262");
+ check_base_class_offset(lv, (dd1262*), 0, "ee21262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21262.e");
+ test_class_info(&lv, &cd_ee21262);
+ dp->~ee21262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21262(Test_ee21262, "ee21262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21262C1Ev();
+extern void _ZN7ee21262D1Ev();
+Name_Map name_map_ee21262[] = {
+ NSPAIR(_ZN7ee21262C1Ev),
+ NSPAIR(_ZN7ee21262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee21262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21262[];
+extern void _ZN7ee212623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212623fooEv,_ZTv0_n12_N7ee212623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212623fooEv,_ZThn12_N7ee212623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee21262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21262[0]),
+ (VTBL_ENTRY)&_ZN7ee212623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212623fooEv,_ZTv0_n12_N7ee212623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee21262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee21262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee21262[] = {
+ {&(_ZTV7ee21262[3]), 3,10},
+ {&(_tg__ZTV6dd1262__7ee21262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee21262[4]), 4,6},
+ {&(_ZTV7ee21262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21262[];
+extern VTBL_ENTRY _ZTV7ee21262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21262[];
+static VTBL_ENTRY alt_thunk_names1045[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212623fooEv,_ZTv0_n12_N7ee212623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212623fooEv,_ZThn12_N7ee212623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21262 = { "ee21262", // class name
+ bases_ee21262, 4,
+ &(vtc_ee21262[0]), // expected_vtbl_contents
+ &(vtt_ee21262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21262),4, //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 ee31262 : virtual dd1262 {
+ int e;
+ virtual void foo(); // _ZN7ee312623fooEv
+ ~ee31262(); // tgen
+ ee31262(); // tgen
+};
+//SIG(1 ee31262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31262 ::foo(){vfunc_called(this, "_ZN7ee312623fooEv");}
+ee31262 ::~ee31262(){ note_dtor("ee31262", this);} // tgen
+ee31262 ::ee31262(){ note_ctor("ee31262", this);} // tgen
+
+static void Test_ee31262()
+{
+ extern Class_Descriptor cd_ee31262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31262, buf);
+ ee31262 *dp, &lv = *(dp=new (buf) ee31262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee31262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee31262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(32,16), "ee31262");
+ check_base_class_offset(lv, (dd1262*), ABISELECT(16,8), "ee31262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31262.e");
+ test_class_info(&lv, &cd_ee31262);
+ dp->~ee31262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31262(Test_ee31262, "ee31262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31262C1Ev();
+extern void _ZN7ee31262D1Ev();
+Name_Map name_map_ee31262[] = {
+ NSPAIR(_ZN7ee31262C1Ev),
+ NSPAIR(_ZN7ee31262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee31262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 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 _ZTI7ee31262[];
+extern void _ZN7ee312623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312623fooEv,_ZTv0_n12_N7ee312623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312623fooEv,_ZThn16_N7ee312623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee31262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31262[0]),
+ (VTBL_ENTRY)&_ZN7ee312623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31262[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312623fooEv,_ZTv0_n12_N7ee312623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee31262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee31262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee31262[] = {
+ {&(_ZTV7ee31262[4]), 4,14},
+ {&(_ZTV7ee31262[8]), 8,14},
+ {&(_ZTV7ee31262[12]), 12,14},
+ {&(_tg__ZTV6dd1262__7ee31262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee31262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31262[];
+extern VTBL_ENTRY _ZTV7ee31262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31262[];
+static VTBL_ENTRY alt_thunk_names1046[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312623fooEv,_ZTv0_n12_N7ee312623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312623fooEv,_ZThn16_N7ee312623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31262 = { "ee31262", // class name
+ bases_ee31262, 4,
+ &(vtc_ee31262[0]), // expected_vtbl_contents
+ &(vtt_ee31262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31262),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31262),5, //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 ee41262 : dd1262 {
+ int e;
+ virtual void bar(); // _ZN7ee412623barEv
+ ~ee41262(); // tgen
+ ee41262(); // tgen
+};
+//SIG(1 ee41262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41262 ::bar(){vfunc_called(this, "_ZN7ee412623barEv");}
+ee41262 ::~ee41262(){ note_dtor("ee41262", this);} // tgen
+ee41262 ::ee41262(){ note_ctor("ee41262", this);} // tgen
+
+static void Test_ee41262()
+{
+ extern Class_Descriptor cd_ee41262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41262, buf);
+ ee41262 *dp, &lv = *(dp=new (buf) ee41262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee41262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee41262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(16,12), "ee41262");
+ check_base_class_offset(lv, (dd1262*), 0, "ee41262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41262.e");
+ test_class_info(&lv, &cd_ee41262);
+ dp->~ee41262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41262(Test_ee41262, "ee41262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41262C1Ev();
+extern void _ZN7ee41262D1Ev();
+Name_Map name_map_ee41262[] = {
+ NSPAIR(_ZN7ee41262C1Ev),
+ NSPAIR(_ZN7ee41262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee41262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41262[];
+extern void _ZN7ee412623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412623barEv,_ZTv0_n16_N7ee412623barEv)();
+extern void ABISELECT(_ZThn16_N7ee412623barEv,_ZThn12_N7ee412623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41262[0]),
+ (VTBL_ENTRY)&_ZN7ee412623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412623barEv,_ZTv0_n16_N7ee412623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee41262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee41262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee41262[] = {
+ {&(_ZTV7ee41262[3]), 3,10},
+ {&(_tg__ZTV6dd1262__7ee41262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee41262[4]), 4,6},
+ {&(_ZTV7ee41262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41262[];
+extern VTBL_ENTRY _ZTV7ee41262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41262[];
+static VTBL_ENTRY alt_thunk_names1047[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412623barEv,_ZTv0_n16_N7ee412623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412623barEv,_ZThn12_N7ee412623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41262 = { "ee41262", // class name
+ bases_ee41262, 4,
+ &(vtc_ee41262[0]), // expected_vtbl_contents
+ &(vtt_ee41262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41262),4, //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 ee51262 : virtual dd1262 {
+ int e;
+ virtual void bar(); // _ZN7ee512623barEv
+ ~ee51262(); // tgen
+ ee51262(); // tgen
+};
+//SIG(1 ee51262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51262 ::bar(){vfunc_called(this, "_ZN7ee512623barEv");}
+ee51262 ::~ee51262(){ note_dtor("ee51262", this);} // tgen
+ee51262 ::ee51262(){ note_ctor("ee51262", this);} // tgen
+
+static void Test_ee51262()
+{
+ extern Class_Descriptor cd_ee51262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51262, buf);
+ ee51262 *dp, &lv = *(dp=new (buf) ee51262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee51262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee51262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(32,16), "ee51262");
+ check_base_class_offset(lv, (dd1262*), ABISELECT(16,8), "ee51262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51262.e");
+ test_class_info(&lv, &cd_ee51262);
+ dp->~ee51262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51262(Test_ee51262, "ee51262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51262C1Ev();
+extern void _ZN7ee51262D1Ev();
+Name_Map name_map_ee51262[] = {
+ NSPAIR(_ZN7ee51262C1Ev),
+ NSPAIR(_ZN7ee51262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee51262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 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 _ZTI7ee51262[];
+extern void _ZN7ee512623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512623barEv,_ZTv0_n16_N7ee512623barEv)();
+extern void ABISELECT(_ZThn32_N7ee512623barEv,_ZThn16_N7ee512623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51262[0]),
+ (VTBL_ENTRY)&_ZN7ee512623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51262[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512623barEv,_ZTv0_n16_N7ee512623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee51262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee51262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee51262[] = {
+ {&(_ZTV7ee51262[4]), 4,14},
+ {&(_ZTV7ee51262[8]), 8,14},
+ {&(_ZTV7ee51262[12]), 12,14},
+ {&(_tg__ZTV6dd1262__7ee51262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee51262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51262[];
+extern VTBL_ENTRY _ZTV7ee51262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51262[];
+static VTBL_ENTRY alt_thunk_names1048[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512623barEv,_ZTv0_n16_N7ee512623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512623barEv,_ZThn16_N7ee512623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51262 = { "ee51262", // class name
+ bases_ee51262, 4,
+ &(vtc_ee51262[0]), // expected_vtbl_contents
+ &(vtt_ee51262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51262),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51262),5, //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 ee61262 : dd1262 {
+ int e;
+ virtual void foo(); // _ZN7ee612623fooEv
+ virtual void bar(); // _ZN7ee612623barEv
+ ~ee61262(); // tgen
+ ee61262(); // tgen
+};
+//SIG(1 ee61262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61262 ::foo(){vfunc_called(this, "_ZN7ee612623fooEv");}
+void ee61262 ::bar(){vfunc_called(this, "_ZN7ee612623barEv");}
+ee61262 ::~ee61262(){ note_dtor("ee61262", this);} // tgen
+ee61262 ::ee61262(){ note_ctor("ee61262", this);} // tgen
+
+static void Test_ee61262()
+{
+ extern Class_Descriptor cd_ee61262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61262, buf);
+ ee61262 *dp, &lv = *(dp=new (buf) ee61262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee61262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee61262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(16,12), "ee61262");
+ check_base_class_offset(lv, (dd1262*), 0, "ee61262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61262.e");
+ test_class_info(&lv, &cd_ee61262);
+ dp->~ee61262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61262(Test_ee61262, "ee61262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61262C1Ev();
+extern void _ZN7ee61262D1Ev();
+Name_Map name_map_ee61262[] = {
+ NSPAIR(_ZN7ee61262C1Ev),
+ NSPAIR(_ZN7ee61262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee61262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61262[];
+extern void _ZN7ee612623fooEv();
+extern void _ZN7ee612623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612623fooEv,_ZTv0_n12_N7ee612623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612623fooEv,_ZThn12_N7ee612623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612623barEv,_ZTv0_n16_N7ee612623barEv)();
+extern void ABISELECT(_ZThn16_N7ee612623barEv,_ZThn12_N7ee612623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61262[0]),
+ (VTBL_ENTRY)&_ZN7ee612623fooEv,
+ (VTBL_ENTRY)&_ZN7ee612623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612623fooEv,_ZTv0_n12_N7ee612623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612623barEv,_ZTv0_n16_N7ee612623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee61262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee61262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee61262[] = {
+ {&(_ZTV7ee61262[3]), 3,11},
+ {&(_tg__ZTV6dd1262__7ee61262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee61262[4]), 4,6},
+ {&(_ZTV7ee61262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61262[];
+extern VTBL_ENTRY _ZTV7ee61262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61262[];
+static VTBL_ENTRY alt_thunk_names1049[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612623barEv,_ZTv0_n16_N7ee612623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612623barEv,_ZThn12_N7ee612623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612623fooEv,_ZTv0_n12_N7ee612623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612623fooEv,_ZThn12_N7ee612623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61262 = { "ee61262", // class name
+ bases_ee61262, 4,
+ &(vtc_ee61262[0]), // expected_vtbl_contents
+ &(vtt_ee61262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61262),4, //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 ee71262 : virtual dd1262 {
+ int e;
+ virtual void foo(); // _ZN7ee712623fooEv
+ virtual void bar(); // _ZN7ee712623barEv
+ ~ee71262(); // tgen
+ ee71262(); // tgen
+};
+//SIG(1 ee71262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71262 ::foo(){vfunc_called(this, "_ZN7ee712623fooEv");}
+void ee71262 ::bar(){vfunc_called(this, "_ZN7ee712623barEv");}
+ee71262 ::~ee71262(){ note_dtor("ee71262", this);} // tgen
+ee71262 ::ee71262(){ note_ctor("ee71262", this);} // tgen
+
+static void Test_ee71262()
+{
+ extern Class_Descriptor cd_ee71262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71262, buf);
+ ee71262 *dp, &lv = *(dp=new (buf) ee71262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee71262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee71262");
+ check_base_class_offset(lv, (cc262*)(dd1262*), ABISELECT(32,16), "ee71262");
+ check_base_class_offset(lv, (dd1262*), ABISELECT(16,8), "ee71262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71262.e");
+ test_class_info(&lv, &cd_ee71262);
+ dp->~ee71262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71262(Test_ee71262, "ee71262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71262C1Ev();
+extern void _ZN7ee71262D1Ev();
+Name_Map name_map_ee71262[] = {
+ NSPAIR(_ZN7ee71262C1Ev),
+ NSPAIR(_ZN7ee71262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd1262;
+extern VTBL_ENTRY _ZTI6dd1262[];
+extern VTBL_ENTRY _ZTV6dd1262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1262[];
+static Base_Class bases_ee71262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd1262, 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 _ZTI7ee71262[];
+extern void _ZN7ee712623fooEv();
+extern void _ZN7ee712623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712623fooEv,_ZTv0_n12_N7ee712623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712623fooEv,_ZThn16_N7ee712623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712623barEv,_ZTv0_n16_N7ee712623barEv)();
+extern void ABISELECT(_ZThn32_N7ee712623barEv,_ZThn16_N7ee712623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71262[0]),
+ (VTBL_ENTRY)&_ZN7ee712623fooEv,
+ (VTBL_ENTRY)&_ZN7ee712623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71262[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712623fooEv,_ZTv0_n12_N7ee712623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712623barEv,_ZTv0_n16_N7ee712623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71262[];
+static VTBL_ENTRY _tg__ZTV6dd1262__7ee71262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+};
+extern void _ZN5cc2623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd1262__7ee71262[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee71262[] = {
+ {&(_ZTV7ee71262[4]), 4,15},
+ {&(_ZTV7ee71262[9]), 9,15},
+ {&(_ZTV7ee71262[13]), 13,15},
+ {&(_tg__ZTV6dd1262__7ee71262[3]), 3,3},
+ {&(_tg__ZTV5cc262__6dd1262__7ee71262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71262[];
+extern VTBL_ENTRY _ZTV7ee71262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71262[];
+static VTBL_ENTRY alt_thunk_names1050[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712623barEv,_ZTv0_n16_N7ee712623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712623barEv,_ZThn16_N7ee712623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712623fooEv,_ZTv0_n12_N7ee712623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712623fooEv,_ZThn16_N7ee712623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71262 = { "ee71262", // class name
+ bases_ee71262, 4,
+ &(vtc_ee71262[0]), // expected_vtbl_contents
+ &(vtt_ee71262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71262),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71262),5, //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 dd2262 : cc262 {
+ int d;
+ virtual void foo(); // _ZN6dd22623fooEv
+ ~dd2262(); // tgen
+ dd2262(); // tgen
+};
+//SIG(-1 dd2262) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2262 ::foo(){vfunc_called(this, "_ZN6dd22623fooEv");}
+dd2262 ::~dd2262(){ note_dtor("dd2262", this);} // tgen
+dd2262 ::dd2262(){ note_ctor("dd2262", this);} // tgen
+
+static void Test_dd2262()
+{
+ extern Class_Descriptor cd_dd2262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2262, buf);
+ dd2262 *dp, &lv = *(dp=new (buf) dd2262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), 0, "dd2262");
+ check_base_class_offset(lv, (bb62*)(cc262*), 0, "dd2262");
+ check_base_class_offset(lv, (cc262*), 0, "dd2262");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2262.d");
+ test_class_info(&lv, &cd_dd2262);
+ dp->~dd2262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2262(Test_dd2262, "dd2262", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2262C1Ev();
+extern void _ZN6dd2262D1Ev();
+Name_Map name_map_dd2262[] = {
+ NSPAIR(_ZN6dd2262C1Ev),
+ NSPAIR(_ZN6dd2262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd2262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2262[];
+extern void _ZN6dd22623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd2262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2262[0]),
+ (VTBL_ENTRY)&_ZN6dd22623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+Class_Descriptor cd_dd2262 = { "dd2262", // class name
+ bases_dd2262, 3,
+ &(vtc_dd2262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2262),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 ee02262 : dd2262 {
+ int e;
+ ~ee02262(); // tgen
+ ee02262(); // tgen
+};
+//SIG(1 ee02262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02262 ::~ee02262(){ note_dtor("ee02262", this);} // tgen
+ee02262 ::ee02262(){ note_ctor("ee02262", this);} // tgen
+
+static void Test_ee02262()
+{
+ extern Class_Descriptor cd_ee02262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02262, buf);
+ ee02262 *dp, &lv = *(dp=new (buf) ee02262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), 0, "ee02262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), 0, "ee02262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), 0, "ee02262");
+ check_base_class_offset(lv, (dd2262*), 0, "ee02262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02262.e");
+ test_class_info(&lv, &cd_ee02262);
+ dp->~ee02262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02262(Test_ee02262, "ee02262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02262C1Ev();
+extern void _ZN7ee02262D1Ev();
+Name_Map name_map_ee02262[] = {
+ NSPAIR(_ZN7ee02262C1Ev),
+ NSPAIR(_ZN7ee02262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee02262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, 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 _ZTI7ee02262[];
+extern void _ZN6dd22623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee02262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02262[0]),
+ (VTBL_ENTRY)&_ZN6dd22623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02262[];
+extern VTBL_ENTRY _ZTV7ee02262[];
+Class_Descriptor cd_ee02262 = { "ee02262", // class name
+ bases_ee02262, 4,
+ &(vtc_ee02262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02262),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 ee12262 : virtual dd2262 {
+ int e;
+ ~ee12262(); // tgen
+ ee12262(); // tgen
+};
+//SIG(1 ee12262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12262 ::~ee12262(){ note_dtor("ee12262", this);} // tgen
+ee12262 ::ee12262(){ note_ctor("ee12262", this);} // tgen
+
+static void Test_ee12262()
+{
+ extern Class_Descriptor cd_ee12262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12262, buf);
+ ee12262 *dp, &lv = *(dp=new (buf) ee12262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee12262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee12262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), ABISELECT(16,8), "ee12262");
+ check_base_class_offset(lv, (dd2262*), ABISELECT(16,8), "ee12262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12262.e");
+ test_class_info(&lv, &cd_ee12262);
+ dp->~ee12262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12262(Test_ee12262, "ee12262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12262C1Ev();
+extern void _ZN7ee12262D1Ev();
+Name_Map name_map_ee12262[] = {
+ NSPAIR(_ZN7ee12262C1Ev),
+ NSPAIR(_ZN7ee12262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee12262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, 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 _ZTI7ee12262[];
+extern void _ZN6dd22623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee12262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12262[0]),
+ (VTBL_ENTRY)&_ZN6dd22623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12262[];
+static VTT_ENTRY vtt_ee12262[] = {
+ {&(_ZTV7ee12262[3]), 3,9},
+ {&(_ZTV7ee12262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12262[];
+extern VTBL_ENTRY _ZTV7ee12262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12262[];
+Class_Descriptor cd_ee12262 = { "ee12262", // class name
+ bases_ee12262, 4,
+ &(vtc_ee12262[0]), // expected_vtbl_contents
+ &(vtt_ee12262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12262),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 ee22262 : dd2262 {
+ int e;
+ virtual void foo(); // _ZN7ee222623fooEv
+ ~ee22262(); // tgen
+ ee22262(); // tgen
+};
+//SIG(1 ee22262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22262 ::foo(){vfunc_called(this, "_ZN7ee222623fooEv");}
+ee22262 ::~ee22262(){ note_dtor("ee22262", this);} // tgen
+ee22262 ::ee22262(){ note_ctor("ee22262", this);} // tgen
+
+static void Test_ee22262()
+{
+ extern Class_Descriptor cd_ee22262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22262, buf);
+ ee22262 *dp, &lv = *(dp=new (buf) ee22262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), 0, "ee22262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), 0, "ee22262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), 0, "ee22262");
+ check_base_class_offset(lv, (dd2262*), 0, "ee22262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22262.e");
+ test_class_info(&lv, &cd_ee22262);
+ dp->~ee22262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22262(Test_ee22262, "ee22262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22262C1Ev();
+extern void _ZN7ee22262D1Ev();
+Name_Map name_map_ee22262[] = {
+ NSPAIR(_ZN7ee22262C1Ev),
+ NSPAIR(_ZN7ee22262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee22262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22262[];
+extern void _ZN7ee222623fooEv();
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee22262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22262[0]),
+ (VTBL_ENTRY)&_ZN7ee222623fooEv,
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22262[];
+extern VTBL_ENTRY _ZTV7ee22262[];
+Class_Descriptor cd_ee22262 = { "ee22262", // class name
+ bases_ee22262, 4,
+ &(vtc_ee22262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22262),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 ee32262 : virtual dd2262 {
+ int e;
+ virtual void foo(); // _ZN7ee322623fooEv
+ ~ee32262(); // tgen
+ ee32262(); // tgen
+};
+//SIG(1 ee32262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32262 ::foo(){vfunc_called(this, "_ZN7ee322623fooEv");}
+ee32262 ::~ee32262(){ note_dtor("ee32262", this);} // tgen
+ee32262 ::ee32262(){ note_ctor("ee32262", this);} // tgen
+
+static void Test_ee32262()
+{
+ extern Class_Descriptor cd_ee32262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32262, buf);
+ ee32262 *dp, &lv = *(dp=new (buf) ee32262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee32262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee32262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), ABISELECT(16,8), "ee32262");
+ check_base_class_offset(lv, (dd2262*), ABISELECT(16,8), "ee32262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32262.e");
+ test_class_info(&lv, &cd_ee32262);
+ dp->~ee32262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32262(Test_ee32262, "ee32262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32262C1Ev();
+extern void _ZN7ee32262D1Ev();
+Name_Map name_map_ee32262[] = {
+ NSPAIR(_ZN7ee32262C1Ev),
+ NSPAIR(_ZN7ee32262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee32262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, ABISELECT(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 _ZTI7ee32262[];
+extern void _ZN7ee322623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322623fooEv,_ZTv0_n12_N7ee322623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322623fooEv,_ZThn8_N7ee322623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee32262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32262[0]),
+ (VTBL_ENTRY)&_ZN7ee322623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322623fooEv,_ZTv0_n12_N7ee322623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32262[];
+static VTT_ENTRY vtt_ee32262[] = {
+ {&(_ZTV7ee32262[3]), 3,10},
+ {&(_ZTV7ee32262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32262[];
+extern VTBL_ENTRY _ZTV7ee32262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32262[];
+static VTBL_ENTRY alt_thunk_names1051[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322623fooEv,_ZTv0_n12_N7ee322623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322623fooEv,_ZThn8_N7ee322623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32262 = { "ee32262", // class name
+ bases_ee32262, 4,
+ &(vtc_ee32262[0]), // expected_vtbl_contents
+ &(vtt_ee32262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32262),2, //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 ee42262 : dd2262 {
+ int e;
+ virtual void bar(); // _ZN7ee422623barEv
+ ~ee42262(); // tgen
+ ee42262(); // tgen
+};
+//SIG(1 ee42262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42262 ::bar(){vfunc_called(this, "_ZN7ee422623barEv");}
+ee42262 ::~ee42262(){ note_dtor("ee42262", this);} // tgen
+ee42262 ::ee42262(){ note_ctor("ee42262", this);} // tgen
+
+static void Test_ee42262()
+{
+ extern Class_Descriptor cd_ee42262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42262, buf);
+ ee42262 *dp, &lv = *(dp=new (buf) ee42262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), 0, "ee42262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), 0, "ee42262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), 0, "ee42262");
+ check_base_class_offset(lv, (dd2262*), 0, "ee42262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42262.e");
+ test_class_info(&lv, &cd_ee42262);
+ dp->~ee42262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42262(Test_ee42262, "ee42262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42262C1Ev();
+extern void _ZN7ee42262D1Ev();
+Name_Map name_map_ee42262[] = {
+ NSPAIR(_ZN7ee42262C1Ev),
+ NSPAIR(_ZN7ee42262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee42262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42262[];
+extern void _ZN6dd22623fooEv();
+extern void _ZN7ee422623barEv();
+static VTBL_ENTRY vtc_ee42262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42262[0]),
+ (VTBL_ENTRY)&_ZN6dd22623fooEv,
+ (VTBL_ENTRY)&_ZN7ee422623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42262[];
+extern VTBL_ENTRY _ZTV7ee42262[];
+Class_Descriptor cd_ee42262 = { "ee42262", // class name
+ bases_ee42262, 4,
+ &(vtc_ee42262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42262),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 ee52262 : virtual dd2262 {
+ int e;
+ virtual void bar(); // _ZN7ee522623barEv
+ ~ee52262(); // tgen
+ ee52262(); // tgen
+};
+//SIG(1 ee52262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52262 ::bar(){vfunc_called(this, "_ZN7ee522623barEv");}
+ee52262 ::~ee52262(){ note_dtor("ee52262", this);} // tgen
+ee52262 ::ee52262(){ note_ctor("ee52262", this);} // tgen
+
+static void Test_ee52262()
+{
+ extern Class_Descriptor cd_ee52262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52262, buf);
+ ee52262 *dp, &lv = *(dp=new (buf) ee52262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee52262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee52262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), ABISELECT(16,8), "ee52262");
+ check_base_class_offset(lv, (dd2262*), ABISELECT(16,8), "ee52262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52262.e");
+ test_class_info(&lv, &cd_ee52262);
+ dp->~ee52262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52262(Test_ee52262, "ee52262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52262C1Ev();
+extern void _ZN7ee52262D1Ev();
+Name_Map name_map_ee52262[] = {
+ NSPAIR(_ZN7ee52262C1Ev),
+ NSPAIR(_ZN7ee52262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee52262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, ABISELECT(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 _ZTI7ee52262[];
+extern void _ZN7ee522623barEv();
+extern void _ZN6dd22623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522623barEv,_ZTv0_n16_N7ee522623barEv)();
+extern void ABISELECT(_ZThn16_N7ee522623barEv,_ZThn8_N7ee522623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52262[0]),
+ (VTBL_ENTRY)&_ZN7ee522623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52262[0]),
+ (VTBL_ENTRY)&_ZN6dd22623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522623barEv,_ZTv0_n16_N7ee522623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52262[];
+static VTT_ENTRY vtt_ee52262[] = {
+ {&(_ZTV7ee52262[3]), 3,10},
+ {&(_ZTV7ee52262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52262[];
+extern VTBL_ENTRY _ZTV7ee52262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52262[];
+static VTBL_ENTRY alt_thunk_names1052[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522623barEv,_ZTv0_n16_N7ee522623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522623barEv,_ZThn8_N7ee522623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52262 = { "ee52262", // class name
+ bases_ee52262, 4,
+ &(vtc_ee52262[0]), // expected_vtbl_contents
+ &(vtt_ee52262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52262),2, //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 ee62262 : dd2262 {
+ int e;
+ virtual void foo(); // _ZN7ee622623fooEv
+ virtual void bar(); // _ZN7ee622623barEv
+ ~ee62262(); // tgen
+ ee62262(); // tgen
+};
+//SIG(1 ee62262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62262 ::foo(){vfunc_called(this, "_ZN7ee622623fooEv");}
+void ee62262 ::bar(){vfunc_called(this, "_ZN7ee622623barEv");}
+ee62262 ::~ee62262(){ note_dtor("ee62262", this);} // tgen
+ee62262 ::ee62262(){ note_ctor("ee62262", this);} // tgen
+
+static void Test_ee62262()
+{
+ extern Class_Descriptor cd_ee62262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62262, buf);
+ ee62262 *dp, &lv = *(dp=new (buf) ee62262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), 0, "ee62262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), 0, "ee62262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), 0, "ee62262");
+ check_base_class_offset(lv, (dd2262*), 0, "ee62262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62262.e");
+ test_class_info(&lv, &cd_ee62262);
+ dp->~ee62262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62262(Test_ee62262, "ee62262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62262C1Ev();
+extern void _ZN7ee62262D1Ev();
+Name_Map name_map_ee62262[] = {
+ NSPAIR(_ZN7ee62262C1Ev),
+ NSPAIR(_ZN7ee62262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee62262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62262[];
+extern void _ZN7ee622623fooEv();
+extern void _ZN7ee622623barEv();
+static VTBL_ENTRY vtc_ee62262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62262[0]),
+ (VTBL_ENTRY)&_ZN7ee622623fooEv,
+ (VTBL_ENTRY)&_ZN7ee622623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62262[];
+extern VTBL_ENTRY _ZTV7ee62262[];
+Class_Descriptor cd_ee62262 = { "ee62262", // class name
+ bases_ee62262, 4,
+ &(vtc_ee62262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62262),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 ee72262 : virtual dd2262 {
+ int e;
+ virtual void foo(); // _ZN7ee722623fooEv
+ virtual void bar(); // _ZN7ee722623barEv
+ ~ee72262(); // tgen
+ ee72262(); // tgen
+};
+//SIG(1 ee72262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72262 ::foo(){vfunc_called(this, "_ZN7ee722623fooEv");}
+void ee72262 ::bar(){vfunc_called(this, "_ZN7ee722623barEv");}
+ee72262 ::~ee72262(){ note_dtor("ee72262", this);} // tgen
+ee72262 ::ee72262(){ note_ctor("ee72262", this);} // tgen
+
+static void Test_ee72262()
+{
+ extern Class_Descriptor cd_ee72262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72262, buf);
+ ee72262 *dp, &lv = *(dp=new (buf) ee72262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee72262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd2262*), ABISELECT(16,8), "ee72262");
+ check_base_class_offset(lv, (cc262*)(dd2262*), ABISELECT(16,8), "ee72262");
+ check_base_class_offset(lv, (dd2262*), ABISELECT(16,8), "ee72262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72262.e");
+ test_class_info(&lv, &cd_ee72262);
+ dp->~ee72262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72262(Test_ee72262, "ee72262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72262C1Ev();
+extern void _ZN7ee72262D1Ev();
+Name_Map name_map_ee72262[] = {
+ NSPAIR(_ZN7ee72262C1Ev),
+ NSPAIR(_ZN7ee72262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd2262;
+extern VTBL_ENTRY _ZTI6dd2262[];
+extern VTBL_ENTRY _ZTV6dd2262[];
+static Base_Class bases_ee72262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2262, ABISELECT(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 _ZTI7ee72262[];
+extern void _ZN7ee722623fooEv();
+extern void _ZN7ee722623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722623fooEv,_ZTv0_n12_N7ee722623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722623fooEv,_ZThn8_N7ee722623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722623barEv,_ZTv0_n16_N7ee722623barEv)();
+extern void ABISELECT(_ZThn16_N7ee722623barEv,_ZThn8_N7ee722623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72262[0]),
+ (VTBL_ENTRY)&_ZN7ee722623fooEv,
+ (VTBL_ENTRY)&_ZN7ee722623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722623fooEv,_ZTv0_n12_N7ee722623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722623barEv,_ZTv0_n16_N7ee722623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72262[];
+static VTT_ENTRY vtt_ee72262[] = {
+ {&(_ZTV7ee72262[3]), 3,11},
+ {&(_ZTV7ee72262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72262[];
+extern VTBL_ENTRY _ZTV7ee72262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72262[];
+static VTBL_ENTRY alt_thunk_names1053[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722623barEv,_ZTv0_n16_N7ee722623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722623barEv,_ZThn8_N7ee722623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722623fooEv,_ZTv0_n12_N7ee722623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722623fooEv,_ZThn8_N7ee722623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72262 = { "ee72262", // class name
+ bases_ee72262, 4,
+ &(vtc_ee72262[0]), // expected_vtbl_contents
+ &(vtt_ee72262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72262),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1053,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3262 : virtual cc262 {
+ int d;
+ virtual void foo(); // _ZN6dd32623fooEv
+ ~dd3262(); // tgen
+ dd3262(); // tgen
+};
+//SIG(-1 dd3262) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3262 ::foo(){vfunc_called(this, "_ZN6dd32623fooEv");}
+dd3262 ::~dd3262(){ note_dtor("dd3262", this);} // tgen
+dd3262 ::dd3262(){ note_ctor("dd3262", this);} // tgen
+
+static void Test_dd3262()
+{
+ extern Class_Descriptor cd_dd3262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3262, buf);
+ dd3262 *dp, &lv = *(dp=new (buf) dd3262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,8), "dd3262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,8), "dd3262");
+ check_base_class_offset(lv, (cc262*), ABISELECT(16,8), "dd3262");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3262.d");
+ test_class_info(&lv, &cd_dd3262);
+ dp->~dd3262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3262(Test_dd3262, "dd3262", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3262C1Ev();
+extern void _ZN6dd3262D1Ev();
+Name_Map name_map_dd3262[] = {
+ NSPAIR(_ZN6dd3262C1Ev),
+ NSPAIR(_ZN6dd3262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd3262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(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 _ZTI6dd3262[];
+extern void _ZN6dd32623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd3262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3262[];
+static VTT_ENTRY vtt_dd3262[] = {
+ {&(_ZTV6dd3262[3]), 3,10},
+ {&(_ZTV6dd3262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static VTBL_ENTRY alt_thunk_names1054[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3262 = { "dd3262", // class name
+ bases_dd3262, 3,
+ &(vtc_dd3262[0]), // expected_vtbl_contents
+ &(vtt_dd3262[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3262),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1054,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03262 : dd3262 {
+ int e;
+ ~ee03262(); // tgen
+ ee03262(); // tgen
+};
+//SIG(1 ee03262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03262 ::~ee03262(){ note_dtor("ee03262", this);} // tgen
+ee03262 ::ee03262(){ note_ctor("ee03262", this);} // tgen
+
+static void Test_ee03262()
+{
+ extern Class_Descriptor cd_ee03262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03262, buf);
+ ee03262 *dp, &lv = *(dp=new (buf) ee03262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee03262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee03262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(16,12), "ee03262");
+ check_base_class_offset(lv, (dd3262*), 0, "ee03262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03262.e");
+ test_class_info(&lv, &cd_ee03262);
+ dp->~ee03262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03262(Test_ee03262, "ee03262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03262C1Ev();
+extern void _ZN7ee03262D1Ev();
+Name_Map name_map_ee03262[] = {
+ NSPAIR(_ZN7ee03262C1Ev),
+ NSPAIR(_ZN7ee03262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee03262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03262[];
+extern void _ZN6dd32623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee03262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee03262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee03262[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee03262[] = {
+ {&(_ZTV7ee03262[3]), 3,10},
+ {&(_tg__ZTV6dd3262__7ee03262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee03262[4]), 4,6},
+ {&(_ZTV7ee03262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03262[];
+extern VTBL_ENTRY _ZTV7ee03262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03262[];
+static VTBL_ENTRY alt_thunk_names1055[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03262 = { "ee03262", // class name
+ bases_ee03262, 4,
+ &(vtc_ee03262[0]), // expected_vtbl_contents
+ &(vtt_ee03262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03262),4, //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 ee13262 : virtual dd3262 {
+ int e;
+ ~ee13262(); // tgen
+ ee13262(); // tgen
+};
+//SIG(1 ee13262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13262 ::~ee13262(){ note_dtor("ee13262", this);} // tgen
+ee13262 ::ee13262(){ note_ctor("ee13262", this);} // tgen
+
+static void Test_ee13262()
+{
+ extern Class_Descriptor cd_ee13262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13262, buf);
+ ee13262 *dp, &lv = *(dp=new (buf) ee13262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee13262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee13262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(32,16), "ee13262");
+ check_base_class_offset(lv, (dd3262*), ABISELECT(16,8), "ee13262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13262.e");
+ test_class_info(&lv, &cd_ee13262);
+ dp->~ee13262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13262(Test_ee13262, "ee13262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13262C1Ev();
+extern void _ZN7ee13262D1Ev();
+Name_Map name_map_ee13262[] = {
+ NSPAIR(_ZN7ee13262C1Ev),
+ NSPAIR(_ZN7ee13262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee13262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, ABISELECT(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 _ZTI7ee13262[];
+extern void _ZN6dd32623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee13262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13262[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee13262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee13262[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee13262[] = {
+ {&(_ZTV7ee13262[4]), 4,15},
+ {&(_ZTV7ee13262[8]), 8,15},
+ {&(_ZTV7ee13262[13]), 13,15},
+ {&(_tg__ZTV6dd3262__7ee13262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee13262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13262[];
+extern VTBL_ENTRY _ZTV7ee13262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13262[];
+static VTBL_ENTRY alt_thunk_names1056[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13262 = { "ee13262", // class name
+ bases_ee13262, 4,
+ &(vtc_ee13262[0]), // expected_vtbl_contents
+ &(vtt_ee13262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13262),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13262),5, //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 ee23262 : dd3262 {
+ int e;
+ virtual void foo(); // _ZN7ee232623fooEv
+ ~ee23262(); // tgen
+ ee23262(); // tgen
+};
+//SIG(1 ee23262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23262 ::foo(){vfunc_called(this, "_ZN7ee232623fooEv");}
+ee23262 ::~ee23262(){ note_dtor("ee23262", this);} // tgen
+ee23262 ::ee23262(){ note_ctor("ee23262", this);} // tgen
+
+static void Test_ee23262()
+{
+ extern Class_Descriptor cd_ee23262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23262, buf);
+ ee23262 *dp, &lv = *(dp=new (buf) ee23262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee23262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee23262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(16,12), "ee23262");
+ check_base_class_offset(lv, (dd3262*), 0, "ee23262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23262.e");
+ test_class_info(&lv, &cd_ee23262);
+ dp->~ee23262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23262(Test_ee23262, "ee23262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23262C1Ev();
+extern void _ZN7ee23262D1Ev();
+Name_Map name_map_ee23262[] = {
+ NSPAIR(_ZN7ee23262C1Ev),
+ NSPAIR(_ZN7ee23262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee23262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23262[];
+extern void _ZN7ee232623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232623fooEv,_ZTv0_n12_N7ee232623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232623fooEv,_ZThn12_N7ee232623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee23262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23262[0]),
+ (VTBL_ENTRY)&_ZN7ee232623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232623fooEv,_ZTv0_n12_N7ee232623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee23262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee23262[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee23262[] = {
+ {&(_ZTV7ee23262[3]), 3,10},
+ {&(_tg__ZTV6dd3262__7ee23262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee23262[4]), 4,6},
+ {&(_ZTV7ee23262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23262[];
+extern VTBL_ENTRY _ZTV7ee23262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23262[];
+static VTBL_ENTRY alt_thunk_names1057[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232623fooEv,_ZTv0_n12_N7ee232623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232623fooEv,_ZThn12_N7ee232623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23262 = { "ee23262", // class name
+ bases_ee23262, 4,
+ &(vtc_ee23262[0]), // expected_vtbl_contents
+ &(vtt_ee23262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23262),4, //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 ee33262 : virtual dd3262 {
+ int e;
+ virtual void foo(); // _ZN7ee332623fooEv
+ ~ee33262(); // tgen
+ ee33262(); // tgen
+};
+//SIG(1 ee33262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33262 ::foo(){vfunc_called(this, "_ZN7ee332623fooEv");}
+ee33262 ::~ee33262(){ note_dtor("ee33262", this);} // tgen
+ee33262 ::ee33262(){ note_ctor("ee33262", this);} // tgen
+
+static void Test_ee33262()
+{
+ extern Class_Descriptor cd_ee33262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33262, buf);
+ ee33262 *dp, &lv = *(dp=new (buf) ee33262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee33262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee33262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(32,16), "ee33262");
+ check_base_class_offset(lv, (dd3262*), ABISELECT(16,8), "ee33262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33262.e");
+ test_class_info(&lv, &cd_ee33262);
+ dp->~ee33262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33262(Test_ee33262, "ee33262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33262C1Ev();
+extern void _ZN7ee33262D1Ev();
+Name_Map name_map_ee33262[] = {
+ NSPAIR(_ZN7ee33262C1Ev),
+ NSPAIR(_ZN7ee33262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee33262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, ABISELECT(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 _ZTI7ee33262[];
+extern void _ZN7ee332623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332623fooEv,_ZTv0_n16_N7ee332623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332623fooEv,_ZThn8_N7ee332623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332623fooEv,_ZTv0_n12_N7ee332623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332623fooEv,_ZThn16_N7ee332623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee33262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33262[0]),
+ (VTBL_ENTRY)&_ZN7ee332623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332623fooEv,_ZTv0_n16_N7ee332623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332623fooEv,_ZTv0_n12_N7ee332623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee33262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee33262[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee33262[] = {
+ {&(_ZTV7ee33262[4]), 4,16},
+ {&(_ZTV7ee33262[9]), 9,16},
+ {&(_ZTV7ee33262[14]), 14,16},
+ {&(_tg__ZTV6dd3262__7ee33262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee33262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33262[];
+extern VTBL_ENTRY _ZTV7ee33262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33262[];
+static VTBL_ENTRY alt_thunk_names1058[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332623fooEv,_ZTv0_n12_N7ee332623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332623fooEv,_ZThn16_N7ee332623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332623fooEv,_ZTv0_n16_N7ee332623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332623fooEv,_ZThn8_N7ee332623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33262 = { "ee33262", // class name
+ bases_ee33262, 4,
+ &(vtc_ee33262[0]), // expected_vtbl_contents
+ &(vtt_ee33262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33262),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33262),5, //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 ee43262 : dd3262 {
+ int e;
+ virtual void bar(); // _ZN7ee432623barEv
+ ~ee43262(); // tgen
+ ee43262(); // tgen
+};
+//SIG(1 ee43262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43262 ::bar(){vfunc_called(this, "_ZN7ee432623barEv");}
+ee43262 ::~ee43262(){ note_dtor("ee43262", this);} // tgen
+ee43262 ::ee43262(){ note_ctor("ee43262", this);} // tgen
+
+static void Test_ee43262()
+{
+ extern Class_Descriptor cd_ee43262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43262, buf);
+ ee43262 *dp, &lv = *(dp=new (buf) ee43262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee43262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee43262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(16,12), "ee43262");
+ check_base_class_offset(lv, (dd3262*), 0, "ee43262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43262.e");
+ test_class_info(&lv, &cd_ee43262);
+ dp->~ee43262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43262(Test_ee43262, "ee43262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43262C1Ev();
+extern void _ZN7ee43262D1Ev();
+Name_Map name_map_ee43262[] = {
+ NSPAIR(_ZN7ee43262C1Ev),
+ NSPAIR(_ZN7ee43262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee43262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43262[];
+extern void _ZN6dd32623fooEv();
+extern void _ZN7ee432623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee432623barEv,_ZTv0_n16_N7ee432623barEv)();
+extern void ABISELECT(_ZThn16_N7ee432623barEv,_ZThn12_N7ee432623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+ (VTBL_ENTRY)&_ZN7ee432623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432623barEv,_ZTv0_n16_N7ee432623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee43262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee43262[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee43262[] = {
+ {&(_ZTV7ee43262[3]), 3,11},
+ {&(_tg__ZTV6dd3262__7ee43262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee43262[4]), 4,6},
+ {&(_ZTV7ee43262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43262[];
+extern VTBL_ENTRY _ZTV7ee43262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43262[];
+static VTBL_ENTRY alt_thunk_names1059[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432623barEv,_ZTv0_n16_N7ee432623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432623barEv,_ZThn12_N7ee432623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43262 = { "ee43262", // class name
+ bases_ee43262, 4,
+ &(vtc_ee43262[0]), // expected_vtbl_contents
+ &(vtt_ee43262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43262),4, //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 ee53262 : virtual dd3262 {
+ int e;
+ virtual void bar(); // _ZN7ee532623barEv
+ ~ee53262(); // tgen
+ ee53262(); // tgen
+};
+//SIG(1 ee53262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53262 ::bar(){vfunc_called(this, "_ZN7ee532623barEv");}
+ee53262 ::~ee53262(){ note_dtor("ee53262", this);} // tgen
+ee53262 ::ee53262(){ note_ctor("ee53262", this);} // tgen
+
+static void Test_ee53262()
+{
+ extern Class_Descriptor cd_ee53262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53262, buf);
+ ee53262 *dp, &lv = *(dp=new (buf) ee53262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee53262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee53262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(32,16), "ee53262");
+ check_base_class_offset(lv, (dd3262*), ABISELECT(16,8), "ee53262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53262.e");
+ test_class_info(&lv, &cd_ee53262);
+ dp->~ee53262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53262(Test_ee53262, "ee53262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53262C1Ev();
+extern void _ZN7ee53262D1Ev();
+Name_Map name_map_ee53262[] = {
+ NSPAIR(_ZN7ee53262C1Ev),
+ NSPAIR(_ZN7ee53262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee53262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, ABISELECT(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 _ZTI7ee53262[];
+extern void _ZN7ee532623barEv();
+extern void _ZN6dd32623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee532623barEv,_ZTv0_n16_N7ee532623barEv)();
+extern void ABISELECT(_ZThn32_N7ee532623barEv,_ZThn16_N7ee532623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53262[0]),
+ (VTBL_ENTRY)&_ZN7ee532623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532623barEv,_ZTv0_n16_N7ee532623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee53262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee53262[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee53262[] = {
+ {&(_ZTV7ee53262[4]), 4,16},
+ {&(_ZTV7ee53262[9]), 9,16},
+ {&(_ZTV7ee53262[14]), 14,16},
+ {&(_tg__ZTV6dd3262__7ee53262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee53262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53262[];
+extern VTBL_ENTRY _ZTV7ee53262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53262[];
+static VTBL_ENTRY alt_thunk_names1060[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532623barEv,_ZTv0_n16_N7ee532623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532623barEv,_ZThn16_N7ee532623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53262 = { "ee53262", // class name
+ bases_ee53262, 4,
+ &(vtc_ee53262[0]), // expected_vtbl_contents
+ &(vtt_ee53262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53262),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53262),5, //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 ee63262 : dd3262 {
+ int e;
+ virtual void foo(); // _ZN7ee632623fooEv
+ virtual void bar(); // _ZN7ee632623barEv
+ ~ee63262(); // tgen
+ ee63262(); // tgen
+};
+//SIG(1 ee63262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63262 ::foo(){vfunc_called(this, "_ZN7ee632623fooEv");}
+void ee63262 ::bar(){vfunc_called(this, "_ZN7ee632623barEv");}
+ee63262 ::~ee63262(){ note_dtor("ee63262", this);} // tgen
+ee63262 ::ee63262(){ note_ctor("ee63262", this);} // tgen
+
+static void Test_ee63262()
+{
+ extern Class_Descriptor cd_ee63262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63262, buf);
+ ee63262 *dp, &lv = *(dp=new (buf) ee63262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee63262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee63262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(16,12), "ee63262");
+ check_base_class_offset(lv, (dd3262*), 0, "ee63262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63262.e");
+ test_class_info(&lv, &cd_ee63262);
+ dp->~ee63262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63262(Test_ee63262, "ee63262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63262C1Ev();
+extern void _ZN7ee63262D1Ev();
+Name_Map name_map_ee63262[] = {
+ NSPAIR(_ZN7ee63262C1Ev),
+ NSPAIR(_ZN7ee63262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee63262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63262[];
+extern void _ZN7ee632623fooEv();
+extern void _ZN7ee632623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632623fooEv,_ZTv0_n12_N7ee632623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632623fooEv,_ZThn12_N7ee632623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632623barEv,_ZTv0_n16_N7ee632623barEv)();
+extern void ABISELECT(_ZThn16_N7ee632623barEv,_ZThn12_N7ee632623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63262[0]),
+ (VTBL_ENTRY)&_ZN7ee632623fooEv,
+ (VTBL_ENTRY)&_ZN7ee632623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632623fooEv,_ZTv0_n12_N7ee632623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632623barEv,_ZTv0_n16_N7ee632623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee63262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee63262[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee63262[] = {
+ {&(_ZTV7ee63262[3]), 3,11},
+ {&(_tg__ZTV6dd3262__7ee63262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee63262[4]), 4,6},
+ {&(_ZTV7ee63262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63262[];
+extern VTBL_ENTRY _ZTV7ee63262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63262[];
+static VTBL_ENTRY alt_thunk_names1061[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn12_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632623barEv,_ZTv0_n16_N7ee632623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632623barEv,_ZThn12_N7ee632623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632623fooEv,_ZTv0_n12_N7ee632623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632623fooEv,_ZThn12_N7ee632623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63262 = { "ee63262", // class name
+ bases_ee63262, 4,
+ &(vtc_ee63262[0]), // expected_vtbl_contents
+ &(vtt_ee63262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63262),4, //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 ee73262 : virtual dd3262 {
+ int e;
+ virtual void foo(); // _ZN7ee732623fooEv
+ virtual void bar(); // _ZN7ee732623barEv
+ ~ee73262(); // tgen
+ ee73262(); // tgen
+};
+//SIG(1 ee73262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73262 ::foo(){vfunc_called(this, "_ZN7ee732623fooEv");}
+void ee73262 ::bar(){vfunc_called(this, "_ZN7ee732623barEv");}
+ee73262 ::~ee73262(){ note_dtor("ee73262", this);} // tgen
+ee73262 ::ee73262(){ note_ctor("ee73262", this);} // tgen
+
+static void Test_ee73262()
+{
+ extern Class_Descriptor cd_ee73262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73262, buf);
+ ee73262 *dp, &lv = *(dp=new (buf) ee73262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee73262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee73262");
+ check_base_class_offset(lv, (cc262*)(dd3262*), ABISELECT(32,16), "ee73262");
+ check_base_class_offset(lv, (dd3262*), ABISELECT(16,8), "ee73262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73262.e");
+ test_class_info(&lv, &cd_ee73262);
+ dp->~ee73262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73262(Test_ee73262, "ee73262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73262C1Ev();
+extern void _ZN7ee73262D1Ev();
+Name_Map name_map_ee73262[] = {
+ NSPAIR(_ZN7ee73262C1Ev),
+ NSPAIR(_ZN7ee73262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd3262;
+extern VTBL_ENTRY _ZTI6dd3262[];
+extern VTBL_ENTRY _ZTV6dd3262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3262[];
+static Base_Class bases_ee73262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd3262, 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 _ZTI7ee73262[];
+extern void _ZN7ee732623fooEv();
+extern void _ZN7ee732623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732623fooEv,_ZTv0_n16_N7ee732623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732623fooEv,_ZThn8_N7ee732623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732623fooEv,_ZTv0_n12_N7ee732623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732623fooEv,_ZThn16_N7ee732623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732623barEv,_ZTv0_n16_N7ee732623barEv)();
+extern void ABISELECT(_ZThn32_N7ee732623barEv,_ZThn16_N7ee732623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73262[0]),
+ (VTBL_ENTRY)&_ZN7ee732623fooEv,
+ (VTBL_ENTRY)&_ZN7ee732623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732623fooEv,_ZTv0_n16_N7ee732623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732623fooEv,_ZTv0_n12_N7ee732623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732623barEv,_ZTv0_n16_N7ee732623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73262[];
+extern void _ZN6dd32623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3262__7ee73262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&_ZN6dd32623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV5cc262__6dd3262__7ee73262[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee73262[] = {
+ {&(_ZTV7ee73262[4]), 4,17},
+ {&(_ZTV7ee73262[10]), 10,17},
+ {&(_ZTV7ee73262[15]), 15,17},
+ {&(_tg__ZTV6dd3262__7ee73262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd3262__7ee73262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73262[];
+extern VTBL_ENTRY _ZTV7ee73262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73262[];
+static VTBL_ENTRY alt_thunk_names1062[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32623fooEv,_ZTv0_n12_N6dd32623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32623fooEv,_ZThn8_N6dd32623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732623barEv,_ZTv0_n16_N7ee732623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732623barEv,_ZThn16_N7ee732623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732623fooEv,_ZTv0_n12_N7ee732623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732623fooEv,_ZThn16_N7ee732623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732623fooEv,_ZTv0_n16_N7ee732623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732623fooEv,_ZThn8_N7ee732623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73262 = { "ee73262", // class name
+ bases_ee73262, 4,
+ &(vtc_ee73262[0]), // expected_vtbl_contents
+ &(vtt_ee73262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73262),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73262),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1062,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4262 : cc262 {
+ int d;
+ virtual void bar(); // _ZN6dd42623barEv
+ ~dd4262(); // tgen
+ dd4262(); // tgen
+};
+//SIG(-1 dd4262) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4262 ::bar(){vfunc_called(this, "_ZN6dd42623barEv");}
+dd4262 ::~dd4262(){ note_dtor("dd4262", this);} // tgen
+dd4262 ::dd4262(){ note_ctor("dd4262", this);} // tgen
+
+static void Test_dd4262()
+{
+ extern Class_Descriptor cd_dd4262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4262, buf);
+ dd4262 *dp, &lv = *(dp=new (buf) dd4262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), 0, "dd4262");
+ check_base_class_offset(lv, (bb62*)(cc262*), 0, "dd4262");
+ check_base_class_offset(lv, (cc262*), 0, "dd4262");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4262.d");
+ test_class_info(&lv, &cd_dd4262);
+ dp->~dd4262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4262(Test_dd4262, "dd4262", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4262C1Ev();
+extern void _ZN6dd4262D1Ev();
+Name_Map name_map_dd4262[] = {
+ NSPAIR(_ZN6dd4262C1Ev),
+ NSPAIR(_ZN6dd4262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd4262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN6dd42623barEv();
+static VTBL_ENTRY vtc_dd4262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN6dd42623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+Class_Descriptor cd_dd4262 = { "dd4262", // class name
+ bases_dd4262, 3,
+ &(vtc_dd4262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4262),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 ee04262 : dd4262 {
+ int e;
+ ~ee04262(); // tgen
+ ee04262(); // tgen
+};
+//SIG(1 ee04262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04262 ::~ee04262(){ note_dtor("ee04262", this);} // tgen
+ee04262 ::ee04262(){ note_ctor("ee04262", this);} // tgen
+
+static void Test_ee04262()
+{
+ extern Class_Descriptor cd_ee04262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04262, buf);
+ ee04262 *dp, &lv = *(dp=new (buf) ee04262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), 0, "ee04262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), 0, "ee04262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), 0, "ee04262");
+ check_base_class_offset(lv, (dd4262*), 0, "ee04262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04262.e");
+ test_class_info(&lv, &cd_ee04262);
+ dp->~ee04262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04262(Test_ee04262, "ee04262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04262C1Ev();
+extern void _ZN7ee04262D1Ev();
+Name_Map name_map_ee04262[] = {
+ NSPAIR(_ZN7ee04262C1Ev),
+ NSPAIR(_ZN7ee04262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee04262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, 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 _ZTI7ee04262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN6dd42623barEv();
+static VTBL_ENTRY vtc_ee04262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN6dd42623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04262[];
+extern VTBL_ENTRY _ZTV7ee04262[];
+Class_Descriptor cd_ee04262 = { "ee04262", // class name
+ bases_ee04262, 4,
+ &(vtc_ee04262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04262),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 ee14262 : virtual dd4262 {
+ int e;
+ ~ee14262(); // tgen
+ ee14262(); // tgen
+};
+//SIG(1 ee14262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14262 ::~ee14262(){ note_dtor("ee14262", this);} // tgen
+ee14262 ::ee14262(){ note_ctor("ee14262", this);} // tgen
+
+static void Test_ee14262()
+{
+ extern Class_Descriptor cd_ee14262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14262, buf);
+ ee14262 *dp, &lv = *(dp=new (buf) ee14262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee14262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee14262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), ABISELECT(16,8), "ee14262");
+ check_base_class_offset(lv, (dd4262*), ABISELECT(16,8), "ee14262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14262.e");
+ test_class_info(&lv, &cd_ee14262);
+ dp->~ee14262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14262(Test_ee14262, "ee14262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14262C1Ev();
+extern void _ZN7ee14262D1Ev();
+Name_Map name_map_ee14262[] = {
+ NSPAIR(_ZN7ee14262C1Ev),
+ NSPAIR(_ZN7ee14262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee14262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, 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 _ZTI7ee14262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN6dd42623barEv();
+static VTBL_ENTRY vtc_ee14262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN6dd42623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14262[];
+static VTT_ENTRY vtt_ee14262[] = {
+ {&(_ZTV7ee14262[3]), 3,9},
+ {&(_ZTV7ee14262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14262[];
+extern VTBL_ENTRY _ZTV7ee14262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14262[];
+Class_Descriptor cd_ee14262 = { "ee14262", // class name
+ bases_ee14262, 4,
+ &(vtc_ee14262[0]), // expected_vtbl_contents
+ &(vtt_ee14262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14262),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 ee24262 : dd4262 {
+ int e;
+ virtual void foo(); // _ZN7ee242623fooEv
+ ~ee24262(); // tgen
+ ee24262(); // tgen
+};
+//SIG(1 ee24262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24262 ::foo(){vfunc_called(this, "_ZN7ee242623fooEv");}
+ee24262 ::~ee24262(){ note_dtor("ee24262", this);} // tgen
+ee24262 ::ee24262(){ note_ctor("ee24262", this);} // tgen
+
+static void Test_ee24262()
+{
+ extern Class_Descriptor cd_ee24262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24262, buf);
+ ee24262 *dp, &lv = *(dp=new (buf) ee24262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), 0, "ee24262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), 0, "ee24262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), 0, "ee24262");
+ check_base_class_offset(lv, (dd4262*), 0, "ee24262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24262.e");
+ test_class_info(&lv, &cd_ee24262);
+ dp->~ee24262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24262(Test_ee24262, "ee24262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24262C1Ev();
+extern void _ZN7ee24262D1Ev();
+Name_Map name_map_ee24262[] = {
+ NSPAIR(_ZN7ee24262C1Ev),
+ NSPAIR(_ZN7ee24262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee24262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24262[];
+extern void _ZN7ee242623fooEv();
+extern void _ZN6dd42623barEv();
+static VTBL_ENTRY vtc_ee24262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24262[0]),
+ (VTBL_ENTRY)&_ZN7ee242623fooEv,
+ (VTBL_ENTRY)&_ZN6dd42623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24262[];
+extern VTBL_ENTRY _ZTV7ee24262[];
+Class_Descriptor cd_ee24262 = { "ee24262", // class name
+ bases_ee24262, 4,
+ &(vtc_ee24262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24262),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 ee34262 : virtual dd4262 {
+ int e;
+ virtual void foo(); // _ZN7ee342623fooEv
+ ~ee34262(); // tgen
+ ee34262(); // tgen
+};
+//SIG(1 ee34262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34262 ::foo(){vfunc_called(this, "_ZN7ee342623fooEv");}
+ee34262 ::~ee34262(){ note_dtor("ee34262", this);} // tgen
+ee34262 ::ee34262(){ note_ctor("ee34262", this);} // tgen
+
+static void Test_ee34262()
+{
+ extern Class_Descriptor cd_ee34262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34262, buf);
+ ee34262 *dp, &lv = *(dp=new (buf) ee34262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee34262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee34262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), ABISELECT(16,8), "ee34262");
+ check_base_class_offset(lv, (dd4262*), ABISELECT(16,8), "ee34262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34262.e");
+ test_class_info(&lv, &cd_ee34262);
+ dp->~ee34262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34262(Test_ee34262, "ee34262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34262C1Ev();
+extern void _ZN7ee34262D1Ev();
+Name_Map name_map_ee34262[] = {
+ NSPAIR(_ZN7ee34262C1Ev),
+ NSPAIR(_ZN7ee34262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee34262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, ABISELECT(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 _ZTI7ee34262[];
+extern void _ZN7ee342623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342623fooEv,_ZTv0_n12_N7ee342623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342623fooEv,_ZThn8_N7ee342623fooEv)() __attribute__((weak));
+extern void _ZN6dd42623barEv();
+static VTBL_ENTRY vtc_ee34262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34262[0]),
+ (VTBL_ENTRY)&_ZN7ee342623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342623fooEv,_ZTv0_n12_N7ee342623fooEv),
+ (VTBL_ENTRY)&_ZN6dd42623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34262[];
+static VTT_ENTRY vtt_ee34262[] = {
+ {&(_ZTV7ee34262[3]), 3,10},
+ {&(_ZTV7ee34262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34262[];
+extern VTBL_ENTRY _ZTV7ee34262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34262[];
+static VTBL_ENTRY alt_thunk_names1063[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342623fooEv,_ZTv0_n12_N7ee342623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342623fooEv,_ZThn8_N7ee342623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34262 = { "ee34262", // class name
+ bases_ee34262, 4,
+ &(vtc_ee34262[0]), // expected_vtbl_contents
+ &(vtt_ee34262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34262),2, //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 ee44262 : dd4262 {
+ int e;
+ virtual void bar(); // _ZN7ee442623barEv
+ ~ee44262(); // tgen
+ ee44262(); // tgen
+};
+//SIG(1 ee44262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44262 ::bar(){vfunc_called(this, "_ZN7ee442623barEv");}
+ee44262 ::~ee44262(){ note_dtor("ee44262", this);} // tgen
+ee44262 ::ee44262(){ note_ctor("ee44262", this);} // tgen
+
+static void Test_ee44262()
+{
+ extern Class_Descriptor cd_ee44262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44262, buf);
+ ee44262 *dp, &lv = *(dp=new (buf) ee44262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), 0, "ee44262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), 0, "ee44262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), 0, "ee44262");
+ check_base_class_offset(lv, (dd4262*), 0, "ee44262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44262.e");
+ test_class_info(&lv, &cd_ee44262);
+ dp->~ee44262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44262(Test_ee44262, "ee44262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44262C1Ev();
+extern void _ZN7ee44262D1Ev();
+Name_Map name_map_ee44262[] = {
+ NSPAIR(_ZN7ee44262C1Ev),
+ NSPAIR(_ZN7ee44262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee44262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44262[];
+extern void _ZN5cc2623fooEv();
+extern void _ZN7ee442623barEv();
+static VTBL_ENTRY vtc_ee44262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&_ZN7ee442623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44262[];
+extern VTBL_ENTRY _ZTV7ee44262[];
+Class_Descriptor cd_ee44262 = { "ee44262", // class name
+ bases_ee44262, 4,
+ &(vtc_ee44262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44262),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 ee54262 : virtual dd4262 {
+ int e;
+ virtual void bar(); // _ZN7ee542623barEv
+ ~ee54262(); // tgen
+ ee54262(); // tgen
+};
+//SIG(1 ee54262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54262 ::bar(){vfunc_called(this, "_ZN7ee542623barEv");}
+ee54262 ::~ee54262(){ note_dtor("ee54262", this);} // tgen
+ee54262 ::ee54262(){ note_ctor("ee54262", this);} // tgen
+
+static void Test_ee54262()
+{
+ extern Class_Descriptor cd_ee54262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54262, buf);
+ ee54262 *dp, &lv = *(dp=new (buf) ee54262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee54262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee54262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), ABISELECT(16,8), "ee54262");
+ check_base_class_offset(lv, (dd4262*), ABISELECT(16,8), "ee54262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54262.e");
+ test_class_info(&lv, &cd_ee54262);
+ dp->~ee54262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54262(Test_ee54262, "ee54262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54262C1Ev();
+extern void _ZN7ee54262D1Ev();
+Name_Map name_map_ee54262[] = {
+ NSPAIR(_ZN7ee54262C1Ev),
+ NSPAIR(_ZN7ee54262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee54262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, ABISELECT(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 _ZTI7ee54262[];
+extern void _ZN7ee542623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542623barEv,_ZTv0_n16_N7ee542623barEv)();
+extern void ABISELECT(_ZThn16_N7ee542623barEv,_ZThn8_N7ee542623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54262[0]),
+ (VTBL_ENTRY)&_ZN7ee542623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542623barEv,_ZTv0_n16_N7ee542623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54262[];
+static VTT_ENTRY vtt_ee54262[] = {
+ {&(_ZTV7ee54262[3]), 3,10},
+ {&(_ZTV7ee54262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54262[];
+extern VTBL_ENTRY _ZTV7ee54262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54262[];
+static VTBL_ENTRY alt_thunk_names1064[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542623barEv,_ZTv0_n16_N7ee542623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542623barEv,_ZThn8_N7ee542623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54262 = { "ee54262", // class name
+ bases_ee54262, 4,
+ &(vtc_ee54262[0]), // expected_vtbl_contents
+ &(vtt_ee54262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54262),2, //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 ee64262 : dd4262 {
+ int e;
+ virtual void foo(); // _ZN7ee642623fooEv
+ virtual void bar(); // _ZN7ee642623barEv
+ ~ee64262(); // tgen
+ ee64262(); // tgen
+};
+//SIG(1 ee64262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64262 ::foo(){vfunc_called(this, "_ZN7ee642623fooEv");}
+void ee64262 ::bar(){vfunc_called(this, "_ZN7ee642623barEv");}
+ee64262 ::~ee64262(){ note_dtor("ee64262", this);} // tgen
+ee64262 ::ee64262(){ note_ctor("ee64262", this);} // tgen
+
+static void Test_ee64262()
+{
+ extern Class_Descriptor cd_ee64262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64262, buf);
+ ee64262 *dp, &lv = *(dp=new (buf) ee64262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), 0, "ee64262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), 0, "ee64262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), 0, "ee64262");
+ check_base_class_offset(lv, (dd4262*), 0, "ee64262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64262.e");
+ test_class_info(&lv, &cd_ee64262);
+ dp->~ee64262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64262(Test_ee64262, "ee64262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64262C1Ev();
+extern void _ZN7ee64262D1Ev();
+Name_Map name_map_ee64262[] = {
+ NSPAIR(_ZN7ee64262C1Ev),
+ NSPAIR(_ZN7ee64262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee64262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64262[];
+extern void _ZN7ee642623fooEv();
+extern void _ZN7ee642623barEv();
+static VTBL_ENTRY vtc_ee64262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64262[0]),
+ (VTBL_ENTRY)&_ZN7ee642623fooEv,
+ (VTBL_ENTRY)&_ZN7ee642623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64262[];
+extern VTBL_ENTRY _ZTV7ee64262[];
+Class_Descriptor cd_ee64262 = { "ee64262", // class name
+ bases_ee64262, 4,
+ &(vtc_ee64262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64262),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 ee74262 : virtual dd4262 {
+ int e;
+ virtual void foo(); // _ZN7ee742623fooEv
+ virtual void bar(); // _ZN7ee742623barEv
+ ~ee74262(); // tgen
+ ee74262(); // tgen
+};
+//SIG(1 ee74262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74262 ::foo(){vfunc_called(this, "_ZN7ee742623fooEv");}
+void ee74262 ::bar(){vfunc_called(this, "_ZN7ee742623barEv");}
+ee74262 ::~ee74262(){ note_dtor("ee74262", this);} // tgen
+ee74262 ::ee74262(){ note_ctor("ee74262", this);} // tgen
+
+static void Test_ee74262()
+{
+ extern Class_Descriptor cd_ee74262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74262, buf);
+ ee74262 *dp, &lv = *(dp=new (buf) ee74262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee74262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd4262*), ABISELECT(16,8), "ee74262");
+ check_base_class_offset(lv, (cc262*)(dd4262*), ABISELECT(16,8), "ee74262");
+ check_base_class_offset(lv, (dd4262*), ABISELECT(16,8), "ee74262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74262.e");
+ test_class_info(&lv, &cd_ee74262);
+ dp->~ee74262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74262(Test_ee74262, "ee74262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74262C1Ev();
+extern void _ZN7ee74262D1Ev();
+Name_Map name_map_ee74262[] = {
+ NSPAIR(_ZN7ee74262C1Ev),
+ NSPAIR(_ZN7ee74262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd4262;
+extern VTBL_ENTRY _ZTI6dd4262[];
+extern VTBL_ENTRY _ZTV6dd4262[];
+static Base_Class bases_ee74262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4262, ABISELECT(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 _ZTI7ee74262[];
+extern void _ZN7ee742623fooEv();
+extern void _ZN7ee742623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742623fooEv,_ZTv0_n12_N7ee742623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742623fooEv,_ZThn8_N7ee742623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742623barEv,_ZTv0_n16_N7ee742623barEv)();
+extern void ABISELECT(_ZThn16_N7ee742623barEv,_ZThn8_N7ee742623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74262[0]),
+ (VTBL_ENTRY)&_ZN7ee742623fooEv,
+ (VTBL_ENTRY)&_ZN7ee742623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742623fooEv,_ZTv0_n12_N7ee742623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742623barEv,_ZTv0_n16_N7ee742623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74262[];
+static VTT_ENTRY vtt_ee74262[] = {
+ {&(_ZTV7ee74262[3]), 3,11},
+ {&(_ZTV7ee74262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74262[];
+extern VTBL_ENTRY _ZTV7ee74262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74262[];
+static VTBL_ENTRY alt_thunk_names1065[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742623barEv,_ZTv0_n16_N7ee742623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742623barEv,_ZThn8_N7ee742623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742623fooEv,_ZTv0_n12_N7ee742623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742623fooEv,_ZThn8_N7ee742623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74262 = { "ee74262", // class name
+ bases_ee74262, 4,
+ &(vtc_ee74262[0]), // expected_vtbl_contents
+ &(vtt_ee74262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74262),2, //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 dd5262 : virtual cc262 {
+ int d;
+ virtual void bar(); // _ZN6dd52623barEv
+ ~dd5262(); // tgen
+ dd5262(); // tgen
+};
+//SIG(-1 dd5262) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5262 ::bar(){vfunc_called(this, "_ZN6dd52623barEv");}
+dd5262 ::~dd5262(){ note_dtor("dd5262", this);} // tgen
+dd5262 ::dd5262(){ note_ctor("dd5262", this);} // tgen
+
+static void Test_dd5262()
+{
+ extern Class_Descriptor cd_dd5262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5262, buf);
+ dd5262 *dp, &lv = *(dp=new (buf) dd5262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,8), "dd5262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,8), "dd5262");
+ check_base_class_offset(lv, (cc262*), ABISELECT(16,8), "dd5262");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5262.d");
+ test_class_info(&lv, &cd_dd5262);
+ dp->~dd5262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5262(Test_dd5262, "dd5262", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5262C1Ev();
+extern void _ZN6dd5262D1Ev();
+Name_Map name_map_dd5262[] = {
+ NSPAIR(_ZN6dd5262C1Ev),
+ NSPAIR(_ZN6dd5262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd5262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(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 _ZTI6dd5262[];
+extern void _ZN6dd52623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5262[];
+static VTT_ENTRY vtt_dd5262[] = {
+ {&(_ZTV6dd5262[3]), 3,10},
+ {&(_ZTV6dd5262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static VTBL_ENTRY alt_thunk_names1066[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5262 = { "dd5262", // class name
+ bases_dd5262, 3,
+ &(vtc_dd5262[0]), // expected_vtbl_contents
+ &(vtt_dd5262[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5262),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1066,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05262 : dd5262 {
+ int e;
+ ~ee05262(); // tgen
+ ee05262(); // tgen
+};
+//SIG(1 ee05262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05262 ::~ee05262(){ note_dtor("ee05262", this);} // tgen
+ee05262 ::ee05262(){ note_ctor("ee05262", this);} // tgen
+
+static void Test_ee05262()
+{
+ extern Class_Descriptor cd_ee05262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05262, buf);
+ ee05262 *dp, &lv = *(dp=new (buf) ee05262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee05262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee05262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(16,12), "ee05262");
+ check_base_class_offset(lv, (dd5262*), 0, "ee05262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05262.e");
+ test_class_info(&lv, &cd_ee05262);
+ dp->~ee05262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05262(Test_ee05262, "ee05262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05262C1Ev();
+extern void _ZN7ee05262D1Ev();
+Name_Map name_map_ee05262[] = {
+ NSPAIR(_ZN7ee05262C1Ev),
+ NSPAIR(_ZN7ee05262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee05262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05262[];
+extern void _ZN6dd52623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee05262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee05262[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee05262[] = {
+ {&(_ZTV7ee05262[3]), 3,10},
+ {&(_tg__ZTV6dd5262__7ee05262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee05262[4]), 4,6},
+ {&(_ZTV7ee05262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05262[];
+extern VTBL_ENTRY _ZTV7ee05262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05262[];
+static VTBL_ENTRY alt_thunk_names1067[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05262 = { "ee05262", // class name
+ bases_ee05262, 4,
+ &(vtc_ee05262[0]), // expected_vtbl_contents
+ &(vtt_ee05262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05262),4, //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 ee15262 : virtual dd5262 {
+ int e;
+ ~ee15262(); // tgen
+ ee15262(); // tgen
+};
+//SIG(1 ee15262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15262 ::~ee15262(){ note_dtor("ee15262", this);} // tgen
+ee15262 ::ee15262(){ note_ctor("ee15262", this);} // tgen
+
+static void Test_ee15262()
+{
+ extern Class_Descriptor cd_ee15262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15262, buf);
+ ee15262 *dp, &lv = *(dp=new (buf) ee15262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee15262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee15262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(32,16), "ee15262");
+ check_base_class_offset(lv, (dd5262*), ABISELECT(16,8), "ee15262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15262.e");
+ test_class_info(&lv, &cd_ee15262);
+ dp->~ee15262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15262(Test_ee15262, "ee15262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15262C1Ev();
+extern void _ZN7ee15262D1Ev();
+Name_Map name_map_ee15262[] = {
+ NSPAIR(_ZN7ee15262C1Ev),
+ NSPAIR(_ZN7ee15262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee15262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, ABISELECT(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 _ZTI7ee15262[];
+extern void _ZN6dd52623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15262[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee15262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee15262[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee15262[] = {
+ {&(_ZTV7ee15262[4]), 4,15},
+ {&(_ZTV7ee15262[8]), 8,15},
+ {&(_ZTV7ee15262[13]), 13,15},
+ {&(_tg__ZTV6dd5262__7ee15262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee15262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15262[];
+extern VTBL_ENTRY _ZTV7ee15262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15262[];
+static VTBL_ENTRY alt_thunk_names1068[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15262 = { "ee15262", // class name
+ bases_ee15262, 4,
+ &(vtc_ee15262[0]), // expected_vtbl_contents
+ &(vtt_ee15262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15262),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15262),5, //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 ee25262 : dd5262 {
+ int e;
+ virtual void foo(); // _ZN7ee252623fooEv
+ ~ee25262(); // tgen
+ ee25262(); // tgen
+};
+//SIG(1 ee25262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25262 ::foo(){vfunc_called(this, "_ZN7ee252623fooEv");}
+ee25262 ::~ee25262(){ note_dtor("ee25262", this);} // tgen
+ee25262 ::ee25262(){ note_ctor("ee25262", this);} // tgen
+
+static void Test_ee25262()
+{
+ extern Class_Descriptor cd_ee25262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25262, buf);
+ ee25262 *dp, &lv = *(dp=new (buf) ee25262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee25262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee25262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(16,12), "ee25262");
+ check_base_class_offset(lv, (dd5262*), 0, "ee25262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25262.e");
+ test_class_info(&lv, &cd_ee25262);
+ dp->~ee25262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25262(Test_ee25262, "ee25262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25262C1Ev();
+extern void _ZN7ee25262D1Ev();
+Name_Map name_map_ee25262[] = {
+ NSPAIR(_ZN7ee25262C1Ev),
+ NSPAIR(_ZN7ee25262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee25262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25262[];
+extern void _ZN6dd52623barEv();
+extern void _ZN7ee252623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252623fooEv,_ZTv0_n12_N7ee252623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252623fooEv,_ZThn12_N7ee252623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+ (VTBL_ENTRY)&_ZN7ee252623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252623fooEv,_ZTv0_n12_N7ee252623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee25262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee25262[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee25262[] = {
+ {&(_ZTV7ee25262[3]), 3,11},
+ {&(_tg__ZTV6dd5262__7ee25262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee25262[4]), 4,6},
+ {&(_ZTV7ee25262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25262[];
+extern VTBL_ENTRY _ZTV7ee25262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25262[];
+static VTBL_ENTRY alt_thunk_names1069[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252623fooEv,_ZTv0_n12_N7ee252623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252623fooEv,_ZThn12_N7ee252623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25262 = { "ee25262", // class name
+ bases_ee25262, 4,
+ &(vtc_ee25262[0]), // expected_vtbl_contents
+ &(vtt_ee25262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25262),4, //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 ee35262 : virtual dd5262 {
+ int e;
+ virtual void foo(); // _ZN7ee352623fooEv
+ ~ee35262(); // tgen
+ ee35262(); // tgen
+};
+//SIG(1 ee35262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35262 ::foo(){vfunc_called(this, "_ZN7ee352623fooEv");}
+ee35262 ::~ee35262(){ note_dtor("ee35262", this);} // tgen
+ee35262 ::ee35262(){ note_ctor("ee35262", this);} // tgen
+
+static void Test_ee35262()
+{
+ extern Class_Descriptor cd_ee35262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35262, buf);
+ ee35262 *dp, &lv = *(dp=new (buf) ee35262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee35262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee35262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(32,16), "ee35262");
+ check_base_class_offset(lv, (dd5262*), ABISELECT(16,8), "ee35262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35262.e");
+ test_class_info(&lv, &cd_ee35262);
+ dp->~ee35262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35262(Test_ee35262, "ee35262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35262C1Ev();
+extern void _ZN7ee35262D1Ev();
+Name_Map name_map_ee35262[] = {
+ NSPAIR(_ZN7ee35262C1Ev),
+ NSPAIR(_ZN7ee35262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee35262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, ABISELECT(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 _ZTI7ee35262[];
+extern void _ZN7ee352623fooEv();
+extern void _ZN6dd52623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352623fooEv,_ZTv0_n12_N7ee352623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352623fooEv,_ZThn16_N7ee352623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35262[0]),
+ (VTBL_ENTRY)&_ZN7ee352623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352623fooEv,_ZTv0_n12_N7ee352623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee35262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee35262[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee35262[] = {
+ {&(_ZTV7ee35262[4]), 4,16},
+ {&(_ZTV7ee35262[9]), 9,16},
+ {&(_ZTV7ee35262[14]), 14,16},
+ {&(_tg__ZTV6dd5262__7ee35262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee35262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35262[];
+extern VTBL_ENTRY _ZTV7ee35262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35262[];
+static VTBL_ENTRY alt_thunk_names1070[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352623fooEv,_ZTv0_n12_N7ee352623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352623fooEv,_ZThn16_N7ee352623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35262 = { "ee35262", // class name
+ bases_ee35262, 4,
+ &(vtc_ee35262[0]), // expected_vtbl_contents
+ &(vtt_ee35262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35262),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35262),5, //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 ee45262 : dd5262 {
+ int e;
+ virtual void bar(); // _ZN7ee452623barEv
+ ~ee45262(); // tgen
+ ee45262(); // tgen
+};
+//SIG(1 ee45262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45262 ::bar(){vfunc_called(this, "_ZN7ee452623barEv");}
+ee45262 ::~ee45262(){ note_dtor("ee45262", this);} // tgen
+ee45262 ::ee45262(){ note_ctor("ee45262", this);} // tgen
+
+static void Test_ee45262()
+{
+ extern Class_Descriptor cd_ee45262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45262, buf);
+ ee45262 *dp, &lv = *(dp=new (buf) ee45262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee45262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee45262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(16,12), "ee45262");
+ check_base_class_offset(lv, (dd5262*), 0, "ee45262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45262.e");
+ test_class_info(&lv, &cd_ee45262);
+ dp->~ee45262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45262(Test_ee45262, "ee45262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45262C1Ev();
+extern void _ZN7ee45262D1Ev();
+Name_Map name_map_ee45262[] = {
+ NSPAIR(_ZN7ee45262C1Ev),
+ NSPAIR(_ZN7ee45262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee45262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45262[];
+extern void _ZN7ee452623barEv();
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452623barEv,_ZTv0_n16_N7ee452623barEv)();
+extern void ABISELECT(_ZThn16_N7ee452623barEv,_ZThn12_N7ee452623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45262[0]),
+ (VTBL_ENTRY)&_ZN7ee452623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452623barEv,_ZTv0_n16_N7ee452623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee45262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee45262[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee45262[] = {
+ {&(_ZTV7ee45262[3]), 3,10},
+ {&(_tg__ZTV6dd5262__7ee45262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee45262[4]), 4,6},
+ {&(_ZTV7ee45262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45262[];
+extern VTBL_ENTRY _ZTV7ee45262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45262[];
+static VTBL_ENTRY alt_thunk_names1071[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452623barEv,_ZTv0_n16_N7ee452623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452623barEv,_ZThn12_N7ee452623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45262 = { "ee45262", // class name
+ bases_ee45262, 4,
+ &(vtc_ee45262[0]), // expected_vtbl_contents
+ &(vtt_ee45262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45262),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1071,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55262 : virtual dd5262 {
+ int e;
+ virtual void bar(); // _ZN7ee552623barEv
+ ~ee55262(); // tgen
+ ee55262(); // tgen
+};
+//SIG(1 ee55262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55262 ::bar(){vfunc_called(this, "_ZN7ee552623barEv");}
+ee55262 ::~ee55262(){ note_dtor("ee55262", this);} // tgen
+ee55262 ::ee55262(){ note_ctor("ee55262", this);} // tgen
+
+static void Test_ee55262()
+{
+ extern Class_Descriptor cd_ee55262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55262, buf);
+ ee55262 *dp, &lv = *(dp=new (buf) ee55262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee55262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee55262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(32,16), "ee55262");
+ check_base_class_offset(lv, (dd5262*), ABISELECT(16,8), "ee55262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55262.e");
+ test_class_info(&lv, &cd_ee55262);
+ dp->~ee55262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55262(Test_ee55262, "ee55262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55262C1Ev();
+extern void _ZN7ee55262D1Ev();
+Name_Map name_map_ee55262[] = {
+ NSPAIR(_ZN7ee55262C1Ev),
+ NSPAIR(_ZN7ee55262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee55262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, ABISELECT(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 _ZTI7ee55262[];
+extern void _ZN7ee552623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552623barEv,_ZTv0_n16_N7ee552623barEv)();
+extern void ABISELECT(_ZThn16_N7ee552623barEv,_ZThn8_N7ee552623barEv)() __attribute__((weak));
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552623barEv,_ZTv0_n16_N7ee552623barEv)();
+extern void ABISELECT(_ZThn32_N7ee552623barEv,_ZThn16_N7ee552623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55262[0]),
+ (VTBL_ENTRY)&_ZN7ee552623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552623barEv,_ZTv0_n16_N7ee552623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552623barEv,_ZTv0_n16_N7ee552623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee55262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee55262[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee55262[] = {
+ {&(_ZTV7ee55262[4]), 4,16},
+ {&(_ZTV7ee55262[9]), 9,16},
+ {&(_ZTV7ee55262[14]), 14,16},
+ {&(_tg__ZTV6dd5262__7ee55262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee55262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55262[];
+extern VTBL_ENTRY _ZTV7ee55262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55262[];
+static VTBL_ENTRY alt_thunk_names1072[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552623barEv,_ZTv0_n16_N7ee552623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552623barEv,_ZThn16_N7ee552623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552623barEv,_ZThn8_N7ee552623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55262 = { "ee55262", // class name
+ bases_ee55262, 4,
+ &(vtc_ee55262[0]), // expected_vtbl_contents
+ &(vtt_ee55262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55262),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55262),5, //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 ee65262 : dd5262 {
+ int e;
+ virtual void foo(); // _ZN7ee652623fooEv
+ virtual void bar(); // _ZN7ee652623barEv
+ ~ee65262(); // tgen
+ ee65262(); // tgen
+};
+//SIG(1 ee65262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65262 ::foo(){vfunc_called(this, "_ZN7ee652623fooEv");}
+void ee65262 ::bar(){vfunc_called(this, "_ZN7ee652623barEv");}
+ee65262 ::~ee65262(){ note_dtor("ee65262", this);} // tgen
+ee65262 ::ee65262(){ note_ctor("ee65262", this);} // tgen
+
+static void Test_ee65262()
+{
+ extern Class_Descriptor cd_ee65262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65262, buf);
+ ee65262 *dp, &lv = *(dp=new (buf) ee65262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee65262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee65262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(16,12), "ee65262");
+ check_base_class_offset(lv, (dd5262*), 0, "ee65262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65262.e");
+ test_class_info(&lv, &cd_ee65262);
+ dp->~ee65262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65262(Test_ee65262, "ee65262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65262C1Ev();
+extern void _ZN7ee65262D1Ev();
+Name_Map name_map_ee65262[] = {
+ NSPAIR(_ZN7ee65262C1Ev),
+ NSPAIR(_ZN7ee65262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee65262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65262[];
+extern void _ZN7ee652623barEv();
+extern void _ZN7ee652623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652623fooEv,_ZTv0_n12_N7ee652623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652623fooEv,_ZThn12_N7ee652623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652623barEv,_ZTv0_n16_N7ee652623barEv)();
+extern void ABISELECT(_ZThn16_N7ee652623barEv,_ZThn12_N7ee652623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65262[0]),
+ (VTBL_ENTRY)&_ZN7ee652623barEv,
+ (VTBL_ENTRY)&_ZN7ee652623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652623fooEv,_ZTv0_n12_N7ee652623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652623barEv,_ZTv0_n16_N7ee652623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee65262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee65262[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee65262[] = {
+ {&(_ZTV7ee65262[3]), 3,11},
+ {&(_tg__ZTV6dd5262__7ee65262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee65262[4]), 4,6},
+ {&(_ZTV7ee65262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65262[];
+extern VTBL_ENTRY _ZTV7ee65262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65262[];
+static VTBL_ENTRY alt_thunk_names1073[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn12_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652623barEv,_ZTv0_n16_N7ee652623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652623barEv,_ZThn12_N7ee652623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652623fooEv,_ZTv0_n12_N7ee652623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652623fooEv,_ZThn12_N7ee652623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65262 = { "ee65262", // class name
+ bases_ee65262, 4,
+ &(vtc_ee65262[0]), // expected_vtbl_contents
+ &(vtt_ee65262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65262),4, //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 ee75262 : virtual dd5262 {
+ int e;
+ virtual void foo(); // _ZN7ee752623fooEv
+ virtual void bar(); // _ZN7ee752623barEv
+ ~ee75262(); // tgen
+ ee75262(); // tgen
+};
+//SIG(1 ee75262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75262 ::foo(){vfunc_called(this, "_ZN7ee752623fooEv");}
+void ee75262 ::bar(){vfunc_called(this, "_ZN7ee752623barEv");}
+ee75262 ::~ee75262(){ note_dtor("ee75262", this);} // tgen
+ee75262 ::ee75262(){ note_ctor("ee75262", this);} // tgen
+
+static void Test_ee75262()
+{
+ extern Class_Descriptor cd_ee75262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75262, buf);
+ ee75262 *dp, &lv = *(dp=new (buf) ee75262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee75262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee75262");
+ check_base_class_offset(lv, (cc262*)(dd5262*), ABISELECT(32,16), "ee75262");
+ check_base_class_offset(lv, (dd5262*), ABISELECT(16,8), "ee75262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75262.e");
+ test_class_info(&lv, &cd_ee75262);
+ dp->~ee75262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75262(Test_ee75262, "ee75262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75262C1Ev();
+extern void _ZN7ee75262D1Ev();
+Name_Map name_map_ee75262[] = {
+ NSPAIR(_ZN7ee75262C1Ev),
+ NSPAIR(_ZN7ee75262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd5262;
+extern VTBL_ENTRY _ZTI6dd5262[];
+extern VTBL_ENTRY _ZTV6dd5262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5262[];
+static Base_Class bases_ee75262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd5262, 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 _ZTI7ee75262[];
+extern void _ZN7ee752623fooEv();
+extern void _ZN7ee752623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752623barEv,_ZTv0_n16_N7ee752623barEv)();
+extern void ABISELECT(_ZThn16_N7ee752623barEv,_ZThn8_N7ee752623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752623fooEv,_ZTv0_n12_N7ee752623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752623fooEv,_ZThn16_N7ee752623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752623barEv,_ZTv0_n16_N7ee752623barEv)();
+extern void ABISELECT(_ZThn32_N7ee752623barEv,_ZThn16_N7ee752623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75262[0]),
+ (VTBL_ENTRY)&_ZN7ee752623fooEv,
+ (VTBL_ENTRY)&_ZN7ee752623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752623barEv,_ZTv0_n16_N7ee752623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752623fooEv,_ZTv0_n12_N7ee752623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752623barEv,_ZTv0_n16_N7ee752623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75262[];
+extern void _ZN6dd52623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5262__7ee75262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN6dd52623barEv,
+};
+extern void _ZN5cc2623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv)();
+extern void ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd5262__7ee75262[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5262[0]),
+ (VTBL_ENTRY)&_ZN5cc2623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv),
+};
+static VTT_ENTRY vtt_ee75262[] = {
+ {&(_ZTV7ee75262[4]), 4,17},
+ {&(_ZTV7ee75262[10]), 10,17},
+ {&(_ZTV7ee75262[15]), 15,17},
+ {&(_tg__ZTV6dd5262__7ee75262[3]), 3,4},
+ {&(_tg__ZTV5cc262__6dd5262__7ee75262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75262[];
+extern VTBL_ENTRY _ZTV7ee75262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75262[];
+static VTBL_ENTRY alt_thunk_names1074[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52623barEv,_ZTv0_n16_N6dd52623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52623barEv,_ZThn8_N6dd52623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752623fooEv,_ZTv0_n12_N7ee752623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752623fooEv,_ZThn16_N7ee752623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752623barEv,_ZTv0_n16_N7ee752623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752623barEv,_ZThn16_N7ee752623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752623barEv,_ZThn8_N7ee752623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75262 = { "ee75262", // class name
+ bases_ee75262, 4,
+ &(vtc_ee75262[0]), // expected_vtbl_contents
+ &(vtt_ee75262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75262),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75262),5, //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 dd6262 : cc262 {
+ int d;
+ virtual void bar(); // _ZN6dd62623barEv
+ virtual void foo(); // _ZN6dd62623fooEv
+ ~dd6262(); // tgen
+ dd6262(); // tgen
+};
+//SIG(-1 dd6262) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6262 ::bar(){vfunc_called(this, "_ZN6dd62623barEv");}
+void dd6262 ::foo(){vfunc_called(this, "_ZN6dd62623fooEv");}
+dd6262 ::~dd6262(){ note_dtor("dd6262", this);} // tgen
+dd6262 ::dd6262(){ note_ctor("dd6262", this);} // tgen
+
+static void Test_dd6262()
+{
+ extern Class_Descriptor cd_dd6262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6262, buf);
+ dd6262 *dp, &lv = *(dp=new (buf) dd6262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), 0, "dd6262");
+ check_base_class_offset(lv, (bb62*)(cc262*), 0, "dd6262");
+ check_base_class_offset(lv, (cc262*), 0, "dd6262");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6262.d");
+ test_class_info(&lv, &cd_dd6262);
+ dp->~dd6262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6262(Test_dd6262, "dd6262", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6262C1Ev();
+extern void _ZN6dd6262D1Ev();
+Name_Map name_map_dd6262[] = {
+ NSPAIR(_ZN6dd6262C1Ev),
+ NSPAIR(_ZN6dd6262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd6262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6262[];
+extern void _ZN6dd62623fooEv();
+extern void _ZN6dd62623barEv();
+static VTBL_ENTRY vtc_dd6262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6262[0]),
+ (VTBL_ENTRY)&_ZN6dd62623fooEv,
+ (VTBL_ENTRY)&_ZN6dd62623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+Class_Descriptor cd_dd6262 = { "dd6262", // class name
+ bases_dd6262, 3,
+ &(vtc_dd6262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6262),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 ee06262 : dd6262 {
+ int e;
+ ~ee06262(); // tgen
+ ee06262(); // tgen
+};
+//SIG(1 ee06262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06262 ::~ee06262(){ note_dtor("ee06262", this);} // tgen
+ee06262 ::ee06262(){ note_ctor("ee06262", this);} // tgen
+
+static void Test_ee06262()
+{
+ extern Class_Descriptor cd_ee06262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06262, buf);
+ ee06262 *dp, &lv = *(dp=new (buf) ee06262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), 0, "ee06262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), 0, "ee06262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), 0, "ee06262");
+ check_base_class_offset(lv, (dd6262*), 0, "ee06262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06262.e");
+ test_class_info(&lv, &cd_ee06262);
+ dp->~ee06262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06262(Test_ee06262, "ee06262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06262C1Ev();
+extern void _ZN7ee06262D1Ev();
+Name_Map name_map_ee06262[] = {
+ NSPAIR(_ZN7ee06262C1Ev),
+ NSPAIR(_ZN7ee06262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee06262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, 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 _ZTI7ee06262[];
+extern void _ZN6dd62623fooEv();
+extern void _ZN6dd62623barEv();
+static VTBL_ENTRY vtc_ee06262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06262[0]),
+ (VTBL_ENTRY)&_ZN6dd62623fooEv,
+ (VTBL_ENTRY)&_ZN6dd62623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06262[];
+extern VTBL_ENTRY _ZTV7ee06262[];
+Class_Descriptor cd_ee06262 = { "ee06262", // class name
+ bases_ee06262, 4,
+ &(vtc_ee06262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06262),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 ee16262 : virtual dd6262 {
+ int e;
+ ~ee16262(); // tgen
+ ee16262(); // tgen
+};
+//SIG(1 ee16262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16262 ::~ee16262(){ note_dtor("ee16262", this);} // tgen
+ee16262 ::ee16262(){ note_ctor("ee16262", this);} // tgen
+
+static void Test_ee16262()
+{
+ extern Class_Descriptor cd_ee16262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16262, buf);
+ ee16262 *dp, &lv = *(dp=new (buf) ee16262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee16262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee16262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), ABISELECT(16,8), "ee16262");
+ check_base_class_offset(lv, (dd6262*), ABISELECT(16,8), "ee16262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16262.e");
+ test_class_info(&lv, &cd_ee16262);
+ dp->~ee16262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16262(Test_ee16262, "ee16262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16262C1Ev();
+extern void _ZN7ee16262D1Ev();
+Name_Map name_map_ee16262[] = {
+ NSPAIR(_ZN7ee16262C1Ev),
+ NSPAIR(_ZN7ee16262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee16262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, 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 _ZTI7ee16262[];
+extern void _ZN6dd62623fooEv();
+extern void _ZN6dd62623barEv();
+static VTBL_ENTRY vtc_ee16262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16262[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16262[0]),
+ (VTBL_ENTRY)&_ZN6dd62623fooEv,
+ (VTBL_ENTRY)&_ZN6dd62623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16262[];
+static VTT_ENTRY vtt_ee16262[] = {
+ {&(_ZTV7ee16262[3]), 3,9},
+ {&(_ZTV7ee16262[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16262[];
+extern VTBL_ENTRY _ZTV7ee16262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16262[];
+Class_Descriptor cd_ee16262 = { "ee16262", // class name
+ bases_ee16262, 4,
+ &(vtc_ee16262[0]), // expected_vtbl_contents
+ &(vtt_ee16262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16262),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16262),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 ee26262 : dd6262 {
+ int e;
+ virtual void foo(); // _ZN7ee262623fooEv
+ ~ee26262(); // tgen
+ ee26262(); // tgen
+};
+//SIG(1 ee26262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26262 ::foo(){vfunc_called(this, "_ZN7ee262623fooEv");}
+ee26262 ::~ee26262(){ note_dtor("ee26262", this);} // tgen
+ee26262 ::ee26262(){ note_ctor("ee26262", this);} // tgen
+
+static void Test_ee26262()
+{
+ extern Class_Descriptor cd_ee26262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26262, buf);
+ ee26262 *dp, &lv = *(dp=new (buf) ee26262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), 0, "ee26262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), 0, "ee26262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), 0, "ee26262");
+ check_base_class_offset(lv, (dd6262*), 0, "ee26262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26262.e");
+ test_class_info(&lv, &cd_ee26262);
+ dp->~ee26262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26262(Test_ee26262, "ee26262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26262C1Ev();
+extern void _ZN7ee26262D1Ev();
+Name_Map name_map_ee26262[] = {
+ NSPAIR(_ZN7ee26262C1Ev),
+ NSPAIR(_ZN7ee26262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee26262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26262[];
+extern void _ZN7ee262623fooEv();
+extern void _ZN6dd62623barEv();
+static VTBL_ENTRY vtc_ee26262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26262[0]),
+ (VTBL_ENTRY)&_ZN7ee262623fooEv,
+ (VTBL_ENTRY)&_ZN6dd62623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26262[];
+extern VTBL_ENTRY _ZTV7ee26262[];
+Class_Descriptor cd_ee26262 = { "ee26262", // class name
+ bases_ee26262, 4,
+ &(vtc_ee26262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26262),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 ee36262 : virtual dd6262 {
+ int e;
+ virtual void foo(); // _ZN7ee362623fooEv
+ ~ee36262(); // tgen
+ ee36262(); // tgen
+};
+//SIG(1 ee36262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36262 ::foo(){vfunc_called(this, "_ZN7ee362623fooEv");}
+ee36262 ::~ee36262(){ note_dtor("ee36262", this);} // tgen
+ee36262 ::ee36262(){ note_ctor("ee36262", this);} // tgen
+
+static void Test_ee36262()
+{
+ extern Class_Descriptor cd_ee36262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36262, buf);
+ ee36262 *dp, &lv = *(dp=new (buf) ee36262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee36262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee36262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), ABISELECT(16,8), "ee36262");
+ check_base_class_offset(lv, (dd6262*), ABISELECT(16,8), "ee36262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36262.e");
+ test_class_info(&lv, &cd_ee36262);
+ dp->~ee36262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36262(Test_ee36262, "ee36262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36262C1Ev();
+extern void _ZN7ee36262D1Ev();
+Name_Map name_map_ee36262[] = {
+ NSPAIR(_ZN7ee36262C1Ev),
+ NSPAIR(_ZN7ee36262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee36262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, ABISELECT(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 _ZTI7ee36262[];
+extern void _ZN7ee362623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362623fooEv,_ZTv0_n12_N7ee362623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362623fooEv,_ZThn8_N7ee362623fooEv)() __attribute__((weak));
+extern void _ZN6dd62623barEv();
+static VTBL_ENTRY vtc_ee36262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36262[0]),
+ (VTBL_ENTRY)&_ZN7ee362623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362623fooEv,_ZTv0_n12_N7ee362623fooEv),
+ (VTBL_ENTRY)&_ZN6dd62623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36262[];
+static VTT_ENTRY vtt_ee36262[] = {
+ {&(_ZTV7ee36262[3]), 3,10},
+ {&(_ZTV7ee36262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36262[];
+extern VTBL_ENTRY _ZTV7ee36262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36262[];
+static VTBL_ENTRY alt_thunk_names1075[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362623fooEv,_ZTv0_n12_N7ee362623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362623fooEv,_ZThn8_N7ee362623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36262 = { "ee36262", // class name
+ bases_ee36262, 4,
+ &(vtc_ee36262[0]), // expected_vtbl_contents
+ &(vtt_ee36262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36262),2, //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 ee46262 : dd6262 {
+ int e;
+ virtual void bar(); // _ZN7ee462623barEv
+ ~ee46262(); // tgen
+ ee46262(); // tgen
+};
+//SIG(1 ee46262) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46262 ::bar(){vfunc_called(this, "_ZN7ee462623barEv");}
+ee46262 ::~ee46262(){ note_dtor("ee46262", this);} // tgen
+ee46262 ::ee46262(){ note_ctor("ee46262", this);} // tgen
+
+static void Test_ee46262()
+{
+ extern Class_Descriptor cd_ee46262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46262, buf);
+ ee46262 *dp, &lv = *(dp=new (buf) ee46262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), 0, "ee46262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), 0, "ee46262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), 0, "ee46262");
+ check_base_class_offset(lv, (dd6262*), 0, "ee46262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46262.e");
+ test_class_info(&lv, &cd_ee46262);
+ dp->~ee46262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46262(Test_ee46262, "ee46262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46262C1Ev();
+extern void _ZN7ee46262D1Ev();
+Name_Map name_map_ee46262[] = {
+ NSPAIR(_ZN7ee46262C1Ev),
+ NSPAIR(_ZN7ee46262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee46262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46262[];
+extern void _ZN6dd62623fooEv();
+extern void _ZN7ee462623barEv();
+static VTBL_ENTRY vtc_ee46262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46262[0]),
+ (VTBL_ENTRY)&_ZN6dd62623fooEv,
+ (VTBL_ENTRY)&_ZN7ee462623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46262[];
+extern VTBL_ENTRY _ZTV7ee46262[];
+Class_Descriptor cd_ee46262 = { "ee46262", // class name
+ bases_ee46262, 4,
+ &(vtc_ee46262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46262),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 ee56262 : virtual dd6262 {
+ int e;
+ virtual void bar(); // _ZN7ee562623barEv
+ ~ee56262(); // tgen
+ ee56262(); // tgen
+};
+//SIG(1 ee56262) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56262 ::bar(){vfunc_called(this, "_ZN7ee562623barEv");}
+ee56262 ::~ee56262(){ note_dtor("ee56262", this);} // tgen
+ee56262 ::ee56262(){ note_ctor("ee56262", this);} // tgen
+
+static void Test_ee56262()
+{
+ extern Class_Descriptor cd_ee56262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56262, buf);
+ ee56262 *dp, &lv = *(dp=new (buf) ee56262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee56262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee56262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), ABISELECT(16,8), "ee56262");
+ check_base_class_offset(lv, (dd6262*), ABISELECT(16,8), "ee56262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56262.e");
+ test_class_info(&lv, &cd_ee56262);
+ dp->~ee56262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56262(Test_ee56262, "ee56262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56262C1Ev();
+extern void _ZN7ee56262D1Ev();
+Name_Map name_map_ee56262[] = {
+ NSPAIR(_ZN7ee56262C1Ev),
+ NSPAIR(_ZN7ee56262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee56262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, ABISELECT(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 _ZTI7ee56262[];
+extern void _ZN7ee562623barEv();
+extern void _ZN6dd62623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562623barEv,_ZTv0_n16_N7ee562623barEv)();
+extern void ABISELECT(_ZThn16_N7ee562623barEv,_ZThn8_N7ee562623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56262[0]),
+ (VTBL_ENTRY)&_ZN7ee562623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56262[0]),
+ (VTBL_ENTRY)&_ZN6dd62623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562623barEv,_ZTv0_n16_N7ee562623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56262[];
+static VTT_ENTRY vtt_ee56262[] = {
+ {&(_ZTV7ee56262[3]), 3,10},
+ {&(_ZTV7ee56262[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56262[];
+extern VTBL_ENTRY _ZTV7ee56262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56262[];
+static VTBL_ENTRY alt_thunk_names1076[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562623barEv,_ZTv0_n16_N7ee562623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562623barEv,_ZThn8_N7ee562623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56262 = { "ee56262", // class name
+ bases_ee56262, 4,
+ &(vtc_ee56262[0]), // expected_vtbl_contents
+ &(vtt_ee56262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56262),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56262),2, //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 ee66262 : dd6262 {
+ int e;
+ virtual void foo(); // _ZN7ee662623fooEv
+ virtual void bar(); // _ZN7ee662623barEv
+ ~ee66262(); // tgen
+ ee66262(); // tgen
+};
+//SIG(1 ee66262) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66262 ::foo(){vfunc_called(this, "_ZN7ee662623fooEv");}
+void ee66262 ::bar(){vfunc_called(this, "_ZN7ee662623barEv");}
+ee66262 ::~ee66262(){ note_dtor("ee66262", this);} // tgen
+ee66262 ::ee66262(){ note_ctor("ee66262", this);} // tgen
+
+static void Test_ee66262()
+{
+ extern Class_Descriptor cd_ee66262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66262, buf);
+ ee66262 *dp, &lv = *(dp=new (buf) ee66262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), 0, "ee66262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), 0, "ee66262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), 0, "ee66262");
+ check_base_class_offset(lv, (dd6262*), 0, "ee66262");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66262.e");
+ test_class_info(&lv, &cd_ee66262);
+ dp->~ee66262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66262(Test_ee66262, "ee66262", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66262C1Ev();
+extern void _ZN7ee66262D1Ev();
+Name_Map name_map_ee66262[] = {
+ NSPAIR(_ZN7ee66262C1Ev),
+ NSPAIR(_ZN7ee66262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee66262[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66262[];
+extern void _ZN7ee662623fooEv();
+extern void _ZN7ee662623barEv();
+static VTBL_ENTRY vtc_ee66262[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66262[0]),
+ (VTBL_ENTRY)&_ZN7ee662623fooEv,
+ (VTBL_ENTRY)&_ZN7ee662623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66262[];
+extern VTBL_ENTRY _ZTV7ee66262[];
+Class_Descriptor cd_ee66262 = { "ee66262", // class name
+ bases_ee66262, 4,
+ &(vtc_ee66262[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66262),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 ee76262 : virtual dd6262 {
+ int e;
+ virtual void foo(); // _ZN7ee762623fooEv
+ virtual void bar(); // _ZN7ee762623barEv
+ ~ee76262(); // tgen
+ ee76262(); // tgen
+};
+//SIG(1 ee76262) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76262 ::foo(){vfunc_called(this, "_ZN7ee762623fooEv");}
+void ee76262 ::bar(){vfunc_called(this, "_ZN7ee762623barEv");}
+ee76262 ::~ee76262(){ note_dtor("ee76262", this);} // tgen
+ee76262 ::ee76262(){ note_ctor("ee76262", this);} // tgen
+
+static void Test_ee76262()
+{
+ extern Class_Descriptor cd_ee76262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76262, buf);
+ ee76262 *dp, &lv = *(dp=new (buf) ee76262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee76262");
+ check_base_class_offset(lv, (bb62*)(cc262*)(dd6262*), ABISELECT(16,8), "ee76262");
+ check_base_class_offset(lv, (cc262*)(dd6262*), ABISELECT(16,8), "ee76262");
+ check_base_class_offset(lv, (dd6262*), ABISELECT(16,8), "ee76262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76262.e");
+ test_class_info(&lv, &cd_ee76262);
+ dp->~ee76262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76262(Test_ee76262, "ee76262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76262C1Ev();
+extern void _ZN7ee76262D1Ev();
+Name_Map name_map_ee76262[] = {
+ NSPAIR(_ZN7ee76262C1Ev),
+ NSPAIR(_ZN7ee76262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd6262;
+extern VTBL_ENTRY _ZTI6dd6262[];
+extern VTBL_ENTRY _ZTV6dd6262[];
+static Base_Class bases_ee76262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6262, ABISELECT(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 _ZTI7ee76262[];
+extern void _ZN7ee762623fooEv();
+extern void _ZN7ee762623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762623fooEv,_ZTv0_n12_N7ee762623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762623fooEv,_ZThn8_N7ee762623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762623barEv,_ZTv0_n16_N7ee762623barEv)();
+extern void ABISELECT(_ZThn16_N7ee762623barEv,_ZThn8_N7ee762623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76262[0]),
+ (VTBL_ENTRY)&_ZN7ee762623fooEv,
+ (VTBL_ENTRY)&_ZN7ee762623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762623fooEv,_ZTv0_n12_N7ee762623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762623barEv,_ZTv0_n16_N7ee762623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76262[];
+static VTT_ENTRY vtt_ee76262[] = {
+ {&(_ZTV7ee76262[3]), 3,11},
+ {&(_ZTV7ee76262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76262[];
+extern VTBL_ENTRY _ZTV7ee76262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76262[];
+static VTBL_ENTRY alt_thunk_names1077[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762623barEv,_ZTv0_n16_N7ee762623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762623barEv,_ZThn8_N7ee762623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762623fooEv,_ZTv0_n12_N7ee762623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762623fooEv,_ZThn8_N7ee762623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76262 = { "ee76262", // class name
+ bases_ee76262, 4,
+ &(vtc_ee76262[0]), // expected_vtbl_contents
+ &(vtt_ee76262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76262),2, //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 dd7262 : virtual cc262 {
+ int d;
+ virtual void bar(); // _ZN6dd72623barEv
+ virtual void foo(); // _ZN6dd72623fooEv
+ ~dd7262(); // tgen
+ dd7262(); // tgen
+};
+//SIG(-1 dd7262) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7262 ::bar(){vfunc_called(this, "_ZN6dd72623barEv");}
+void dd7262 ::foo(){vfunc_called(this, "_ZN6dd72623fooEv");}
+dd7262 ::~dd7262(){ note_dtor("dd7262", this);} // tgen
+dd7262 ::dd7262(){ note_ctor("dd7262", this);} // tgen
+
+static void Test_dd7262()
+{
+ extern Class_Descriptor cd_dd7262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7262, buf);
+ dd7262 *dp, &lv = *(dp=new (buf) dd7262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,8), "dd7262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,8), "dd7262");
+ check_base_class_offset(lv, (cc262*), ABISELECT(16,8), "dd7262");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7262.d");
+ test_class_info(&lv, &cd_dd7262);
+ dp->~dd7262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7262(Test_dd7262, "dd7262", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7262C1Ev();
+extern void _ZN6dd7262D1Ev();
+Name_Map name_map_dd7262[] = {
+ NSPAIR(_ZN6dd7262C1Ev),
+ NSPAIR(_ZN6dd7262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+static Base_Class bases_dd7262[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, ABISELECT(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 _ZTI6dd7262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7262[];
+static VTT_ENTRY vtt_dd7262[] = {
+ {&(_ZTV6dd7262[3]), 3,11},
+ {&(_ZTV6dd7262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static VTBL_ENTRY alt_thunk_names1078[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7262 = { "dd7262", // class name
+ bases_dd7262, 3,
+ &(vtc_dd7262[0]), // expected_vtbl_contents
+ &(vtt_dd7262[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7262),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1078,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07262 : dd7262 {
+ int e;
+ ~ee07262(); // tgen
+ ee07262(); // tgen
+};
+//SIG(1 ee07262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07262 ::~ee07262(){ note_dtor("ee07262", this);} // tgen
+ee07262 ::ee07262(){ note_ctor("ee07262", this);} // tgen
+
+static void Test_ee07262()
+{
+ extern Class_Descriptor cd_ee07262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07262, buf);
+ ee07262 *dp, &lv = *(dp=new (buf) ee07262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee07262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee07262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(16,12), "ee07262");
+ check_base_class_offset(lv, (dd7262*), 0, "ee07262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07262.e");
+ test_class_info(&lv, &cd_ee07262);
+ dp->~ee07262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07262(Test_ee07262, "ee07262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07262C1Ev();
+extern void _ZN7ee07262D1Ev();
+Name_Map name_map_ee07262[] = {
+ NSPAIR(_ZN7ee07262C1Ev),
+ NSPAIR(_ZN7ee07262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee07262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee07262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee07262[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee07262[] = {
+ {&(_ZTV7ee07262[3]), 3,11},
+ {&(_tg__ZTV6dd7262__7ee07262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee07262[4]), 4,6},
+ {&(_ZTV7ee07262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07262[];
+extern VTBL_ENTRY _ZTV7ee07262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07262[];
+static VTBL_ENTRY alt_thunk_names1079[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07262 = { "ee07262", // class name
+ bases_ee07262, 4,
+ &(vtc_ee07262[0]), // expected_vtbl_contents
+ &(vtt_ee07262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07262),4, //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 ee17262 : virtual dd7262 {
+ int e;
+ ~ee17262(); // tgen
+ ee17262(); // tgen
+};
+//SIG(1 ee17262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17262 ::~ee17262(){ note_dtor("ee17262", this);} // tgen
+ee17262 ::ee17262(){ note_ctor("ee17262", this);} // tgen
+
+static void Test_ee17262()
+{
+ extern Class_Descriptor cd_ee17262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17262, buf);
+ ee17262 *dp, &lv = *(dp=new (buf) ee17262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee17262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee17262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(32,16), "ee17262");
+ check_base_class_offset(lv, (dd7262*), ABISELECT(16,8), "ee17262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17262.e");
+ test_class_info(&lv, &cd_ee17262);
+ dp->~ee17262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17262(Test_ee17262, "ee17262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17262C1Ev();
+extern void _ZN7ee17262D1Ev();
+Name_Map name_map_ee17262[] = {
+ NSPAIR(_ZN7ee17262C1Ev),
+ NSPAIR(_ZN7ee17262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee17262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, 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 _ZTI7ee17262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17262[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee17262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee17262[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee17262[] = {
+ {&(_ZTV7ee17262[4]), 4,17},
+ {&(_ZTV7ee17262[9]), 9,17},
+ {&(_ZTV7ee17262[15]), 15,17},
+ {&(_tg__ZTV6dd7262__7ee17262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee17262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17262[];
+extern VTBL_ENTRY _ZTV7ee17262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17262[];
+static VTBL_ENTRY alt_thunk_names1080[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17262 = { "ee17262", // class name
+ bases_ee17262, 4,
+ &(vtc_ee17262[0]), // expected_vtbl_contents
+ &(vtt_ee17262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17262),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17262),5, //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 ee27262 : dd7262 {
+ int e;
+ virtual void foo(); // _ZN7ee272623fooEv
+ ~ee27262(); // tgen
+ ee27262(); // tgen
+};
+//SIG(1 ee27262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27262 ::foo(){vfunc_called(this, "_ZN7ee272623fooEv");}
+ee27262 ::~ee27262(){ note_dtor("ee27262", this);} // tgen
+ee27262 ::ee27262(){ note_ctor("ee27262", this);} // tgen
+
+static void Test_ee27262()
+{
+ extern Class_Descriptor cd_ee27262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27262, buf);
+ ee27262 *dp, &lv = *(dp=new (buf) ee27262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee27262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee27262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(16,12), "ee27262");
+ check_base_class_offset(lv, (dd7262*), 0, "ee27262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27262.e");
+ test_class_info(&lv, &cd_ee27262);
+ dp->~ee27262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27262(Test_ee27262, "ee27262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27262C1Ev();
+extern void _ZN7ee27262D1Ev();
+Name_Map name_map_ee27262[] = {
+ NSPAIR(_ZN7ee27262C1Ev),
+ NSPAIR(_ZN7ee27262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee27262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN7ee272623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272623fooEv,_ZTv0_n12_N7ee272623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272623fooEv,_ZThn12_N7ee272623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN7ee272623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272623fooEv,_ZTv0_n12_N7ee272623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee27262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee27262[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee27262[] = {
+ {&(_ZTV7ee27262[3]), 3,11},
+ {&(_tg__ZTV6dd7262__7ee27262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee27262[4]), 4,6},
+ {&(_ZTV7ee27262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27262[];
+extern VTBL_ENTRY _ZTV7ee27262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27262[];
+static VTBL_ENTRY alt_thunk_names1081[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272623fooEv,_ZTv0_n12_N7ee272623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272623fooEv,_ZThn12_N7ee272623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27262 = { "ee27262", // class name
+ bases_ee27262, 4,
+ &(vtc_ee27262[0]), // expected_vtbl_contents
+ &(vtt_ee27262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27262),4, //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 ee37262 : virtual dd7262 {
+ int e;
+ virtual void foo(); // _ZN7ee372623fooEv
+ ~ee37262(); // tgen
+ ee37262(); // tgen
+};
+//SIG(1 ee37262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37262 ::foo(){vfunc_called(this, "_ZN7ee372623fooEv");}
+ee37262 ::~ee37262(){ note_dtor("ee37262", this);} // tgen
+ee37262 ::ee37262(){ note_ctor("ee37262", this);} // tgen
+
+static void Test_ee37262()
+{
+ extern Class_Descriptor cd_ee37262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37262, buf);
+ ee37262 *dp, &lv = *(dp=new (buf) ee37262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee37262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee37262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(32,16), "ee37262");
+ check_base_class_offset(lv, (dd7262*), ABISELECT(16,8), "ee37262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37262.e");
+ test_class_info(&lv, &cd_ee37262);
+ dp->~ee37262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37262(Test_ee37262, "ee37262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37262C1Ev();
+extern void _ZN7ee37262D1Ev();
+Name_Map name_map_ee37262[] = {
+ NSPAIR(_ZN7ee37262C1Ev),
+ NSPAIR(_ZN7ee37262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee37262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, ABISELECT(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 _ZTI7ee37262[];
+extern void _ZN7ee372623fooEv();
+extern void _ZN6dd72623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372623fooEv,_ZTv0_n20_N7ee372623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372623fooEv,_ZThn8_N7ee372623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372623fooEv,_ZTv0_n12_N7ee372623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372623fooEv,_ZThn16_N7ee372623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37262[0]),
+ (VTBL_ENTRY)&_ZN7ee372623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372623fooEv,_ZTv0_n20_N7ee372623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372623fooEv,_ZTv0_n12_N7ee372623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee37262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee37262[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee37262[] = {
+ {&(_ZTV7ee37262[4]), 4,18},
+ {&(_ZTV7ee37262[10]), 10,18},
+ {&(_ZTV7ee37262[16]), 16,18},
+ {&(_tg__ZTV6dd7262__7ee37262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee37262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37262[];
+extern VTBL_ENTRY _ZTV7ee37262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37262[];
+static VTBL_ENTRY alt_thunk_names1082[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372623fooEv,_ZTv0_n12_N7ee372623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372623fooEv,_ZThn16_N7ee372623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372623fooEv,_ZTv0_n20_N7ee372623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372623fooEv,_ZThn8_N7ee372623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37262 = { "ee37262", // class name
+ bases_ee37262, 4,
+ &(vtc_ee37262[0]), // expected_vtbl_contents
+ &(vtt_ee37262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37262),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37262),5, //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 ee47262 : dd7262 {
+ int e;
+ virtual void bar(); // _ZN7ee472623barEv
+ ~ee47262(); // tgen
+ ee47262(); // tgen
+};
+//SIG(1 ee47262) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47262 ::bar(){vfunc_called(this, "_ZN7ee472623barEv");}
+ee47262 ::~ee47262(){ note_dtor("ee47262", this);} // tgen
+ee47262 ::ee47262(){ note_ctor("ee47262", this);} // tgen
+
+static void Test_ee47262()
+{
+ extern Class_Descriptor cd_ee47262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47262, buf);
+ ee47262 *dp, &lv = *(dp=new (buf) ee47262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee47262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee47262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(16,12), "ee47262");
+ check_base_class_offset(lv, (dd7262*), 0, "ee47262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47262.e");
+ test_class_info(&lv, &cd_ee47262);
+ dp->~ee47262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47262(Test_ee47262, "ee47262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47262C1Ev();
+extern void _ZN7ee47262D1Ev();
+Name_Map name_map_ee47262[] = {
+ NSPAIR(_ZN7ee47262C1Ev),
+ NSPAIR(_ZN7ee47262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee47262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47262[];
+extern void _ZN7ee472623barEv();
+extern void _ZN6dd72623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee472623barEv,_ZTv0_n16_N7ee472623barEv)();
+extern void ABISELECT(_ZThn16_N7ee472623barEv,_ZThn12_N7ee472623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47262[0]),
+ (VTBL_ENTRY)&_ZN7ee472623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472623barEv,_ZTv0_n16_N7ee472623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee47262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee47262[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee47262[] = {
+ {&(_ZTV7ee47262[3]), 3,11},
+ {&(_tg__ZTV6dd7262__7ee47262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee47262[4]), 4,6},
+ {&(_ZTV7ee47262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47262[];
+extern VTBL_ENTRY _ZTV7ee47262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47262[];
+static VTBL_ENTRY alt_thunk_names1083[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472623barEv,_ZTv0_n16_N7ee472623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472623barEv,_ZThn12_N7ee472623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47262 = { "ee47262", // class name
+ bases_ee47262, 4,
+ &(vtc_ee47262[0]), // expected_vtbl_contents
+ &(vtt_ee47262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47262),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 ee57262 : virtual dd7262 {
+ int e;
+ virtual void bar(); // _ZN7ee572623barEv
+ ~ee57262(); // tgen
+ ee57262(); // tgen
+};
+//SIG(1 ee57262) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57262 ::bar(){vfunc_called(this, "_ZN7ee572623barEv");}
+ee57262 ::~ee57262(){ note_dtor("ee57262", this);} // tgen
+ee57262 ::ee57262(){ note_ctor("ee57262", this);} // tgen
+
+static void Test_ee57262()
+{
+ extern Class_Descriptor cd_ee57262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57262, buf);
+ ee57262 *dp, &lv = *(dp=new (buf) ee57262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee57262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee57262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(32,16), "ee57262");
+ check_base_class_offset(lv, (dd7262*), ABISELECT(16,8), "ee57262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57262.e");
+ test_class_info(&lv, &cd_ee57262);
+ dp->~ee57262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57262(Test_ee57262, "ee57262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57262C1Ev();
+extern void _ZN7ee57262D1Ev();
+Name_Map name_map_ee57262[] = {
+ NSPAIR(_ZN7ee57262C1Ev),
+ NSPAIR(_ZN7ee57262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee57262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, ABISELECT(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 _ZTI7ee57262[];
+extern void _ZN7ee572623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572623barEv,_ZTv0_n16_N7ee572623barEv)();
+extern void ABISELECT(_ZThn16_N7ee572623barEv,_ZThn8_N7ee572623barEv)() __attribute__((weak));
+extern void _ZN6dd72623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee572623barEv,_ZTv0_n16_N7ee572623barEv)();
+extern void ABISELECT(_ZThn32_N7ee572623barEv,_ZThn16_N7ee572623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57262[0]),
+ (VTBL_ENTRY)&_ZN7ee572623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572623barEv,_ZTv0_n16_N7ee572623barEv),
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572623barEv,_ZTv0_n16_N7ee572623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee57262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee57262[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee57262[] = {
+ {&(_ZTV7ee57262[4]), 4,18},
+ {&(_ZTV7ee57262[10]), 10,18},
+ {&(_ZTV7ee57262[16]), 16,18},
+ {&(_tg__ZTV6dd7262__7ee57262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee57262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57262[];
+extern VTBL_ENTRY _ZTV7ee57262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57262[];
+static VTBL_ENTRY alt_thunk_names1084[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572623barEv,_ZTv0_n16_N7ee572623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572623barEv,_ZThn16_N7ee572623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572623barEv,_ZThn8_N7ee572623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57262 = { "ee57262", // class name
+ bases_ee57262, 4,
+ &(vtc_ee57262[0]), // expected_vtbl_contents
+ &(vtt_ee57262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57262),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57262),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 ee67262 : dd7262 {
+ int e;
+ virtual void foo(); // _ZN7ee672623fooEv
+ virtual void bar(); // _ZN7ee672623barEv
+ ~ee67262(); // tgen
+ ee67262(); // tgen
+};
+//SIG(1 ee67262) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67262 ::foo(){vfunc_called(this, "_ZN7ee672623fooEv");}
+void ee67262 ::bar(){vfunc_called(this, "_ZN7ee672623barEv");}
+ee67262 ::~ee67262(){ note_dtor("ee67262", this);} // tgen
+ee67262 ::ee67262(){ note_ctor("ee67262", this);} // tgen
+
+static void Test_ee67262()
+{
+ extern Class_Descriptor cd_ee67262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67262, buf);
+ ee67262 *dp, &lv = *(dp=new (buf) ee67262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(16,12), "ee67262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(16,12), "ee67262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(16,12), "ee67262");
+ check_base_class_offset(lv, (dd7262*), 0, "ee67262");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67262.e");
+ test_class_info(&lv, &cd_ee67262);
+ dp->~ee67262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67262(Test_ee67262, "ee67262", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67262C1Ev();
+extern void _ZN7ee67262D1Ev();
+Name_Map name_map_ee67262[] = {
+ NSPAIR(_ZN7ee67262C1Ev),
+ NSPAIR(_ZN7ee67262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee67262[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67262[];
+extern void _ZN7ee672623barEv();
+extern void _ZN7ee672623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672623fooEv,_ZTv0_n12_N7ee672623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672623fooEv,_ZThn12_N7ee672623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672623barEv,_ZTv0_n16_N7ee672623barEv)();
+extern void ABISELECT(_ZThn16_N7ee672623barEv,_ZThn12_N7ee672623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67262[0]),
+ (VTBL_ENTRY)&_ZN7ee672623barEv,
+ (VTBL_ENTRY)&_ZN7ee672623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672623fooEv,_ZTv0_n12_N7ee672623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672623barEv,_ZTv0_n16_N7ee672623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee67262[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee67262[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee67262[] = {
+ {&(_ZTV7ee67262[3]), 3,11},
+ {&(_tg__ZTV6dd7262__7ee67262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee67262[4]), 4,6},
+ {&(_ZTV7ee67262[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67262[];
+extern VTBL_ENTRY _ZTV7ee67262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67262[];
+static VTBL_ENTRY alt_thunk_names1085[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn12_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn12_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672623barEv,_ZTv0_n16_N7ee672623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672623barEv,_ZThn12_N7ee672623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672623fooEv,_ZTv0_n12_N7ee672623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672623fooEv,_ZThn12_N7ee672623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67262 = { "ee67262", // class name
+ bases_ee67262, 4,
+ &(vtc_ee67262[0]), // expected_vtbl_contents
+ &(vtt_ee67262[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67262),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67262),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67262),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 ee77262 : virtual dd7262 {
+ int e;
+ virtual void foo(); // _ZN7ee772623fooEv
+ virtual void bar(); // _ZN7ee772623barEv
+ ~ee77262(); // tgen
+ ee77262(); // tgen
+};
+//SIG(1 ee77262) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77262 ::foo(){vfunc_called(this, "_ZN7ee772623fooEv");}
+void ee77262 ::bar(){vfunc_called(this, "_ZN7ee772623barEv");}
+ee77262 ::~ee77262(){ note_dtor("ee77262", this);} // tgen
+ee77262 ::ee77262(){ note_ctor("ee77262", this);} // tgen
+
+static void Test_ee77262()
+{
+ extern Class_Descriptor cd_ee77262;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77262, buf);
+ ee77262 *dp, &lv = *(dp=new (buf) ee77262());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77262)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77262)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc262*), ABISELECT(32,16), "ee77262");
+ check_base_class_offset(lv, (bb62*)(cc262*), ABISELECT(32,16), "ee77262");
+ check_base_class_offset(lv, (cc262*)(dd7262*), ABISELECT(32,16), "ee77262");
+ check_base_class_offset(lv, (dd7262*), ABISELECT(16,8), "ee77262");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77262.e");
+ test_class_info(&lv, &cd_ee77262);
+ dp->~ee77262();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77262(Test_ee77262, "ee77262", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77262C1Ev();
+extern void _ZN7ee77262D1Ev();
+Name_Map name_map_ee77262[] = {
+ NSPAIR(_ZN7ee77262C1Ev),
+ NSPAIR(_ZN7ee77262D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc262;
+extern VTBL_ENTRY _ZTI5cc262[];
+extern VTBL_ENTRY _ZTV5cc262[];
+extern Class_Descriptor cd_dd7262;
+extern VTBL_ENTRY _ZTI6dd7262[];
+extern VTBL_ENTRY _ZTV6dd7262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7262[];
+static Base_Class bases_ee77262[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc262, 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_dd7262, ABISELECT(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 _ZTI7ee77262[];
+extern void _ZN7ee772623fooEv();
+extern void _ZN7ee772623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772623barEv,_ZTv0_n16_N7ee772623barEv)();
+extern void ABISELECT(_ZThn16_N7ee772623barEv,_ZThn8_N7ee772623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772623fooEv,_ZTv0_n20_N7ee772623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772623fooEv,_ZThn8_N7ee772623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772623fooEv,_ZTv0_n12_N7ee772623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772623fooEv,_ZThn16_N7ee772623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772623barEv,_ZTv0_n16_N7ee772623barEv)();
+extern void ABISELECT(_ZThn32_N7ee772623barEv,_ZThn16_N7ee772623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77262[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77262[0]),
+ (VTBL_ENTRY)&_ZN7ee772623fooEv,
+ (VTBL_ENTRY)&_ZN7ee772623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772623barEv,_ZTv0_n16_N7ee772623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772623fooEv,_ZTv0_n20_N7ee772623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772623fooEv,_ZTv0_n12_N7ee772623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772623barEv,_ZTv0_n16_N7ee772623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77262[];
+extern void _ZN6dd72623barEv();
+extern void _ZN6dd72623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7262__7ee77262[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&_ZN6dd72623barEv,
+ (VTBL_ENTRY)&_ZN6dd72623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv)();
+extern void ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc262__6dd7262__7ee77262[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7262[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv),
+};
+static VTT_ENTRY vtt_ee77262[] = {
+ {&(_ZTV7ee77262[4]), 4,19},
+ {&(_ZTV7ee77262[11]), 11,19},
+ {&(_ZTV7ee77262[17]), 17,19},
+ {&(_tg__ZTV6dd7262__7ee77262[3]), 3,5},
+ {&(_tg__ZTV5cc262__6dd7262__7ee77262[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77262[];
+extern VTBL_ENTRY _ZTV7ee77262[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77262[];
+static VTBL_ENTRY alt_thunk_names1086[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72623barEv,_ZTv0_n16_N6dd72623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623barEv,_ZThn8_N6dd72623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72623fooEv,_ZTv0_n12_N6dd72623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72623fooEv,_ZThn8_N6dd72623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772623fooEv,_ZTv0_n12_N7ee772623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772623fooEv,_ZThn16_N7ee772623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772623fooEv,_ZTv0_n20_N7ee772623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772623fooEv,_ZThn8_N7ee772623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772623barEv,_ZTv0_n16_N7ee772623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772623barEv,_ZThn16_N7ee772623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772623barEv,_ZThn8_N7ee772623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77262 = { "ee77262", // class name
+ bases_ee77262, 4,
+ &(vtc_ee77262[0]), // expected_vtbl_contents
+ &(vtt_ee77262[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77262),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77262),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77262),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 cc362 : virtual bb62 {
+ int c;
+ virtual void foo(); // _ZN5cc3623fooEv
+ ~cc362(); // tgen
+ cc362(); // tgen
+};
+//SIG(-1 cc362) C1{ VBC2{ BC3{ v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void cc362 ::foo(){vfunc_called(this, "_ZN5cc3623fooEv");}
+cc362 ::~cc362(){ note_dtor("cc362", this);} // tgen
+cc362 ::cc362(){ note_ctor("cc362", this);} // tgen
+
+static void Test_cc362()
+{
+ extern Class_Descriptor cd_cc362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc362, buf);
+ cc362 *dp, &lv = *(dp=new (buf) cc362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,8), "cc362");
+ check_base_class_offset(lv, (bb62*), ABISELECT(16,8), "cc362");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc362.c");
+ test_class_info(&lv, &cd_cc362);
+ dp->~cc362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc362(Test_cc362, "cc362", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc362C1Ev();
+extern void _ZN5cc362D1Ev();
+Name_Map name_map_cc362[] = {
+ NSPAIR(_ZN5cc362C1Ev),
+ NSPAIR(_ZN5cc362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc362[] = {
+ // 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_bb62, ABISELECT(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 _ZTI5cc362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_cc362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV5cc362[];
+static VTT_ENTRY vtt_cc362[] = {
+ {&(_ZTV5cc362[3]), 3,10},
+ {&(_ZTV5cc362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static VTBL_ENTRY alt_thunk_names1087[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc362 = { "cc362", // class name
+ bases_cc362, 2,
+ &(vtc_cc362[0]), // expected_vtbl_contents
+ &(vtt_cc362[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc362),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1087,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0362 : cc362 {
+ int d;
+ ~dd0362(); // tgen
+ dd0362(); // tgen
+};
+//SIG(-1 dd0362) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd0362 ::~dd0362(){ note_dtor("dd0362", this);} // tgen
+dd0362 ::dd0362(){ note_ctor("dd0362", this);} // tgen
+
+static void Test_dd0362()
+{
+ extern Class_Descriptor cd_dd0362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0362, buf);
+ dd0362 *dp, &lv = *(dp=new (buf) dd0362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd0362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(16,12), "dd0362");
+ check_base_class_offset(lv, (cc362*), 0, "dd0362");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0362.d");
+ test_class_info(&lv, &cd_dd0362);
+ dp->~dd0362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0362(Test_dd0362, "dd0362", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0362C1Ev();
+extern void _ZN6dd0362D1Ev();
+Name_Map name_map_dd0362[] = {
+ NSPAIR(_ZN6dd0362C1Ev),
+ NSPAIR(_ZN6dd0362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd0362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd0362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd0362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd0362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd0362[] = {
+ {&(_ZTV6dd0362[3]), 3,10},
+ {&(_tg__ZTV5cc362__6dd0362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd0362[4]), 4,6},
+ {&(_ZTV6dd0362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static VTBL_ENTRY alt_thunk_names1088[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0362 = { "dd0362", // class name
+ bases_dd0362, 3,
+ &(vtc_dd0362[0]), // expected_vtbl_contents
+ &(vtt_dd0362[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0362),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1088,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00362 : dd0362 {
+ int e;
+ ~ee00362(); // tgen
+ ee00362(); // tgen
+};
+//SIG(1 ee00362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00362 ::~ee00362(){ note_dtor("ee00362", this);} // tgen
+ee00362 ::ee00362(){ note_ctor("ee00362", this);} // tgen
+
+static void Test_ee00362()
+{
+ extern Class_Descriptor cd_ee00362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00362, buf);
+ ee00362 *dp, &lv = *(dp=new (buf) ee00362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee00362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(24,16), "ee00362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), 0, "ee00362");
+ check_base_class_offset(lv, (dd0362*), 0, "ee00362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00362.e");
+ test_class_info(&lv, &cd_ee00362);
+ dp->~ee00362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00362(Test_ee00362, "ee00362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00362C1Ev();
+extern void _ZN7ee00362D1Ev();
+Name_Map name_map_ee00362[] = {
+ NSPAIR(_ZN7ee00362C1Ev),
+ NSPAIR(_ZN7ee00362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee00362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee00362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee00362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee00362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee00362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee00362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee00362[] = {
+ {&(_ZTV7ee00362[3]), 3,10},
+ {&(_tg__ZTV6dd0362__7ee00362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee00362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee00362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee00362[4]), 4,6},
+ {&(_ZTV7ee00362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00362[];
+extern VTBL_ENTRY _ZTV7ee00362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00362[];
+static VTBL_ENTRY alt_thunk_names1089[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00362 = { "ee00362", // class name
+ bases_ee00362, 4,
+ &(vtc_ee00362[0]), // expected_vtbl_contents
+ &(vtt_ee00362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00362),6, //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 ee10362 : virtual dd0362 {
+ int e;
+ ~ee10362(); // tgen
+ ee10362(); // tgen
+};
+//SIG(1 ee10362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10362 ::~ee10362(){ note_dtor("ee10362", this);} // tgen
+ee10362 ::ee10362(){ note_ctor("ee10362", this);} // tgen
+
+static void Test_ee10362()
+{
+ extern Class_Descriptor cd_ee10362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10362, buf);
+ ee10362 *dp, &lv = *(dp=new (buf) ee10362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee10362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(32,20), "ee10362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), ABISELECT(16,8), "ee10362");
+ check_base_class_offset(lv, (dd0362*), ABISELECT(16,8), "ee10362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10362.e");
+ test_class_info(&lv, &cd_ee10362);
+ dp->~ee10362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10362(Test_ee10362, "ee10362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10362C1Ev();
+extern void _ZN7ee10362D1Ev();
+Name_Map name_map_ee10362[] = {
+ NSPAIR(_ZN7ee10362C1Ev),
+ NSPAIR(_ZN7ee10362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee10362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, ABISELECT(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 _ZTI7ee10362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee10362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10362[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee10362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee10362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee10362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee10362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee10362[] = {
+ {&(_ZTV7ee10362[4]), 4,15},
+ {&(_ZTV7ee10362[8]), 8,15},
+ {&(_ZTV7ee10362[13]), 13,15},
+ {&(_tg__ZTV6dd0362__7ee10362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee10362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee10362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee10362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10362[];
+extern VTBL_ENTRY _ZTV7ee10362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10362[];
+static VTBL_ENTRY alt_thunk_names1090[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10362 = { "ee10362", // class name
+ bases_ee10362, 4,
+ &(vtc_ee10362[0]), // expected_vtbl_contents
+ &(vtt_ee10362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10362),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10362),7, //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 ee20362 : dd0362 {
+ int e;
+ virtual void foo(); // _ZN7ee203623fooEv
+ ~ee20362(); // tgen
+ ee20362(); // tgen
+};
+//SIG(1 ee20362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20362 ::foo(){vfunc_called(this, "_ZN7ee203623fooEv");}
+ee20362 ::~ee20362(){ note_dtor("ee20362", this);} // tgen
+ee20362 ::ee20362(){ note_ctor("ee20362", this);} // tgen
+
+static void Test_ee20362()
+{
+ extern Class_Descriptor cd_ee20362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20362, buf);
+ ee20362 *dp, &lv = *(dp=new (buf) ee20362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee20362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(24,16), "ee20362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), 0, "ee20362");
+ check_base_class_offset(lv, (dd0362*), 0, "ee20362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20362.e");
+ test_class_info(&lv, &cd_ee20362);
+ dp->~ee20362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20362(Test_ee20362, "ee20362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20362C1Ev();
+extern void _ZN7ee20362D1Ev();
+Name_Map name_map_ee20362[] = {
+ NSPAIR(_ZN7ee20362C1Ev),
+ NSPAIR(_ZN7ee20362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee20362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20362[];
+extern void _ZN7ee203623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203623fooEv,_ZTv0_n12_N7ee203623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203623fooEv,_ZThn16_N7ee203623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee20362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20362[0]),
+ (VTBL_ENTRY)&_ZN7ee203623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203623fooEv,_ZTv0_n12_N7ee203623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee20362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee20362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee20362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee20362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee20362[] = {
+ {&(_ZTV7ee20362[3]), 3,10},
+ {&(_tg__ZTV6dd0362__7ee20362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee20362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee20362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee20362[4]), 4,6},
+ {&(_ZTV7ee20362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20362[];
+extern VTBL_ENTRY _ZTV7ee20362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20362[];
+static VTBL_ENTRY alt_thunk_names1091[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203623fooEv,_ZTv0_n12_N7ee203623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203623fooEv,_ZThn16_N7ee203623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20362 = { "ee20362", // class name
+ bases_ee20362, 4,
+ &(vtc_ee20362[0]), // expected_vtbl_contents
+ &(vtt_ee20362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20362),6, //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 ee30362 : virtual dd0362 {
+ int e;
+ virtual void foo(); // _ZN7ee303623fooEv
+ ~ee30362(); // tgen
+ ee30362(); // tgen
+};
+//SIG(1 ee30362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30362 ::foo(){vfunc_called(this, "_ZN7ee303623fooEv");}
+ee30362 ::~ee30362(){ note_dtor("ee30362", this);} // tgen
+ee30362 ::ee30362(){ note_ctor("ee30362", this);} // tgen
+
+static void Test_ee30362()
+{
+ extern Class_Descriptor cd_ee30362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30362, buf);
+ ee30362 *dp, &lv = *(dp=new (buf) ee30362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee30362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(32,20), "ee30362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), ABISELECT(16,8), "ee30362");
+ check_base_class_offset(lv, (dd0362*), ABISELECT(16,8), "ee30362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30362.e");
+ test_class_info(&lv, &cd_ee30362);
+ dp->~ee30362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30362(Test_ee30362, "ee30362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30362C1Ev();
+extern void _ZN7ee30362D1Ev();
+Name_Map name_map_ee30362[] = {
+ NSPAIR(_ZN7ee30362C1Ev),
+ NSPAIR(_ZN7ee30362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee30362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, ABISELECT(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 _ZTI7ee30362[];
+extern void _ZN7ee303623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303623fooEv,_ZTv0_n16_N7ee303623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303623fooEv,_ZThn8_N7ee303623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303623fooEv,_ZTv0_n12_N7ee303623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303623fooEv,_ZThn20_N7ee303623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee30362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30362[0]),
+ (VTBL_ENTRY)&_ZN7ee303623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303623fooEv,_ZTv0_n16_N7ee303623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303623fooEv,_ZTv0_n12_N7ee303623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee30362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee30362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee30362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee30362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee30362[] = {
+ {&(_ZTV7ee30362[4]), 4,16},
+ {&(_ZTV7ee30362[9]), 9,16},
+ {&(_ZTV7ee30362[14]), 14,16},
+ {&(_tg__ZTV6dd0362__7ee30362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee30362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee30362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee30362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30362[];
+extern VTBL_ENTRY _ZTV7ee30362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30362[];
+static VTBL_ENTRY alt_thunk_names1092[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303623fooEv,_ZTv0_n12_N7ee303623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303623fooEv,_ZThn20_N7ee303623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303623fooEv,_ZTv0_n16_N7ee303623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303623fooEv,_ZThn8_N7ee303623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30362 = { "ee30362", // class name
+ bases_ee30362, 4,
+ &(vtc_ee30362[0]), // expected_vtbl_contents
+ &(vtt_ee30362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30362),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1092,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40362 : dd0362 {
+ int e;
+ virtual void bar(); // _ZN7ee403623barEv
+ ~ee40362(); // tgen
+ ee40362(); // tgen
+};
+//SIG(1 ee40362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40362 ::bar(){vfunc_called(this, "_ZN7ee403623barEv");}
+ee40362 ::~ee40362(){ note_dtor("ee40362", this);} // tgen
+ee40362 ::ee40362(){ note_ctor("ee40362", this);} // tgen
+
+static void Test_ee40362()
+{
+ extern Class_Descriptor cd_ee40362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40362, buf);
+ ee40362 *dp, &lv = *(dp=new (buf) ee40362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee40362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(24,16), "ee40362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), 0, "ee40362");
+ check_base_class_offset(lv, (dd0362*), 0, "ee40362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40362.e");
+ test_class_info(&lv, &cd_ee40362);
+ dp->~ee40362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40362(Test_ee40362, "ee40362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40362C1Ev();
+extern void _ZN7ee40362D1Ev();
+Name_Map name_map_ee40362[] = {
+ NSPAIR(_ZN7ee40362C1Ev),
+ NSPAIR(_ZN7ee40362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee40362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN7ee403623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee403623barEv,_ZTv0_n16_N7ee403623barEv)();
+extern void ABISELECT(_ZThn24_N7ee403623barEv,_ZThn16_N7ee403623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN7ee403623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403623barEv,_ZTv0_n16_N7ee403623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee40362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee40362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee40362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee40362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee40362[] = {
+ {&(_ZTV7ee40362[3]), 3,11},
+ {&(_tg__ZTV6dd0362__7ee40362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee40362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee40362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee40362[4]), 4,6},
+ {&(_ZTV7ee40362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40362[];
+extern VTBL_ENTRY _ZTV7ee40362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40362[];
+static VTBL_ENTRY alt_thunk_names1093[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403623barEv,_ZTv0_n16_N7ee403623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403623barEv,_ZThn16_N7ee403623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40362 = { "ee40362", // class name
+ bases_ee40362, 4,
+ &(vtc_ee40362[0]), // expected_vtbl_contents
+ &(vtt_ee40362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40362),6, //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 ee50362 : virtual dd0362 {
+ int e;
+ virtual void bar(); // _ZN7ee503623barEv
+ ~ee50362(); // tgen
+ ee50362(); // tgen
+};
+//SIG(1 ee50362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50362 ::bar(){vfunc_called(this, "_ZN7ee503623barEv");}
+ee50362 ::~ee50362(){ note_dtor("ee50362", this);} // tgen
+ee50362 ::ee50362(){ note_ctor("ee50362", this);} // tgen
+
+static void Test_ee50362()
+{
+ extern Class_Descriptor cd_ee50362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50362, buf);
+ ee50362 *dp, &lv = *(dp=new (buf) ee50362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee50362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(32,20), "ee50362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), ABISELECT(16,8), "ee50362");
+ check_base_class_offset(lv, (dd0362*), ABISELECT(16,8), "ee50362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50362.e");
+ test_class_info(&lv, &cd_ee50362);
+ dp->~ee50362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50362(Test_ee50362, "ee50362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50362C1Ev();
+extern void _ZN7ee50362D1Ev();
+Name_Map name_map_ee50362[] = {
+ NSPAIR(_ZN7ee50362C1Ev),
+ NSPAIR(_ZN7ee50362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee50362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, ABISELECT(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 _ZTI7ee50362[];
+extern void _ZN7ee503623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee503623barEv,_ZTv0_n16_N7ee503623barEv)();
+extern void ABISELECT(_ZThn32_N7ee503623barEv,_ZThn20_N7ee503623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50362[0]),
+ (VTBL_ENTRY)&_ZN7ee503623barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503623barEv,_ZTv0_n16_N7ee503623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee50362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee50362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee50362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee50362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee50362[] = {
+ {&(_ZTV7ee50362[4]), 4,16},
+ {&(_ZTV7ee50362[9]), 9,16},
+ {&(_ZTV7ee50362[14]), 14,16},
+ {&(_tg__ZTV6dd0362__7ee50362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee50362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee50362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee50362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50362[];
+extern VTBL_ENTRY _ZTV7ee50362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50362[];
+static VTBL_ENTRY alt_thunk_names1094[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503623barEv,_ZTv0_n16_N7ee503623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503623barEv,_ZThn20_N7ee503623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50362 = { "ee50362", // class name
+ bases_ee50362, 4,
+ &(vtc_ee50362[0]), // expected_vtbl_contents
+ &(vtt_ee50362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50362),7, //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 ee60362 : dd0362 {
+ int e;
+ virtual void foo(); // _ZN7ee603623fooEv
+ virtual void bar(); // _ZN7ee603623barEv
+ ~ee60362(); // tgen
+ ee60362(); // tgen
+};
+//SIG(1 ee60362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60362 ::foo(){vfunc_called(this, "_ZN7ee603623fooEv");}
+void ee60362 ::bar(){vfunc_called(this, "_ZN7ee603623barEv");}
+ee60362 ::~ee60362(){ note_dtor("ee60362", this);} // tgen
+ee60362 ::ee60362(){ note_ctor("ee60362", this);} // tgen
+
+static void Test_ee60362()
+{
+ extern Class_Descriptor cd_ee60362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60362, buf);
+ ee60362 *dp, &lv = *(dp=new (buf) ee60362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee60362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(24,16), "ee60362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), 0, "ee60362");
+ check_base_class_offset(lv, (dd0362*), 0, "ee60362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60362.e");
+ test_class_info(&lv, &cd_ee60362);
+ dp->~ee60362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60362(Test_ee60362, "ee60362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60362C1Ev();
+extern void _ZN7ee60362D1Ev();
+Name_Map name_map_ee60362[] = {
+ NSPAIR(_ZN7ee60362C1Ev),
+ NSPAIR(_ZN7ee60362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee60362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60362[];
+extern void _ZN7ee603623fooEv();
+extern void _ZN7ee603623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603623fooEv,_ZTv0_n12_N7ee603623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603623fooEv,_ZThn16_N7ee603623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603623barEv,_ZTv0_n16_N7ee603623barEv)();
+extern void ABISELECT(_ZThn24_N7ee603623barEv,_ZThn16_N7ee603623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60362[0]),
+ (VTBL_ENTRY)&_ZN7ee603623fooEv,
+ (VTBL_ENTRY)&_ZN7ee603623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603623fooEv,_ZTv0_n12_N7ee603623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603623barEv,_ZTv0_n16_N7ee603623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee60362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee60362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee60362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee60362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee60362[] = {
+ {&(_ZTV7ee60362[3]), 3,11},
+ {&(_tg__ZTV6dd0362__7ee60362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee60362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee60362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee60362[4]), 4,6},
+ {&(_ZTV7ee60362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60362[];
+extern VTBL_ENTRY _ZTV7ee60362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60362[];
+static VTBL_ENTRY alt_thunk_names1095[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603623barEv,_ZTv0_n16_N7ee603623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603623barEv,_ZThn16_N7ee603623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603623fooEv,_ZTv0_n12_N7ee603623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603623fooEv,_ZThn16_N7ee603623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60362 = { "ee60362", // class name
+ bases_ee60362, 4,
+ &(vtc_ee60362[0]), // expected_vtbl_contents
+ &(vtt_ee60362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60362),6, //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 ee70362 : virtual dd0362 {
+ int e;
+ virtual void foo(); // _ZN7ee703623fooEv
+ virtual void bar(); // _ZN7ee703623barEv
+ ~ee70362(); // tgen
+ ee70362(); // tgen
+};
+//SIG(1 ee70362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70362 ::foo(){vfunc_called(this, "_ZN7ee703623fooEv");}
+void ee70362 ::bar(){vfunc_called(this, "_ZN7ee703623barEv");}
+ee70362 ::~ee70362(){ note_dtor("ee70362", this);} // tgen
+ee70362 ::ee70362(){ note_ctor("ee70362", this);} // tgen
+
+static void Test_ee70362()
+{
+ extern Class_Descriptor cd_ee70362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70362, buf);
+ ee70362 *dp, &lv = *(dp=new (buf) ee70362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee70362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd0362*), ABISELECT(32,20), "ee70362");
+ check_base_class_offset(lv, (cc362*)(dd0362*), ABISELECT(16,8), "ee70362");
+ check_base_class_offset(lv, (dd0362*), ABISELECT(16,8), "ee70362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70362.e");
+ test_class_info(&lv, &cd_ee70362);
+ dp->~ee70362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70362(Test_ee70362, "ee70362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70362C1Ev();
+extern void _ZN7ee70362D1Ev();
+Name_Map name_map_ee70362[] = {
+ NSPAIR(_ZN7ee70362C1Ev),
+ NSPAIR(_ZN7ee70362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd0362;
+extern VTBL_ENTRY _ZTI6dd0362[];
+extern VTBL_ENTRY _ZTV6dd0362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0362[];
+static Base_Class bases_ee70362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0362, 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 _ZTI7ee70362[];
+extern void _ZN7ee703623fooEv();
+extern void _ZN7ee703623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703623fooEv,_ZTv0_n16_N7ee703623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703623fooEv,_ZThn8_N7ee703623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703623fooEv,_ZTv0_n12_N7ee703623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703623fooEv,_ZThn20_N7ee703623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703623barEv,_ZTv0_n16_N7ee703623barEv)();
+extern void ABISELECT(_ZThn32_N7ee703623barEv,_ZThn20_N7ee703623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70362[0]),
+ (VTBL_ENTRY)&_ZN7ee703623fooEv,
+ (VTBL_ENTRY)&_ZN7ee703623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703623fooEv,_ZTv0_n16_N7ee703623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703623fooEv,_ZTv0_n12_N7ee703623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703623barEv,_ZTv0_n16_N7ee703623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0362__7ee70362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd0362__7ee70362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd0362__7ee70362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0362__7ee70362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee70362[] = {
+ {&(_ZTV7ee70362[4]), 4,17},
+ {&(_ZTV7ee70362[10]), 10,17},
+ {&(_ZTV7ee70362[15]), 15,17},
+ {&(_tg__ZTV6dd0362__7ee70362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd0362__7ee70362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd0362__7ee70362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0362__7ee70362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70362[];
+extern VTBL_ENTRY _ZTV7ee70362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70362[];
+static VTBL_ENTRY alt_thunk_names1096[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703623barEv,_ZTv0_n16_N7ee703623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703623barEv,_ZThn20_N7ee703623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703623fooEv,_ZTv0_n12_N7ee703623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703623fooEv,_ZThn20_N7ee703623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703623fooEv,_ZTv0_n16_N7ee703623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703623fooEv,_ZThn8_N7ee703623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70362 = { "ee70362", // class name
+ bases_ee70362, 4,
+ &(vtc_ee70362[0]), // expected_vtbl_contents
+ &(vtt_ee70362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70362),7, //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 dd1362 : virtual cc362 {
+ int d;
+ ~dd1362(); // tgen
+ dd1362(); // tgen
+};
+//SIG(-1 dd1362) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+dd1362 ::~dd1362(){ note_dtor("dd1362", this);} // tgen
+dd1362 ::dd1362(){ note_ctor("dd1362", this);} // tgen
+
+static void Test_dd1362()
+{
+ extern Class_Descriptor cd_dd1362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1362, buf);
+ dd1362 *dp, &lv = *(dp=new (buf) dd1362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd1362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,16), "dd1362");
+ check_base_class_offset(lv, (cc362*), ABISELECT(16,8), "dd1362");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1362.d");
+ test_class_info(&lv, &cd_dd1362);
+ dp->~dd1362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1362(Test_dd1362, "dd1362", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1362C1Ev();
+extern void _ZN6dd1362D1Ev();
+Name_Map name_map_dd1362[] = {
+ NSPAIR(_ZN6dd1362C1Ev),
+ NSPAIR(_ZN6dd1362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd1362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(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 _ZTI6dd1362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd1362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd1362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd1362[] = {
+ {&(_ZTV6dd1362[4]), 4,15},
+ {&(_ZTV6dd1362[8]), 8,15},
+ {&(_ZTV6dd1362[13]), 13,15},
+ {&(_tg__ZTV5cc362__6dd1362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd1362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static VTBL_ENTRY alt_thunk_names1097[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1362 = { "dd1362", // class name
+ bases_dd1362, 3,
+ &(vtc_dd1362[0]), // expected_vtbl_contents
+ &(vtt_dd1362[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1362),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1362),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1097,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01362 : dd1362 {
+ int e;
+ ~ee01362(); // tgen
+ ee01362(); // tgen
+};
+//SIG(1 ee01362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01362 ::~ee01362(){ note_dtor("ee01362", this);} // tgen
+ee01362 ::ee01362(){ note_ctor("ee01362", this);} // tgen
+
+static void Test_ee01362()
+{
+ extern Class_Descriptor cd_ee01362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01362, buf);
+ ee01362 *dp, &lv = *(dp=new (buf) ee01362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee01362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee01362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(16,12), "ee01362");
+ check_base_class_offset(lv, (dd1362*), 0, "ee01362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01362.e");
+ test_class_info(&lv, &cd_ee01362);
+ dp->~ee01362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01362(Test_ee01362, "ee01362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01362C1Ev();
+extern void _ZN7ee01362D1Ev();
+Name_Map name_map_ee01362[] = {
+ NSPAIR(_ZN7ee01362C1Ev),
+ NSPAIR(_ZN7ee01362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee01362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee01362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01362[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee01362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee01362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee01362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee01362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee01362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee01362[] = {
+ {&(_ZTV7ee01362[4]), 4,15},
+ {&(_tg__ZTV6dd1362__7ee01362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee01362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee01362[4]), 4,6},
+ {&(_ZTV7ee01362[8]), 8,15},
+ {&(_ZTV7ee01362[13]), 13,15},
+ {&(_tg__ZTV5cc362__7ee01362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee01362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01362[];
+extern VTBL_ENTRY _ZTV7ee01362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01362[];
+static VTBL_ENTRY alt_thunk_names1098[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01362 = { "ee01362", // class name
+ bases_ee01362, 4,
+ &(vtc_ee01362[0]), // expected_vtbl_contents
+ &(vtt_ee01362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01362),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01362),8, //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 ee11362 : virtual dd1362 {
+ int e;
+ ~ee11362(); // tgen
+ ee11362(); // tgen
+};
+//SIG(1 ee11362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11362 ::~ee11362(){ note_dtor("ee11362", this);} // tgen
+ee11362 ::ee11362(){ note_ctor("ee11362", this);} // tgen
+
+static void Test_ee11362()
+{
+ extern Class_Descriptor cd_ee11362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11362, buf);
+ ee11362 *dp, &lv = *(dp=new (buf) ee11362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee11362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee11362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(32,16), "ee11362");
+ check_base_class_offset(lv, (dd1362*), ABISELECT(16,8), "ee11362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11362.e");
+ test_class_info(&lv, &cd_ee11362);
+ dp->~ee11362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11362(Test_ee11362, "ee11362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11362C1Ev();
+extern void _ZN7ee11362D1Ev();
+Name_Map name_map_ee11362[] = {
+ NSPAIR(_ZN7ee11362C1Ev),
+ NSPAIR(_ZN7ee11362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee11362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, ABISELECT(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 _ZTI7ee11362[];
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee11362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11362[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11362[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee11362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee11362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee11362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee11362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee11362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee11362[] = {
+ {&(_ZTV7ee11362[5]), 5,20},
+ {&(_ZTV7ee11362[9]), 9,20},
+ {&(_ZTV7ee11362[13]), 13,20},
+ {&(_ZTV7ee11362[18]), 18,20},
+ {&(_tg__ZTV6dd1362__7ee11362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee11362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee11362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee11362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee11362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11362[];
+extern VTBL_ENTRY _ZTV7ee11362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11362[];
+static VTBL_ENTRY alt_thunk_names1099[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11362 = { "ee11362", // class name
+ bases_ee11362, 4,
+ &(vtc_ee11362[0]), // expected_vtbl_contents
+ &(vtt_ee11362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11362),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11362),9, //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 ee21362 : dd1362 {
+ int e;
+ virtual void foo(); // _ZN7ee213623fooEv
+ ~ee21362(); // tgen
+ ee21362(); // tgen
+};
+//SIG(1 ee21362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21362 ::foo(){vfunc_called(this, "_ZN7ee213623fooEv");}
+ee21362 ::~ee21362(){ note_dtor("ee21362", this);} // tgen
+ee21362 ::ee21362(){ note_ctor("ee21362", this);} // tgen
+
+static void Test_ee21362()
+{
+ extern Class_Descriptor cd_ee21362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21362, buf);
+ ee21362 *dp, &lv = *(dp=new (buf) ee21362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee21362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee21362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(16,12), "ee21362");
+ check_base_class_offset(lv, (dd1362*), 0, "ee21362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21362.e");
+ test_class_info(&lv, &cd_ee21362);
+ dp->~ee21362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21362(Test_ee21362, "ee21362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21362C1Ev();
+extern void _ZN7ee21362D1Ev();
+Name_Map name_map_ee21362[] = {
+ NSPAIR(_ZN7ee21362C1Ev),
+ NSPAIR(_ZN7ee21362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee21362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21362[];
+extern void _ZN7ee213623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213623fooEv,_ZTv0_n16_N7ee213623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213623fooEv,_ZThn12_N7ee213623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213623fooEv,_ZTv0_n12_N7ee213623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213623fooEv,_ZThn20_N7ee213623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee21362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21362[0]),
+ (VTBL_ENTRY)&_ZN7ee213623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213623fooEv,_ZTv0_n16_N7ee213623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213623fooEv,_ZTv0_n12_N7ee213623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee21362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee21362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee21362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee21362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee21362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee21362[] = {
+ {&(_ZTV7ee21362[4]), 4,16},
+ {&(_tg__ZTV6dd1362__7ee21362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee21362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee21362[4]), 4,6},
+ {&(_ZTV7ee21362[9]), 9,16},
+ {&(_ZTV7ee21362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee21362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee21362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21362[];
+extern VTBL_ENTRY _ZTV7ee21362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21362[];
+static VTBL_ENTRY alt_thunk_names1100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213623fooEv,_ZTv0_n12_N7ee213623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213623fooEv,_ZThn20_N7ee213623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213623fooEv,_ZTv0_n16_N7ee213623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213623fooEv,_ZThn12_N7ee213623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21362 = { "ee21362", // class name
+ bases_ee21362, 4,
+ &(vtc_ee21362[0]), // expected_vtbl_contents
+ &(vtt_ee21362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21362),8, //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 ee31362 : virtual dd1362 {
+ int e;
+ virtual void foo(); // _ZN7ee313623fooEv
+ ~ee31362(); // tgen
+ ee31362(); // tgen
+};
+//SIG(1 ee31362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31362 ::foo(){vfunc_called(this, "_ZN7ee313623fooEv");}
+ee31362 ::~ee31362(){ note_dtor("ee31362", this);} // tgen
+ee31362 ::ee31362(){ note_ctor("ee31362", this);} // tgen
+
+static void Test_ee31362()
+{
+ extern Class_Descriptor cd_ee31362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31362, buf);
+ ee31362 *dp, &lv = *(dp=new (buf) ee31362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee31362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee31362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(32,16), "ee31362");
+ check_base_class_offset(lv, (dd1362*), ABISELECT(16,8), "ee31362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31362.e");
+ test_class_info(&lv, &cd_ee31362);
+ dp->~ee31362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31362(Test_ee31362, "ee31362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31362C1Ev();
+extern void _ZN7ee31362D1Ev();
+Name_Map name_map_ee31362[] = {
+ NSPAIR(_ZN7ee31362C1Ev),
+ NSPAIR(_ZN7ee31362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee31362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 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 _ZTI7ee31362[];
+extern void _ZN7ee313623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313623fooEv,_ZTv0_n16_N7ee313623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313623fooEv,_ZThn16_N7ee313623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313623fooEv,_ZTv0_n12_N7ee313623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313623fooEv,_ZThn24_N7ee313623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee31362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31362[0]),
+ (VTBL_ENTRY)&_ZN7ee313623fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31362[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313623fooEv,_ZTv0_n16_N7ee313623fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313623fooEv,_ZTv0_n12_N7ee313623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee31362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee31362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee31362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee31362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee31362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee31362[] = {
+ {&(_ZTV7ee31362[5]), 5,21},
+ {&(_ZTV7ee31362[10]), 10,21},
+ {&(_ZTV7ee31362[14]), 14,21},
+ {&(_ZTV7ee31362[19]), 19,21},
+ {&(_tg__ZTV6dd1362__7ee31362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee31362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee31362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee31362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee31362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31362[];
+extern VTBL_ENTRY _ZTV7ee31362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31362[];
+static VTBL_ENTRY alt_thunk_names1101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313623fooEv,_ZTv0_n12_N7ee313623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313623fooEv,_ZThn24_N7ee313623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313623fooEv,_ZTv0_n16_N7ee313623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313623fooEv,_ZThn16_N7ee313623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31362 = { "ee31362", // class name
+ bases_ee31362, 4,
+ &(vtc_ee31362[0]), // expected_vtbl_contents
+ &(vtt_ee31362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31362),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31362),9, //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 ee41362 : dd1362 {
+ int e;
+ virtual void bar(); // _ZN7ee413623barEv
+ ~ee41362(); // tgen
+ ee41362(); // tgen
+};
+//SIG(1 ee41362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41362 ::bar(){vfunc_called(this, "_ZN7ee413623barEv");}
+ee41362 ::~ee41362(){ note_dtor("ee41362", this);} // tgen
+ee41362 ::ee41362(){ note_ctor("ee41362", this);} // tgen
+
+static void Test_ee41362()
+{
+ extern Class_Descriptor cd_ee41362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41362, buf);
+ ee41362 *dp, &lv = *(dp=new (buf) ee41362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee41362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee41362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(16,12), "ee41362");
+ check_base_class_offset(lv, (dd1362*), 0, "ee41362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41362.e");
+ test_class_info(&lv, &cd_ee41362);
+ dp->~ee41362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41362(Test_ee41362, "ee41362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41362C1Ev();
+extern void _ZN7ee41362D1Ev();
+Name_Map name_map_ee41362[] = {
+ NSPAIR(_ZN7ee41362C1Ev),
+ NSPAIR(_ZN7ee41362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee41362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41362[];
+extern void _ZN7ee413623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee413623barEv,_ZTv0_n16_N7ee413623barEv)();
+extern void ABISELECT(_ZThn32_N7ee413623barEv,_ZThn20_N7ee413623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41362[0]),
+ (VTBL_ENTRY)&_ZN7ee413623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413623barEv,_ZTv0_n16_N7ee413623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee41362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee41362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee41362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee41362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee41362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee41362[] = {
+ {&(_ZTV7ee41362[4]), 4,16},
+ {&(_tg__ZTV6dd1362__7ee41362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee41362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee41362[4]), 4,6},
+ {&(_ZTV7ee41362[9]), 9,16},
+ {&(_ZTV7ee41362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee41362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee41362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41362[];
+extern VTBL_ENTRY _ZTV7ee41362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41362[];
+static VTBL_ENTRY alt_thunk_names1102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413623barEv,_ZTv0_n16_N7ee413623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413623barEv,_ZThn20_N7ee413623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41362 = { "ee41362", // class name
+ bases_ee41362, 4,
+ &(vtc_ee41362[0]), // expected_vtbl_contents
+ &(vtt_ee41362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41362),8, //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 ee51362 : virtual dd1362 {
+ int e;
+ virtual void bar(); // _ZN7ee513623barEv
+ ~ee51362(); // tgen
+ ee51362(); // tgen
+};
+//SIG(1 ee51362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51362 ::bar(){vfunc_called(this, "_ZN7ee513623barEv");}
+ee51362 ::~ee51362(){ note_dtor("ee51362", this);} // tgen
+ee51362 ::ee51362(){ note_ctor("ee51362", this);} // tgen
+
+static void Test_ee51362()
+{
+ extern Class_Descriptor cd_ee51362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51362, buf);
+ ee51362 *dp, &lv = *(dp=new (buf) ee51362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee51362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee51362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(32,16), "ee51362");
+ check_base_class_offset(lv, (dd1362*), ABISELECT(16,8), "ee51362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51362.e");
+ test_class_info(&lv, &cd_ee51362);
+ dp->~ee51362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51362(Test_ee51362, "ee51362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51362C1Ev();
+extern void _ZN7ee51362D1Ev();
+Name_Map name_map_ee51362[] = {
+ NSPAIR(_ZN7ee51362C1Ev),
+ NSPAIR(_ZN7ee51362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee51362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 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 _ZTI7ee51362[];
+extern void _ZN7ee513623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee513623barEv,_ZTv0_n16_N7ee513623barEv)();
+extern void ABISELECT(_ZThn48_N7ee513623barEv,_ZThn24_N7ee513623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51362[0]),
+ (VTBL_ENTRY)&_ZN7ee513623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51362[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513623barEv,_ZTv0_n16_N7ee513623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee51362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee51362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee51362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee51362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee51362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee51362[] = {
+ {&(_ZTV7ee51362[5]), 5,21},
+ {&(_ZTV7ee51362[10]), 10,21},
+ {&(_ZTV7ee51362[14]), 14,21},
+ {&(_ZTV7ee51362[19]), 19,21},
+ {&(_tg__ZTV6dd1362__7ee51362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee51362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee51362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee51362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee51362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51362[];
+extern VTBL_ENTRY _ZTV7ee51362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51362[];
+static VTBL_ENTRY alt_thunk_names1103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513623barEv,_ZTv0_n16_N7ee513623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513623barEv,_ZThn24_N7ee513623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51362 = { "ee51362", // class name
+ bases_ee51362, 4,
+ &(vtc_ee51362[0]), // expected_vtbl_contents
+ &(vtt_ee51362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51362),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51362),9, //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 ee61362 : dd1362 {
+ int e;
+ virtual void foo(); // _ZN7ee613623fooEv
+ virtual void bar(); // _ZN7ee613623barEv
+ ~ee61362(); // tgen
+ ee61362(); // tgen
+};
+//SIG(1 ee61362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61362 ::foo(){vfunc_called(this, "_ZN7ee613623fooEv");}
+void ee61362 ::bar(){vfunc_called(this, "_ZN7ee613623barEv");}
+ee61362 ::~ee61362(){ note_dtor("ee61362", this);} // tgen
+ee61362 ::ee61362(){ note_ctor("ee61362", this);} // tgen
+
+static void Test_ee61362()
+{
+ extern Class_Descriptor cd_ee61362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61362, buf);
+ ee61362 *dp, &lv = *(dp=new (buf) ee61362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee61362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee61362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(16,12), "ee61362");
+ check_base_class_offset(lv, (dd1362*), 0, "ee61362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61362.e");
+ test_class_info(&lv, &cd_ee61362);
+ dp->~ee61362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61362(Test_ee61362, "ee61362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61362C1Ev();
+extern void _ZN7ee61362D1Ev();
+Name_Map name_map_ee61362[] = {
+ NSPAIR(_ZN7ee61362C1Ev),
+ NSPAIR(_ZN7ee61362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee61362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61362[];
+extern void _ZN7ee613623fooEv();
+extern void _ZN7ee613623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613623fooEv,_ZTv0_n16_N7ee613623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613623fooEv,_ZThn12_N7ee613623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613623fooEv,_ZTv0_n12_N7ee613623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613623fooEv,_ZThn20_N7ee613623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613623barEv,_ZTv0_n16_N7ee613623barEv)();
+extern void ABISELECT(_ZThn32_N7ee613623barEv,_ZThn20_N7ee613623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61362[0]),
+ (VTBL_ENTRY)&_ZN7ee613623fooEv,
+ (VTBL_ENTRY)&_ZN7ee613623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613623fooEv,_ZTv0_n16_N7ee613623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613623fooEv,_ZTv0_n12_N7ee613623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613623barEv,_ZTv0_n16_N7ee613623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee61362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee61362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee61362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee61362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee61362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee61362[] = {
+ {&(_ZTV7ee61362[4]), 4,17},
+ {&(_tg__ZTV6dd1362__7ee61362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee61362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee61362[4]), 4,6},
+ {&(_ZTV7ee61362[10]), 10,17},
+ {&(_ZTV7ee61362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee61362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee61362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61362[];
+extern VTBL_ENTRY _ZTV7ee61362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61362[];
+static VTBL_ENTRY alt_thunk_names1104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613623barEv,_ZTv0_n16_N7ee613623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613623barEv,_ZThn20_N7ee613623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613623fooEv,_ZTv0_n12_N7ee613623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613623fooEv,_ZThn20_N7ee613623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613623fooEv,_ZTv0_n16_N7ee613623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613623fooEv,_ZThn12_N7ee613623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61362 = { "ee61362", // class name
+ bases_ee61362, 4,
+ &(vtc_ee61362[0]), // expected_vtbl_contents
+ &(vtt_ee61362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61362),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71362 : virtual dd1362 {
+ int e;
+ virtual void foo(); // _ZN7ee713623fooEv
+ virtual void bar(); // _ZN7ee713623barEv
+ ~ee71362(); // tgen
+ ee71362(); // tgen
+};
+//SIG(1 ee71362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71362 ::foo(){vfunc_called(this, "_ZN7ee713623fooEv");}
+void ee71362 ::bar(){vfunc_called(this, "_ZN7ee713623barEv");}
+ee71362 ::~ee71362(){ note_dtor("ee71362", this);} // tgen
+ee71362 ::ee71362(){ note_ctor("ee71362", this);} // tgen
+
+static void Test_ee71362()
+{
+ extern Class_Descriptor cd_ee71362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71362, buf);
+ ee71362 *dp, &lv = *(dp=new (buf) ee71362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee71362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee71362");
+ check_base_class_offset(lv, (cc362*)(dd1362*), ABISELECT(32,16), "ee71362");
+ check_base_class_offset(lv, (dd1362*), ABISELECT(16,8), "ee71362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71362.e");
+ test_class_info(&lv, &cd_ee71362);
+ dp->~ee71362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71362(Test_ee71362, "ee71362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71362C1Ev();
+extern void _ZN7ee71362D1Ev();
+Name_Map name_map_ee71362[] = {
+ NSPAIR(_ZN7ee71362C1Ev),
+ NSPAIR(_ZN7ee71362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd1362;
+extern VTBL_ENTRY _ZTI6dd1362[];
+extern VTBL_ENTRY _ZTV6dd1362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1362[];
+static Base_Class bases_ee71362[] = {
+ // 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_bb62, 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_cc362, 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_dd1362, 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 _ZTI7ee71362[];
+extern void _ZN7ee713623fooEv();
+extern void _ZN7ee713623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713623fooEv,_ZTv0_n16_N7ee713623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713623fooEv,_ZThn16_N7ee713623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713623fooEv,_ZTv0_n12_N7ee713623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713623fooEv,_ZThn24_N7ee713623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713623barEv,_ZTv0_n16_N7ee713623barEv)();
+extern void ABISELECT(_ZThn48_N7ee713623barEv,_ZThn24_N7ee713623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71362[0]),
+ (VTBL_ENTRY)&_ZN7ee713623fooEv,
+ (VTBL_ENTRY)&_ZN7ee713623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71362[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713623fooEv,_ZTv0_n16_N7ee713623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713623fooEv,_ZTv0_n12_N7ee713623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713623barEv,_ZTv0_n16_N7ee713623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71362[];
+static VTBL_ENTRY _tg__ZTV6dd1362__7ee71362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd1362__7ee71362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1362__7ee71362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee71362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee71362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee71362[] = {
+ {&(_ZTV7ee71362[5]), 5,22},
+ {&(_ZTV7ee71362[11]), 11,22},
+ {&(_ZTV7ee71362[15]), 15,22},
+ {&(_ZTV7ee71362[20]), 20,22},
+ {&(_tg__ZTV6dd1362__7ee71362[4]), 4,4},
+ {&(_tg__ZTV5cc362__6dd1362__7ee71362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1362__7ee71362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee71362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee71362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71362[];
+extern VTBL_ENTRY _ZTV7ee71362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71362[];
+static VTBL_ENTRY alt_thunk_names1105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713623barEv,_ZTv0_n16_N7ee713623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713623barEv,_ZThn24_N7ee713623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713623fooEv,_ZTv0_n12_N7ee713623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713623fooEv,_ZThn24_N7ee713623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713623fooEv,_ZTv0_n16_N7ee713623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713623fooEv,_ZThn16_N7ee713623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71362 = { "ee71362", // class name
+ bases_ee71362, 4,
+ &(vtc_ee71362[0]), // expected_vtbl_contents
+ &(vtt_ee71362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71362),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71362),9, //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 dd2362 : cc362 {
+ int d;
+ virtual void foo(); // _ZN6dd23623fooEv
+ ~dd2362(); // tgen
+ dd2362(); // tgen
+};
+//SIG(-1 dd2362) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2362 ::foo(){vfunc_called(this, "_ZN6dd23623fooEv");}
+dd2362 ::~dd2362(){ note_dtor("dd2362", this);} // tgen
+dd2362 ::dd2362(){ note_ctor("dd2362", this);} // tgen
+
+static void Test_dd2362()
+{
+ extern Class_Descriptor cd_dd2362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2362, buf);
+ dd2362 *dp, &lv = *(dp=new (buf) dd2362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd2362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(16,12), "dd2362");
+ check_base_class_offset(lv, (cc362*), 0, "dd2362");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2362.d");
+ test_class_info(&lv, &cd_dd2362);
+ dp->~dd2362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2362(Test_dd2362, "dd2362", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2362C1Ev();
+extern void _ZN6dd2362D1Ev();
+Name_Map name_map_dd2362[] = {
+ NSPAIR(_ZN6dd2362C1Ev),
+ NSPAIR(_ZN6dd2362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd2362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern void _ZN6dd23623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd2362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd2362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd2362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd2362[] = {
+ {&(_ZTV6dd2362[3]), 3,10},
+ {&(_tg__ZTV5cc362__6dd2362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd2362[4]), 4,6},
+ {&(_ZTV6dd2362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static VTBL_ENTRY alt_thunk_names1106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2362 = { "dd2362", // class name
+ bases_dd2362, 3,
+ &(vtc_dd2362[0]), // expected_vtbl_contents
+ &(vtt_dd2362[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2362),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02362 : dd2362 {
+ int e;
+ ~ee02362(); // tgen
+ ee02362(); // tgen
+};
+//SIG(1 ee02362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02362 ::~ee02362(){ note_dtor("ee02362", this);} // tgen
+ee02362 ::ee02362(){ note_ctor("ee02362", this);} // tgen
+
+static void Test_ee02362()
+{
+ extern Class_Descriptor cd_ee02362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02362, buf);
+ ee02362 *dp, &lv = *(dp=new (buf) ee02362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee02362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(24,16), "ee02362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), 0, "ee02362");
+ check_base_class_offset(lv, (dd2362*), 0, "ee02362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02362.e");
+ test_class_info(&lv, &cd_ee02362);
+ dp->~ee02362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02362(Test_ee02362, "ee02362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02362C1Ev();
+extern void _ZN7ee02362D1Ev();
+Name_Map name_map_ee02362[] = {
+ NSPAIR(_ZN7ee02362C1Ev),
+ NSPAIR(_ZN7ee02362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee02362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02362[];
+extern void _ZN6dd23623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee02362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee02362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee02362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee02362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee02362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee02362[] = {
+ {&(_ZTV7ee02362[3]), 3,10},
+ {&(_tg__ZTV6dd2362__7ee02362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee02362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee02362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee02362[4]), 4,6},
+ {&(_ZTV7ee02362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02362[];
+extern VTBL_ENTRY _ZTV7ee02362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02362[];
+static VTBL_ENTRY alt_thunk_names1107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02362 = { "ee02362", // class name
+ bases_ee02362, 4,
+ &(vtc_ee02362[0]), // expected_vtbl_contents
+ &(vtt_ee02362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02362),6, //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 ee12362 : virtual dd2362 {
+ int e;
+ ~ee12362(); // tgen
+ ee12362(); // tgen
+};
+//SIG(1 ee12362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12362 ::~ee12362(){ note_dtor("ee12362", this);} // tgen
+ee12362 ::ee12362(){ note_ctor("ee12362", this);} // tgen
+
+static void Test_ee12362()
+{
+ extern Class_Descriptor cd_ee12362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12362, buf);
+ ee12362 *dp, &lv = *(dp=new (buf) ee12362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee12362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(32,20), "ee12362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), ABISELECT(16,8), "ee12362");
+ check_base_class_offset(lv, (dd2362*), ABISELECT(16,8), "ee12362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12362.e");
+ test_class_info(&lv, &cd_ee12362);
+ dp->~ee12362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12362(Test_ee12362, "ee12362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12362C1Ev();
+extern void _ZN7ee12362D1Ev();
+Name_Map name_map_ee12362[] = {
+ NSPAIR(_ZN7ee12362C1Ev),
+ NSPAIR(_ZN7ee12362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee12362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, ABISELECT(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 _ZTI7ee12362[];
+extern void _ZN6dd23623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee12362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12362[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee12362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee12362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee12362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee12362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee12362[] = {
+ {&(_ZTV7ee12362[4]), 4,15},
+ {&(_ZTV7ee12362[8]), 8,15},
+ {&(_ZTV7ee12362[13]), 13,15},
+ {&(_tg__ZTV6dd2362__7ee12362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee12362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee12362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee12362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12362[];
+extern VTBL_ENTRY _ZTV7ee12362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12362[];
+static VTBL_ENTRY alt_thunk_names1108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12362 = { "ee12362", // class name
+ bases_ee12362, 4,
+ &(vtc_ee12362[0]), // expected_vtbl_contents
+ &(vtt_ee12362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12362),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12362),7, //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 ee22362 : dd2362 {
+ int e;
+ virtual void foo(); // _ZN7ee223623fooEv
+ ~ee22362(); // tgen
+ ee22362(); // tgen
+};
+//SIG(1 ee22362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22362 ::foo(){vfunc_called(this, "_ZN7ee223623fooEv");}
+ee22362 ::~ee22362(){ note_dtor("ee22362", this);} // tgen
+ee22362 ::ee22362(){ note_ctor("ee22362", this);} // tgen
+
+static void Test_ee22362()
+{
+ extern Class_Descriptor cd_ee22362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22362, buf);
+ ee22362 *dp, &lv = *(dp=new (buf) ee22362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee22362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(24,16), "ee22362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), 0, "ee22362");
+ check_base_class_offset(lv, (dd2362*), 0, "ee22362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22362.e");
+ test_class_info(&lv, &cd_ee22362);
+ dp->~ee22362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22362(Test_ee22362, "ee22362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22362C1Ev();
+extern void _ZN7ee22362D1Ev();
+Name_Map name_map_ee22362[] = {
+ NSPAIR(_ZN7ee22362C1Ev),
+ NSPAIR(_ZN7ee22362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee22362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22362[];
+extern void _ZN7ee223623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223623fooEv,_ZTv0_n12_N7ee223623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223623fooEv,_ZThn16_N7ee223623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee22362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22362[0]),
+ (VTBL_ENTRY)&_ZN7ee223623fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223623fooEv,_ZTv0_n12_N7ee223623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee22362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee22362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee22362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee22362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee22362[] = {
+ {&(_ZTV7ee22362[3]), 3,10},
+ {&(_tg__ZTV6dd2362__7ee22362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee22362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee22362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee22362[4]), 4,6},
+ {&(_ZTV7ee22362[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22362[];
+extern VTBL_ENTRY _ZTV7ee22362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22362[];
+static VTBL_ENTRY alt_thunk_names1109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223623fooEv,_ZTv0_n12_N7ee223623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223623fooEv,_ZThn16_N7ee223623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22362 = { "ee22362", // class name
+ bases_ee22362, 4,
+ &(vtc_ee22362[0]), // expected_vtbl_contents
+ &(vtt_ee22362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22362),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22362),6, //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 ee32362 : virtual dd2362 {
+ int e;
+ virtual void foo(); // _ZN7ee323623fooEv
+ ~ee32362(); // tgen
+ ee32362(); // tgen
+};
+//SIG(1 ee32362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32362 ::foo(){vfunc_called(this, "_ZN7ee323623fooEv");}
+ee32362 ::~ee32362(){ note_dtor("ee32362", this);} // tgen
+ee32362 ::ee32362(){ note_ctor("ee32362", this);} // tgen
+
+static void Test_ee32362()
+{
+ extern Class_Descriptor cd_ee32362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32362, buf);
+ ee32362 *dp, &lv = *(dp=new (buf) ee32362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee32362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(32,20), "ee32362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), ABISELECT(16,8), "ee32362");
+ check_base_class_offset(lv, (dd2362*), ABISELECT(16,8), "ee32362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32362.e");
+ test_class_info(&lv, &cd_ee32362);
+ dp->~ee32362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32362(Test_ee32362, "ee32362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32362C1Ev();
+extern void _ZN7ee32362D1Ev();
+Name_Map name_map_ee32362[] = {
+ NSPAIR(_ZN7ee32362C1Ev),
+ NSPAIR(_ZN7ee32362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee32362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, ABISELECT(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 _ZTI7ee32362[];
+extern void _ZN7ee323623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323623fooEv,_ZTv0_n16_N7ee323623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323623fooEv,_ZThn8_N7ee323623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323623fooEv,_ZTv0_n12_N7ee323623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323623fooEv,_ZThn20_N7ee323623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee32362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32362[0]),
+ (VTBL_ENTRY)&_ZN7ee323623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323623fooEv,_ZTv0_n16_N7ee323623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323623fooEv,_ZTv0_n12_N7ee323623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee32362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee32362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee32362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee32362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee32362[] = {
+ {&(_ZTV7ee32362[4]), 4,16},
+ {&(_ZTV7ee32362[9]), 9,16},
+ {&(_ZTV7ee32362[14]), 14,16},
+ {&(_tg__ZTV6dd2362__7ee32362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee32362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee32362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee32362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32362[];
+extern VTBL_ENTRY _ZTV7ee32362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32362[];
+static VTBL_ENTRY alt_thunk_names1110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323623fooEv,_ZTv0_n12_N7ee323623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323623fooEv,_ZThn20_N7ee323623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323623fooEv,_ZTv0_n16_N7ee323623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323623fooEv,_ZThn8_N7ee323623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32362 = { "ee32362", // class name
+ bases_ee32362, 4,
+ &(vtc_ee32362[0]), // expected_vtbl_contents
+ &(vtt_ee32362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32362),7, //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 ee42362 : dd2362 {
+ int e;
+ virtual void bar(); // _ZN7ee423623barEv
+ ~ee42362(); // tgen
+ ee42362(); // tgen
+};
+//SIG(1 ee42362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42362 ::bar(){vfunc_called(this, "_ZN7ee423623barEv");}
+ee42362 ::~ee42362(){ note_dtor("ee42362", this);} // tgen
+ee42362 ::ee42362(){ note_ctor("ee42362", this);} // tgen
+
+static void Test_ee42362()
+{
+ extern Class_Descriptor cd_ee42362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42362, buf);
+ ee42362 *dp, &lv = *(dp=new (buf) ee42362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee42362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(24,16), "ee42362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), 0, "ee42362");
+ check_base_class_offset(lv, (dd2362*), 0, "ee42362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42362.e");
+ test_class_info(&lv, &cd_ee42362);
+ dp->~ee42362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42362(Test_ee42362, "ee42362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42362C1Ev();
+extern void _ZN7ee42362D1Ev();
+Name_Map name_map_ee42362[] = {
+ NSPAIR(_ZN7ee42362C1Ev),
+ NSPAIR(_ZN7ee42362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee42362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42362[];
+extern void _ZN6dd23623fooEv();
+extern void _ZN7ee423623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee423623barEv,_ZTv0_n16_N7ee423623barEv)();
+extern void ABISELECT(_ZThn24_N7ee423623barEv,_ZThn16_N7ee423623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+ (VTBL_ENTRY)&_ZN7ee423623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423623barEv,_ZTv0_n16_N7ee423623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee42362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee42362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee42362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee42362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee42362[] = {
+ {&(_ZTV7ee42362[3]), 3,11},
+ {&(_tg__ZTV6dd2362__7ee42362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee42362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee42362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee42362[4]), 4,6},
+ {&(_ZTV7ee42362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42362[];
+extern VTBL_ENTRY _ZTV7ee42362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42362[];
+static VTBL_ENTRY alt_thunk_names1111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423623barEv,_ZTv0_n16_N7ee423623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423623barEv,_ZThn16_N7ee423623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42362 = { "ee42362", // class name
+ bases_ee42362, 4,
+ &(vtc_ee42362[0]), // expected_vtbl_contents
+ &(vtt_ee42362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42362),6, //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 ee52362 : virtual dd2362 {
+ int e;
+ virtual void bar(); // _ZN7ee523623barEv
+ ~ee52362(); // tgen
+ ee52362(); // tgen
+};
+//SIG(1 ee52362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52362 ::bar(){vfunc_called(this, "_ZN7ee523623barEv");}
+ee52362 ::~ee52362(){ note_dtor("ee52362", this);} // tgen
+ee52362 ::ee52362(){ note_ctor("ee52362", this);} // tgen
+
+static void Test_ee52362()
+{
+ extern Class_Descriptor cd_ee52362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52362, buf);
+ ee52362 *dp, &lv = *(dp=new (buf) ee52362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee52362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(32,20), "ee52362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), ABISELECT(16,8), "ee52362");
+ check_base_class_offset(lv, (dd2362*), ABISELECT(16,8), "ee52362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52362.e");
+ test_class_info(&lv, &cd_ee52362);
+ dp->~ee52362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52362(Test_ee52362, "ee52362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52362C1Ev();
+extern void _ZN7ee52362D1Ev();
+Name_Map name_map_ee52362[] = {
+ NSPAIR(_ZN7ee52362C1Ev),
+ NSPAIR(_ZN7ee52362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee52362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, ABISELECT(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 _ZTI7ee52362[];
+extern void _ZN7ee523623barEv();
+extern void _ZN6dd23623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee523623barEv,_ZTv0_n16_N7ee523623barEv)();
+extern void ABISELECT(_ZThn32_N7ee523623barEv,_ZThn20_N7ee523623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52362[0]),
+ (VTBL_ENTRY)&_ZN7ee523623barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523623barEv,_ZTv0_n16_N7ee523623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee52362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee52362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee52362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee52362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee52362[] = {
+ {&(_ZTV7ee52362[4]), 4,16},
+ {&(_ZTV7ee52362[9]), 9,16},
+ {&(_ZTV7ee52362[14]), 14,16},
+ {&(_tg__ZTV6dd2362__7ee52362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee52362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee52362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee52362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52362[];
+extern VTBL_ENTRY _ZTV7ee52362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52362[];
+static VTBL_ENTRY alt_thunk_names1112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523623barEv,_ZTv0_n16_N7ee523623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523623barEv,_ZThn20_N7ee523623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52362 = { "ee52362", // class name
+ bases_ee52362, 4,
+ &(vtc_ee52362[0]), // expected_vtbl_contents
+ &(vtt_ee52362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52362),7, //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 ee62362 : dd2362 {
+ int e;
+ virtual void foo(); // _ZN7ee623623fooEv
+ virtual void bar(); // _ZN7ee623623barEv
+ ~ee62362(); // tgen
+ ee62362(); // tgen
+};
+//SIG(1 ee62362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62362 ::foo(){vfunc_called(this, "_ZN7ee623623fooEv");}
+void ee62362 ::bar(){vfunc_called(this, "_ZN7ee623623barEv");}
+ee62362 ::~ee62362(){ note_dtor("ee62362", this);} // tgen
+ee62362 ::ee62362(){ note_ctor("ee62362", this);} // tgen
+
+static void Test_ee62362()
+{
+ extern Class_Descriptor cd_ee62362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62362, buf);
+ ee62362 *dp, &lv = *(dp=new (buf) ee62362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee62362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(24,16), "ee62362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), 0, "ee62362");
+ check_base_class_offset(lv, (dd2362*), 0, "ee62362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62362.e");
+ test_class_info(&lv, &cd_ee62362);
+ dp->~ee62362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62362(Test_ee62362, "ee62362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62362C1Ev();
+extern void _ZN7ee62362D1Ev();
+Name_Map name_map_ee62362[] = {
+ NSPAIR(_ZN7ee62362C1Ev),
+ NSPAIR(_ZN7ee62362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee62362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62362[];
+extern void _ZN7ee623623fooEv();
+extern void _ZN7ee623623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623623fooEv,_ZTv0_n12_N7ee623623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623623fooEv,_ZThn16_N7ee623623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623623barEv,_ZTv0_n16_N7ee623623barEv)();
+extern void ABISELECT(_ZThn24_N7ee623623barEv,_ZThn16_N7ee623623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62362[0]),
+ (VTBL_ENTRY)&_ZN7ee623623fooEv,
+ (VTBL_ENTRY)&_ZN7ee623623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623623fooEv,_ZTv0_n12_N7ee623623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623623barEv,_ZTv0_n16_N7ee623623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee62362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee62362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee62362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee62362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee62362[] = {
+ {&(_ZTV7ee62362[3]), 3,11},
+ {&(_tg__ZTV6dd2362__7ee62362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee62362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee62362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee62362[4]), 4,6},
+ {&(_ZTV7ee62362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62362[];
+extern VTBL_ENTRY _ZTV7ee62362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62362[];
+static VTBL_ENTRY alt_thunk_names1113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23623fooEv,_ZThn16_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623623barEv,_ZTv0_n16_N7ee623623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623623barEv,_ZThn16_N7ee623623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623623fooEv,_ZTv0_n12_N7ee623623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623623fooEv,_ZThn16_N7ee623623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62362 = { "ee62362", // class name
+ bases_ee62362, 4,
+ &(vtc_ee62362[0]), // expected_vtbl_contents
+ &(vtt_ee62362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62362),6, //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 ee72362 : virtual dd2362 {
+ int e;
+ virtual void foo(); // _ZN7ee723623fooEv
+ virtual void bar(); // _ZN7ee723623barEv
+ ~ee72362(); // tgen
+ ee72362(); // tgen
+};
+//SIG(1 ee72362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72362 ::foo(){vfunc_called(this, "_ZN7ee723623fooEv");}
+void ee72362 ::bar(){vfunc_called(this, "_ZN7ee723623barEv");}
+ee72362 ::~ee72362(){ note_dtor("ee72362", this);} // tgen
+ee72362 ::ee72362(){ note_ctor("ee72362", this);} // tgen
+
+static void Test_ee72362()
+{
+ extern Class_Descriptor cd_ee72362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72362, buf);
+ ee72362 *dp, &lv = *(dp=new (buf) ee72362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee72362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd2362*), ABISELECT(32,20), "ee72362");
+ check_base_class_offset(lv, (cc362*)(dd2362*), ABISELECT(16,8), "ee72362");
+ check_base_class_offset(lv, (dd2362*), ABISELECT(16,8), "ee72362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72362.e");
+ test_class_info(&lv, &cd_ee72362);
+ dp->~ee72362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72362(Test_ee72362, "ee72362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72362C1Ev();
+extern void _ZN7ee72362D1Ev();
+Name_Map name_map_ee72362[] = {
+ NSPAIR(_ZN7ee72362C1Ev),
+ NSPAIR(_ZN7ee72362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd2362;
+extern VTBL_ENTRY _ZTI6dd2362[];
+extern VTBL_ENTRY _ZTV6dd2362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2362[];
+static Base_Class bases_ee72362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2362, 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 _ZTI7ee72362[];
+extern void _ZN7ee723623fooEv();
+extern void _ZN7ee723623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723623fooEv,_ZTv0_n16_N7ee723623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723623fooEv,_ZThn8_N7ee723623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723623fooEv,_ZTv0_n12_N7ee723623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723623fooEv,_ZThn20_N7ee723623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723623barEv,_ZTv0_n16_N7ee723623barEv)();
+extern void ABISELECT(_ZThn32_N7ee723623barEv,_ZThn20_N7ee723623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72362[0]),
+ (VTBL_ENTRY)&_ZN7ee723623fooEv,
+ (VTBL_ENTRY)&_ZN7ee723623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723623fooEv,_ZTv0_n16_N7ee723623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723623fooEv,_ZTv0_n12_N7ee723623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723623barEv,_ZTv0_n16_N7ee723623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72362[];
+extern void _ZN6dd23623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2362__7ee72362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&_ZN6dd23623fooEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd2362__7ee72362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd2362__7ee72362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2362__7ee72362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee72362[] = {
+ {&(_ZTV7ee72362[4]), 4,17},
+ {&(_ZTV7ee72362[10]), 10,17},
+ {&(_ZTV7ee72362[15]), 15,17},
+ {&(_tg__ZTV6dd2362__7ee72362[3]), 3,4},
+ {&(_tg__ZTV5cc3626dd2362__7ee72362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd2362__7ee72362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2362__7ee72362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72362[];
+extern VTBL_ENTRY _ZTV7ee72362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72362[];
+static VTBL_ENTRY alt_thunk_names1114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23623fooEv,_ZTv0_n12_N6dd23623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23623fooEv,_ZThn12_N6dd23623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723623barEv,_ZTv0_n16_N7ee723623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723623barEv,_ZThn20_N7ee723623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723623fooEv,_ZTv0_n12_N7ee723623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723623fooEv,_ZThn20_N7ee723623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723623fooEv,_ZTv0_n16_N7ee723623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723623fooEv,_ZThn8_N7ee723623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72362 = { "ee72362", // class name
+ bases_ee72362, 4,
+ &(vtc_ee72362[0]), // expected_vtbl_contents
+ &(vtt_ee72362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72362),7, //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 dd3362 : virtual cc362 {
+ int d;
+ virtual void foo(); // _ZN6dd33623fooEv
+ ~dd3362(); // tgen
+ dd3362(); // tgen
+};
+//SIG(-1 dd3362) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3362 ::foo(){vfunc_called(this, "_ZN6dd33623fooEv");}
+dd3362 ::~dd3362(){ note_dtor("dd3362", this);} // tgen
+dd3362 ::dd3362(){ note_ctor("dd3362", this);} // tgen
+
+static void Test_dd3362()
+{
+ extern Class_Descriptor cd_dd3362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3362, buf);
+ dd3362 *dp, &lv = *(dp=new (buf) dd3362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd3362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,16), "dd3362");
+ check_base_class_offset(lv, (cc362*), ABISELECT(16,8), "dd3362");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3362.d");
+ test_class_info(&lv, &cd_dd3362);
+ dp->~dd3362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3362(Test_dd3362, "dd3362", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3362C1Ev();
+extern void _ZN6dd3362D1Ev();
+Name_Map name_map_dd3362[] = {
+ NSPAIR(_ZN6dd3362C1Ev),
+ NSPAIR(_ZN6dd3362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd3362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(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 _ZTI6dd3362[];
+extern void _ZN6dd33623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_dd3362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd3362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd3362[] = {
+ {&(_ZTV6dd3362[4]), 4,16},
+ {&(_ZTV6dd3362[9]), 9,16},
+ {&(_ZTV6dd3362[14]), 14,16},
+ {&(_tg__ZTV5cc362__6dd3362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd3362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static VTBL_ENTRY alt_thunk_names1115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3362 = { "dd3362", // class name
+ bases_dd3362, 3,
+ &(vtc_dd3362[0]), // expected_vtbl_contents
+ &(vtt_dd3362[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3362),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03362 : dd3362 {
+ int e;
+ ~ee03362(); // tgen
+ ee03362(); // tgen
+};
+//SIG(1 ee03362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03362 ::~ee03362(){ note_dtor("ee03362", this);} // tgen
+ee03362 ::ee03362(){ note_ctor("ee03362", this);} // tgen
+
+static void Test_ee03362()
+{
+ extern Class_Descriptor cd_ee03362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03362, buf);
+ ee03362 *dp, &lv = *(dp=new (buf) ee03362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee03362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee03362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(16,12), "ee03362");
+ check_base_class_offset(lv, (dd3362*), 0, "ee03362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03362.e");
+ test_class_info(&lv, &cd_ee03362);
+ dp->~ee03362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03362(Test_ee03362, "ee03362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03362C1Ev();
+extern void _ZN7ee03362D1Ev();
+Name_Map name_map_ee03362[] = {
+ NSPAIR(_ZN7ee03362C1Ev),
+ NSPAIR(_ZN7ee03362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee03362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03362[];
+extern void _ZN6dd33623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee03362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee03362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee03362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee03362[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee03362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee03362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee03362[] = {
+ {&(_ZTV7ee03362[4]), 4,16},
+ {&(_tg__ZTV6dd3362__7ee03362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee03362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee03362[4]), 4,6},
+ {&(_ZTV7ee03362[9]), 9,16},
+ {&(_ZTV7ee03362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee03362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee03362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03362[];
+extern VTBL_ENTRY _ZTV7ee03362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03362[];
+static VTBL_ENTRY alt_thunk_names1116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03362 = { "ee03362", // class name
+ bases_ee03362, 4,
+ &(vtc_ee03362[0]), // expected_vtbl_contents
+ &(vtt_ee03362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03362),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13362 : virtual dd3362 {
+ int e;
+ ~ee13362(); // tgen
+ ee13362(); // tgen
+};
+//SIG(1 ee13362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13362 ::~ee13362(){ note_dtor("ee13362", this);} // tgen
+ee13362 ::ee13362(){ note_ctor("ee13362", this);} // tgen
+
+static void Test_ee13362()
+{
+ extern Class_Descriptor cd_ee13362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13362, buf);
+ ee13362 *dp, &lv = *(dp=new (buf) ee13362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee13362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee13362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(32,16), "ee13362");
+ check_base_class_offset(lv, (dd3362*), ABISELECT(16,8), "ee13362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13362.e");
+ test_class_info(&lv, &cd_ee13362);
+ dp->~ee13362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13362(Test_ee13362, "ee13362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13362C1Ev();
+extern void _ZN7ee13362D1Ev();
+Name_Map name_map_ee13362[] = {
+ NSPAIR(_ZN7ee13362C1Ev),
+ NSPAIR(_ZN7ee13362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee13362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, ABISELECT(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 _ZTI7ee13362[];
+extern void _ZN6dd33623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee13362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13362[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee13362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee13362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee13362[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee13362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee13362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee13362[] = {
+ {&(_ZTV7ee13362[5]), 5,22},
+ {&(_ZTV7ee13362[10]), 10,22},
+ {&(_ZTV7ee13362[15]), 15,22},
+ {&(_ZTV7ee13362[20]), 20,22},
+ {&(_tg__ZTV6dd3362__7ee13362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee13362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee13362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee13362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee13362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13362[];
+extern VTBL_ENTRY _ZTV7ee13362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13362[];
+static VTBL_ENTRY alt_thunk_names1117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13362 = { "ee13362", // class name
+ bases_ee13362, 4,
+ &(vtc_ee13362[0]), // expected_vtbl_contents
+ &(vtt_ee13362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13362),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13362),9, //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 ee23362 : dd3362 {
+ int e;
+ virtual void foo(); // _ZN7ee233623fooEv
+ ~ee23362(); // tgen
+ ee23362(); // tgen
+};
+//SIG(1 ee23362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23362 ::foo(){vfunc_called(this, "_ZN7ee233623fooEv");}
+ee23362 ::~ee23362(){ note_dtor("ee23362", this);} // tgen
+ee23362 ::ee23362(){ note_ctor("ee23362", this);} // tgen
+
+static void Test_ee23362()
+{
+ extern Class_Descriptor cd_ee23362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23362, buf);
+ ee23362 *dp, &lv = *(dp=new (buf) ee23362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee23362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee23362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(16,12), "ee23362");
+ check_base_class_offset(lv, (dd3362*), 0, "ee23362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23362.e");
+ test_class_info(&lv, &cd_ee23362);
+ dp->~ee23362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23362(Test_ee23362, "ee23362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23362C1Ev();
+extern void _ZN7ee23362D1Ev();
+Name_Map name_map_ee23362[] = {
+ NSPAIR(_ZN7ee23362C1Ev),
+ NSPAIR(_ZN7ee23362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee23362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23362[];
+extern void _ZN7ee233623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233623fooEv,_ZTv0_n16_N7ee233623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233623fooEv,_ZThn12_N7ee233623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233623fooEv,_ZTv0_n12_N7ee233623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233623fooEv,_ZThn20_N7ee233623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee23362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23362[0]),
+ (VTBL_ENTRY)&_ZN7ee233623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233623fooEv,_ZTv0_n16_N7ee233623fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233623fooEv,_ZTv0_n12_N7ee233623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee23362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee23362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee23362[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee23362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee23362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee23362[] = {
+ {&(_ZTV7ee23362[4]), 4,16},
+ {&(_tg__ZTV6dd3362__7ee23362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee23362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee23362[4]), 4,6},
+ {&(_ZTV7ee23362[9]), 9,16},
+ {&(_ZTV7ee23362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee23362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee23362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23362[];
+extern VTBL_ENTRY _ZTV7ee23362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23362[];
+static VTBL_ENTRY alt_thunk_names1118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233623fooEv,_ZTv0_n12_N7ee233623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233623fooEv,_ZThn20_N7ee233623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233623fooEv,_ZTv0_n16_N7ee233623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233623fooEv,_ZThn12_N7ee233623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23362 = { "ee23362", // class name
+ bases_ee23362, 4,
+ &(vtc_ee23362[0]), // expected_vtbl_contents
+ &(vtt_ee23362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23362),8, //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 ee33362 : virtual dd3362 {
+ int e;
+ virtual void foo(); // _ZN7ee333623fooEv
+ ~ee33362(); // tgen
+ ee33362(); // tgen
+};
+//SIG(1 ee33362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33362 ::foo(){vfunc_called(this, "_ZN7ee333623fooEv");}
+ee33362 ::~ee33362(){ note_dtor("ee33362", this);} // tgen
+ee33362 ::ee33362(){ note_ctor("ee33362", this);} // tgen
+
+static void Test_ee33362()
+{
+ extern Class_Descriptor cd_ee33362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33362, buf);
+ ee33362 *dp, &lv = *(dp=new (buf) ee33362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee33362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee33362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(32,16), "ee33362");
+ check_base_class_offset(lv, (dd3362*), ABISELECT(16,8), "ee33362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33362.e");
+ test_class_info(&lv, &cd_ee33362);
+ dp->~ee33362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33362(Test_ee33362, "ee33362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33362C1Ev();
+extern void _ZN7ee33362D1Ev();
+Name_Map name_map_ee33362[] = {
+ NSPAIR(_ZN7ee33362C1Ev),
+ NSPAIR(_ZN7ee33362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee33362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, ABISELECT(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 _ZTI7ee33362[];
+extern void _ZN7ee333623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333623fooEv,_ZTv0_n20_N7ee333623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333623fooEv,_ZThn8_N7ee333623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333623fooEv,_ZTv0_n16_N7ee333623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333623fooEv,_ZThn16_N7ee333623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333623fooEv,_ZTv0_n12_N7ee333623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333623fooEv,_ZThn24_N7ee333623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY vtc_ee33362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33362[0]),
+ (VTBL_ENTRY)&_ZN7ee333623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333623fooEv,_ZTv0_n20_N7ee333623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333623fooEv,_ZTv0_n16_N7ee333623fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333623fooEv,_ZTv0_n12_N7ee333623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee33362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee33362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee33362[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee33362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee33362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee33362[] = {
+ {&(_ZTV7ee33362[5]), 5,23},
+ {&(_ZTV7ee33362[11]), 11,23},
+ {&(_ZTV7ee33362[16]), 16,23},
+ {&(_ZTV7ee33362[21]), 21,23},
+ {&(_tg__ZTV6dd3362__7ee33362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee33362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee33362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee33362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee33362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33362[];
+extern VTBL_ENTRY _ZTV7ee33362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33362[];
+static VTBL_ENTRY alt_thunk_names1119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333623fooEv,_ZTv0_n12_N7ee333623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333623fooEv,_ZThn24_N7ee333623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333623fooEv,_ZTv0_n16_N7ee333623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333623fooEv,_ZThn16_N7ee333623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333623fooEv,_ZTv0_n20_N7ee333623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333623fooEv,_ZThn8_N7ee333623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33362 = { "ee33362", // class name
+ bases_ee33362, 4,
+ &(vtc_ee33362[0]), // expected_vtbl_contents
+ &(vtt_ee33362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33362),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33362),9, //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 ee43362 : dd3362 {
+ int e;
+ virtual void bar(); // _ZN7ee433623barEv
+ ~ee43362(); // tgen
+ ee43362(); // tgen
+};
+//SIG(1 ee43362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43362 ::bar(){vfunc_called(this, "_ZN7ee433623barEv");}
+ee43362 ::~ee43362(){ note_dtor("ee43362", this);} // tgen
+ee43362 ::ee43362(){ note_ctor("ee43362", this);} // tgen
+
+static void Test_ee43362()
+{
+ extern Class_Descriptor cd_ee43362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43362, buf);
+ ee43362 *dp, &lv = *(dp=new (buf) ee43362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee43362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee43362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(16,12), "ee43362");
+ check_base_class_offset(lv, (dd3362*), 0, "ee43362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43362.e");
+ test_class_info(&lv, &cd_ee43362);
+ dp->~ee43362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43362(Test_ee43362, "ee43362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43362C1Ev();
+extern void _ZN7ee43362D1Ev();
+Name_Map name_map_ee43362[] = {
+ NSPAIR(_ZN7ee43362C1Ev),
+ NSPAIR(_ZN7ee43362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee43362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43362[];
+extern void _ZN6dd33623fooEv();
+extern void _ZN7ee433623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433623barEv,_ZTv0_n16_N7ee433623barEv)();
+extern void ABISELECT(_ZThn32_N7ee433623barEv,_ZThn20_N7ee433623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+ (VTBL_ENTRY)&_ZN7ee433623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433623barEv,_ZTv0_n16_N7ee433623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee43362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee43362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee43362[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee43362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee43362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee43362[] = {
+ {&(_ZTV7ee43362[4]), 4,17},
+ {&(_tg__ZTV6dd3362__7ee43362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee43362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee43362[4]), 4,6},
+ {&(_ZTV7ee43362[10]), 10,17},
+ {&(_ZTV7ee43362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee43362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee43362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43362[];
+extern VTBL_ENTRY _ZTV7ee43362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43362[];
+static VTBL_ENTRY alt_thunk_names1120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433623barEv,_ZTv0_n16_N7ee433623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433623barEv,_ZThn20_N7ee433623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43362 = { "ee43362", // class name
+ bases_ee43362, 4,
+ &(vtc_ee43362[0]), // expected_vtbl_contents
+ &(vtt_ee43362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43362),8, //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 ee53362 : virtual dd3362 {
+ int e;
+ virtual void bar(); // _ZN7ee533623barEv
+ ~ee53362(); // tgen
+ ee53362(); // tgen
+};
+//SIG(1 ee53362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53362 ::bar(){vfunc_called(this, "_ZN7ee533623barEv");}
+ee53362 ::~ee53362(){ note_dtor("ee53362", this);} // tgen
+ee53362 ::ee53362(){ note_ctor("ee53362", this);} // tgen
+
+static void Test_ee53362()
+{
+ extern Class_Descriptor cd_ee53362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53362, buf);
+ ee53362 *dp, &lv = *(dp=new (buf) ee53362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee53362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee53362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(32,16), "ee53362");
+ check_base_class_offset(lv, (dd3362*), ABISELECT(16,8), "ee53362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53362.e");
+ test_class_info(&lv, &cd_ee53362);
+ dp->~ee53362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53362(Test_ee53362, "ee53362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53362C1Ev();
+extern void _ZN7ee53362D1Ev();
+Name_Map name_map_ee53362[] = {
+ NSPAIR(_ZN7ee53362C1Ev),
+ NSPAIR(_ZN7ee53362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee53362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, ABISELECT(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 _ZTI7ee53362[];
+extern void _ZN7ee533623barEv();
+extern void _ZN6dd33623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533623barEv,_ZTv0_n16_N7ee533623barEv)();
+extern void ABISELECT(_ZThn48_N7ee533623barEv,_ZThn24_N7ee533623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53362[0]),
+ (VTBL_ENTRY)&_ZN7ee533623barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533623barEv,_ZTv0_n16_N7ee533623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee53362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee53362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee53362[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee53362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee53362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee53362[] = {
+ {&(_ZTV7ee53362[5]), 5,23},
+ {&(_ZTV7ee53362[11]), 11,23},
+ {&(_ZTV7ee53362[16]), 16,23},
+ {&(_ZTV7ee53362[21]), 21,23},
+ {&(_tg__ZTV6dd3362__7ee53362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee53362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee53362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee53362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee53362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53362[];
+extern VTBL_ENTRY _ZTV7ee53362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53362[];
+static VTBL_ENTRY alt_thunk_names1121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533623barEv,_ZTv0_n16_N7ee533623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533623barEv,_ZThn24_N7ee533623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53362 = { "ee53362", // class name
+ bases_ee53362, 4,
+ &(vtc_ee53362[0]), // expected_vtbl_contents
+ &(vtt_ee53362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53362),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53362),9, //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 ee63362 : dd3362 {
+ int e;
+ virtual void foo(); // _ZN7ee633623fooEv
+ virtual void bar(); // _ZN7ee633623barEv
+ ~ee63362(); // tgen
+ ee63362(); // tgen
+};
+//SIG(1 ee63362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63362 ::foo(){vfunc_called(this, "_ZN7ee633623fooEv");}
+void ee63362 ::bar(){vfunc_called(this, "_ZN7ee633623barEv");}
+ee63362 ::~ee63362(){ note_dtor("ee63362", this);} // tgen
+ee63362 ::ee63362(){ note_ctor("ee63362", this);} // tgen
+
+static void Test_ee63362()
+{
+ extern Class_Descriptor cd_ee63362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63362, buf);
+ ee63362 *dp, &lv = *(dp=new (buf) ee63362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee63362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee63362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(16,12), "ee63362");
+ check_base_class_offset(lv, (dd3362*), 0, "ee63362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63362.e");
+ test_class_info(&lv, &cd_ee63362);
+ dp->~ee63362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63362(Test_ee63362, "ee63362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63362C1Ev();
+extern void _ZN7ee63362D1Ev();
+Name_Map name_map_ee63362[] = {
+ NSPAIR(_ZN7ee63362C1Ev),
+ NSPAIR(_ZN7ee63362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee63362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63362[];
+extern void _ZN7ee633623fooEv();
+extern void _ZN7ee633623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633623fooEv,_ZTv0_n16_N7ee633623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633623fooEv,_ZThn12_N7ee633623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633623fooEv,_ZTv0_n12_N7ee633623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633623fooEv,_ZThn20_N7ee633623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633623barEv,_ZTv0_n16_N7ee633623barEv)();
+extern void ABISELECT(_ZThn32_N7ee633623barEv,_ZThn20_N7ee633623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63362[0]),
+ (VTBL_ENTRY)&_ZN7ee633623fooEv,
+ (VTBL_ENTRY)&_ZN7ee633623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633623fooEv,_ZTv0_n16_N7ee633623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633623fooEv,_ZTv0_n12_N7ee633623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633623barEv,_ZTv0_n16_N7ee633623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee63362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee63362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee63362[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee63362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee63362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee63362[] = {
+ {&(_ZTV7ee63362[4]), 4,17},
+ {&(_tg__ZTV6dd3362__7ee63362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee63362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee63362[4]), 4,6},
+ {&(_ZTV7ee63362[10]), 10,17},
+ {&(_ZTV7ee63362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee63362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee63362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63362[];
+extern VTBL_ENTRY _ZTV7ee63362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63362[];
+static VTBL_ENTRY alt_thunk_names1122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn20_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn12_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633623barEv,_ZTv0_n16_N7ee633623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633623barEv,_ZThn20_N7ee633623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633623fooEv,_ZTv0_n12_N7ee633623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633623fooEv,_ZThn20_N7ee633623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633623fooEv,_ZTv0_n16_N7ee633623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633623fooEv,_ZThn12_N7ee633623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63362 = { "ee63362", // class name
+ bases_ee63362, 4,
+ &(vtc_ee63362[0]), // expected_vtbl_contents
+ &(vtt_ee63362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63362),8, //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 ee73362 : virtual dd3362 {
+ int e;
+ virtual void foo(); // _ZN7ee733623fooEv
+ virtual void bar(); // _ZN7ee733623barEv
+ ~ee73362(); // tgen
+ ee73362(); // tgen
+};
+//SIG(1 ee73362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73362 ::foo(){vfunc_called(this, "_ZN7ee733623fooEv");}
+void ee73362 ::bar(){vfunc_called(this, "_ZN7ee733623barEv");}
+ee73362 ::~ee73362(){ note_dtor("ee73362", this);} // tgen
+ee73362 ::ee73362(){ note_ctor("ee73362", this);} // tgen
+
+static void Test_ee73362()
+{
+ extern Class_Descriptor cd_ee73362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73362, buf);
+ ee73362 *dp, &lv = *(dp=new (buf) ee73362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee73362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee73362");
+ check_base_class_offset(lv, (cc362*)(dd3362*), ABISELECT(32,16), "ee73362");
+ check_base_class_offset(lv, (dd3362*), ABISELECT(16,8), "ee73362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73362.e");
+ test_class_info(&lv, &cd_ee73362);
+ dp->~ee73362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73362(Test_ee73362, "ee73362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73362C1Ev();
+extern void _ZN7ee73362D1Ev();
+Name_Map name_map_ee73362[] = {
+ NSPAIR(_ZN7ee73362C1Ev),
+ NSPAIR(_ZN7ee73362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd3362;
+extern VTBL_ENTRY _ZTI6dd3362[];
+extern VTBL_ENTRY _ZTV6dd3362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3362[];
+static Base_Class bases_ee73362[] = {
+ // 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_bb62, 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_cc362, 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_dd3362, 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 _ZTI7ee73362[];
+extern void _ZN7ee733623fooEv();
+extern void _ZN7ee733623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733623fooEv,_ZTv0_n20_N7ee733623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733623fooEv,_ZThn8_N7ee733623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733623fooEv,_ZTv0_n16_N7ee733623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733623fooEv,_ZThn16_N7ee733623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733623fooEv,_ZTv0_n12_N7ee733623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733623fooEv,_ZThn24_N7ee733623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733623barEv,_ZTv0_n16_N7ee733623barEv)();
+extern void ABISELECT(_ZThn48_N7ee733623barEv,_ZThn24_N7ee733623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73362[0]),
+ (VTBL_ENTRY)&_ZN7ee733623fooEv,
+ (VTBL_ENTRY)&_ZN7ee733623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733623fooEv,_ZTv0_n20_N7ee733623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733623fooEv,_ZTv0_n16_N7ee733623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733623fooEv,_ZTv0_n12_N7ee733623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733623barEv,_ZTv0_n16_N7ee733623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73362[];
+extern void _ZN6dd33623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3362__7ee73362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&_ZN6dd33623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd3362__7ee73362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3362__7ee73362[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee73362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee73362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee73362[] = {
+ {&(_ZTV7ee73362[5]), 5,24},
+ {&(_ZTV7ee73362[12]), 12,24},
+ {&(_ZTV7ee73362[17]), 17,24},
+ {&(_ZTV7ee73362[22]), 22,24},
+ {&(_tg__ZTV6dd3362__7ee73362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd3362__7ee73362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3362__7ee73362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee73362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee73362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73362[];
+extern VTBL_ENTRY _ZTV7ee73362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73362[];
+static VTBL_ENTRY alt_thunk_names1123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33623fooEv,_ZTv0_n12_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33623fooEv,_ZThn16_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33623fooEv,_ZTv0_n16_N6dd33623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33623fooEv,_ZThn8_N6dd33623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733623barEv,_ZTv0_n16_N7ee733623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733623barEv,_ZThn24_N7ee733623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733623fooEv,_ZTv0_n12_N7ee733623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733623fooEv,_ZThn24_N7ee733623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733623fooEv,_ZTv0_n16_N7ee733623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733623fooEv,_ZThn16_N7ee733623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733623fooEv,_ZTv0_n20_N7ee733623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733623fooEv,_ZThn8_N7ee733623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73362 = { "ee73362", // class name
+ bases_ee73362, 4,
+ &(vtc_ee73362[0]), // expected_vtbl_contents
+ &(vtt_ee73362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73362),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73362),9, //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 dd4362 : cc362 {
+ int d;
+ virtual void bar(); // _ZN6dd43623barEv
+ ~dd4362(); // tgen
+ dd4362(); // tgen
+};
+//SIG(-1 dd4362) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4362 ::bar(){vfunc_called(this, "_ZN6dd43623barEv");}
+dd4362 ::~dd4362(){ note_dtor("dd4362", this);} // tgen
+dd4362 ::dd4362(){ note_ctor("dd4362", this);} // tgen
+
+static void Test_dd4362()
+{
+ extern Class_Descriptor cd_dd4362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4362, buf);
+ dd4362 *dp, &lv = *(dp=new (buf) dd4362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd4362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(16,12), "dd4362");
+ check_base_class_offset(lv, (cc362*), 0, "dd4362");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4362.d");
+ test_class_info(&lv, &cd_dd4362);
+ dp->~dd4362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4362(Test_dd4362, "dd4362", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4362C1Ev();
+extern void _ZN6dd4362D1Ev();
+Name_Map name_map_dd4362[] = {
+ NSPAIR(_ZN6dd4362C1Ev),
+ NSPAIR(_ZN6dd4362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd4362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd4362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd4362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd4362[] = {
+ {&(_ZTV6dd4362[3]), 3,11},
+ {&(_tg__ZTV5cc362__6dd4362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd4362[4]), 4,6},
+ {&(_ZTV6dd4362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static VTBL_ENTRY alt_thunk_names1124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4362 = { "dd4362", // class name
+ bases_dd4362, 3,
+ &(vtc_dd4362[0]), // expected_vtbl_contents
+ &(vtt_dd4362[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4362),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04362 : dd4362 {
+ int e;
+ ~ee04362(); // tgen
+ ee04362(); // tgen
+};
+//SIG(1 ee04362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04362 ::~ee04362(){ note_dtor("ee04362", this);} // tgen
+ee04362 ::ee04362(){ note_ctor("ee04362", this);} // tgen
+
+static void Test_ee04362()
+{
+ extern Class_Descriptor cd_ee04362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04362, buf);
+ ee04362 *dp, &lv = *(dp=new (buf) ee04362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee04362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(24,16), "ee04362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), 0, "ee04362");
+ check_base_class_offset(lv, (dd4362*), 0, "ee04362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04362.e");
+ test_class_info(&lv, &cd_ee04362);
+ dp->~ee04362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04362(Test_ee04362, "ee04362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04362C1Ev();
+extern void _ZN7ee04362D1Ev();
+Name_Map name_map_ee04362[] = {
+ NSPAIR(_ZN7ee04362C1Ev),
+ NSPAIR(_ZN7ee04362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee04362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee04362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee04362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee04362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee04362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee04362[] = {
+ {&(_ZTV7ee04362[3]), 3,11},
+ {&(_tg__ZTV6dd4362__7ee04362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee04362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee04362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee04362[4]), 4,6},
+ {&(_ZTV7ee04362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04362[];
+extern VTBL_ENTRY _ZTV7ee04362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04362[];
+static VTBL_ENTRY alt_thunk_names1125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04362 = { "ee04362", // class name
+ bases_ee04362, 4,
+ &(vtc_ee04362[0]), // expected_vtbl_contents
+ &(vtt_ee04362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04362),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14362 : virtual dd4362 {
+ int e;
+ ~ee14362(); // tgen
+ ee14362(); // tgen
+};
+//SIG(1 ee14362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14362 ::~ee14362(){ note_dtor("ee14362", this);} // tgen
+ee14362 ::ee14362(){ note_ctor("ee14362", this);} // tgen
+
+static void Test_ee14362()
+{
+ extern Class_Descriptor cd_ee14362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14362, buf);
+ ee14362 *dp, &lv = *(dp=new (buf) ee14362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee14362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(32,20), "ee14362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), ABISELECT(16,8), "ee14362");
+ check_base_class_offset(lv, (dd4362*), ABISELECT(16,8), "ee14362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14362.e");
+ test_class_info(&lv, &cd_ee14362);
+ dp->~ee14362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14362(Test_ee14362, "ee14362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14362C1Ev();
+extern void _ZN7ee14362D1Ev();
+Name_Map name_map_ee14362[] = {
+ NSPAIR(_ZN7ee14362C1Ev),
+ NSPAIR(_ZN7ee14362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee14362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, 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 _ZTI7ee14362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14362[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee14362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee14362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee14362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee14362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee14362[] = {
+ {&(_ZTV7ee14362[4]), 4,17},
+ {&(_ZTV7ee14362[9]), 9,17},
+ {&(_ZTV7ee14362[15]), 15,17},
+ {&(_tg__ZTV6dd4362__7ee14362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee14362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee14362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee14362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14362[];
+extern VTBL_ENTRY _ZTV7ee14362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14362[];
+static VTBL_ENTRY alt_thunk_names1126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14362 = { "ee14362", // class name
+ bases_ee14362, 4,
+ &(vtc_ee14362[0]), // expected_vtbl_contents
+ &(vtt_ee14362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14362),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24362 : dd4362 {
+ int e;
+ virtual void foo(); // _ZN7ee243623fooEv
+ ~ee24362(); // tgen
+ ee24362(); // tgen
+};
+//SIG(1 ee24362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24362 ::foo(){vfunc_called(this, "_ZN7ee243623fooEv");}
+ee24362 ::~ee24362(){ note_dtor("ee24362", this);} // tgen
+ee24362 ::ee24362(){ note_ctor("ee24362", this);} // tgen
+
+static void Test_ee24362()
+{
+ extern Class_Descriptor cd_ee24362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24362, buf);
+ ee24362 *dp, &lv = *(dp=new (buf) ee24362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee24362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(24,16), "ee24362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), 0, "ee24362");
+ check_base_class_offset(lv, (dd4362*), 0, "ee24362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24362.e");
+ test_class_info(&lv, &cd_ee24362);
+ dp->~ee24362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24362(Test_ee24362, "ee24362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24362C1Ev();
+extern void _ZN7ee24362D1Ev();
+Name_Map name_map_ee24362[] = {
+ NSPAIR(_ZN7ee24362C1Ev),
+ NSPAIR(_ZN7ee24362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee24362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24362[];
+extern void _ZN7ee243623fooEv();
+extern void _ZN6dd43623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243623fooEv,_ZTv0_n12_N7ee243623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243623fooEv,_ZThn16_N7ee243623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24362[0]),
+ (VTBL_ENTRY)&_ZN7ee243623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243623fooEv,_ZTv0_n12_N7ee243623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee24362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee24362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee24362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee24362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee24362[] = {
+ {&(_ZTV7ee24362[3]), 3,11},
+ {&(_tg__ZTV6dd4362__7ee24362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee24362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee24362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee24362[4]), 4,6},
+ {&(_ZTV7ee24362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24362[];
+extern VTBL_ENTRY _ZTV7ee24362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24362[];
+static VTBL_ENTRY alt_thunk_names1127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243623fooEv,_ZTv0_n12_N7ee243623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243623fooEv,_ZThn16_N7ee243623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24362 = { "ee24362", // class name
+ bases_ee24362, 4,
+ &(vtc_ee24362[0]), // expected_vtbl_contents
+ &(vtt_ee24362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24362),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 ee34362 : virtual dd4362 {
+ int e;
+ virtual void foo(); // _ZN7ee343623fooEv
+ ~ee34362(); // tgen
+ ee34362(); // tgen
+};
+//SIG(1 ee34362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34362 ::foo(){vfunc_called(this, "_ZN7ee343623fooEv");}
+ee34362 ::~ee34362(){ note_dtor("ee34362", this);} // tgen
+ee34362 ::ee34362(){ note_ctor("ee34362", this);} // tgen
+
+static void Test_ee34362()
+{
+ extern Class_Descriptor cd_ee34362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34362, buf);
+ ee34362 *dp, &lv = *(dp=new (buf) ee34362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee34362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(32,20), "ee34362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), ABISELECT(16,8), "ee34362");
+ check_base_class_offset(lv, (dd4362*), ABISELECT(16,8), "ee34362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34362.e");
+ test_class_info(&lv, &cd_ee34362);
+ dp->~ee34362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34362(Test_ee34362, "ee34362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34362C1Ev();
+extern void _ZN7ee34362D1Ev();
+Name_Map name_map_ee34362[] = {
+ NSPAIR(_ZN7ee34362C1Ev),
+ NSPAIR(_ZN7ee34362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee34362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, ABISELECT(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 _ZTI7ee34362[];
+extern void _ZN7ee343623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343623fooEv,_ZTv0_n16_N7ee343623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343623fooEv,_ZThn8_N7ee343623fooEv)() __attribute__((weak));
+extern void _ZN6dd43623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343623fooEv,_ZTv0_n12_N7ee343623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343623fooEv,_ZThn20_N7ee343623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34362[0]),
+ (VTBL_ENTRY)&_ZN7ee343623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343623fooEv,_ZTv0_n16_N7ee343623fooEv),
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343623fooEv,_ZTv0_n12_N7ee343623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee34362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee34362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee34362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee34362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee34362[] = {
+ {&(_ZTV7ee34362[4]), 4,18},
+ {&(_ZTV7ee34362[10]), 10,18},
+ {&(_ZTV7ee34362[16]), 16,18},
+ {&(_tg__ZTV6dd4362__7ee34362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee34362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee34362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee34362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34362[];
+extern VTBL_ENTRY _ZTV7ee34362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34362[];
+static VTBL_ENTRY alt_thunk_names1128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343623fooEv,_ZTv0_n12_N7ee343623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343623fooEv,_ZThn20_N7ee343623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343623fooEv,_ZTv0_n16_N7ee343623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343623fooEv,_ZThn8_N7ee343623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34362 = { "ee34362", // class name
+ bases_ee34362, 4,
+ &(vtc_ee34362[0]), // expected_vtbl_contents
+ &(vtt_ee34362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34362),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34362),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 ee44362 : dd4362 {
+ int e;
+ virtual void bar(); // _ZN7ee443623barEv
+ ~ee44362(); // tgen
+ ee44362(); // tgen
+};
+//SIG(1 ee44362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44362 ::bar(){vfunc_called(this, "_ZN7ee443623barEv");}
+ee44362 ::~ee44362(){ note_dtor("ee44362", this);} // tgen
+ee44362 ::ee44362(){ note_ctor("ee44362", this);} // tgen
+
+static void Test_ee44362()
+{
+ extern Class_Descriptor cd_ee44362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44362, buf);
+ ee44362 *dp, &lv = *(dp=new (buf) ee44362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee44362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(24,16), "ee44362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), 0, "ee44362");
+ check_base_class_offset(lv, (dd4362*), 0, "ee44362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44362.e");
+ test_class_info(&lv, &cd_ee44362);
+ dp->~ee44362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44362(Test_ee44362, "ee44362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44362C1Ev();
+extern void _ZN7ee44362D1Ev();
+Name_Map name_map_ee44362[] = {
+ NSPAIR(_ZN7ee44362C1Ev),
+ NSPAIR(_ZN7ee44362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee44362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN7ee443623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee443623barEv,_ZTv0_n16_N7ee443623barEv)();
+extern void ABISELECT(_ZThn24_N7ee443623barEv,_ZThn16_N7ee443623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN7ee443623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443623barEv,_ZTv0_n16_N7ee443623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee44362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee44362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee44362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee44362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee44362[] = {
+ {&(_ZTV7ee44362[3]), 3,11},
+ {&(_tg__ZTV6dd4362__7ee44362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee44362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee44362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee44362[4]), 4,6},
+ {&(_ZTV7ee44362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44362[];
+extern VTBL_ENTRY _ZTV7ee44362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44362[];
+static VTBL_ENTRY alt_thunk_names1129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443623barEv,_ZTv0_n16_N7ee443623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443623barEv,_ZThn16_N7ee443623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44362 = { "ee44362", // class name
+ bases_ee44362, 4,
+ &(vtc_ee44362[0]), // expected_vtbl_contents
+ &(vtt_ee44362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44362),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 ee54362 : virtual dd4362 {
+ int e;
+ virtual void bar(); // _ZN7ee543623barEv
+ ~ee54362(); // tgen
+ ee54362(); // tgen
+};
+//SIG(1 ee54362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54362 ::bar(){vfunc_called(this, "_ZN7ee543623barEv");}
+ee54362 ::~ee54362(){ note_dtor("ee54362", this);} // tgen
+ee54362 ::ee54362(){ note_ctor("ee54362", this);} // tgen
+
+static void Test_ee54362()
+{
+ extern Class_Descriptor cd_ee54362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54362, buf);
+ ee54362 *dp, &lv = *(dp=new (buf) ee54362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee54362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(32,20), "ee54362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), ABISELECT(16,8), "ee54362");
+ check_base_class_offset(lv, (dd4362*), ABISELECT(16,8), "ee54362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54362.e");
+ test_class_info(&lv, &cd_ee54362);
+ dp->~ee54362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54362(Test_ee54362, "ee54362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54362C1Ev();
+extern void _ZN7ee54362D1Ev();
+Name_Map name_map_ee54362[] = {
+ NSPAIR(_ZN7ee54362C1Ev),
+ NSPAIR(_ZN7ee54362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee54362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, ABISELECT(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 _ZTI7ee54362[];
+extern void _ZN7ee543623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543623barEv,_ZTv0_n20_N7ee543623barEv)();
+extern void ABISELECT(_ZThn16_N7ee543623barEv,_ZThn8_N7ee543623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543623barEv,_ZTv0_n16_N7ee543623barEv)();
+extern void ABISELECT(_ZThn32_N7ee543623barEv,_ZThn20_N7ee543623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54362[0]),
+ (VTBL_ENTRY)&_ZN7ee543623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543623barEv,_ZTv0_n20_N7ee543623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543623barEv,_ZTv0_n16_N7ee543623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee54362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee54362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee54362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee54362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee54362[] = {
+ {&(_ZTV7ee54362[4]), 4,18},
+ {&(_ZTV7ee54362[10]), 10,18},
+ {&(_ZTV7ee54362[16]), 16,18},
+ {&(_tg__ZTV6dd4362__7ee54362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee54362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee54362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee54362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54362[];
+extern VTBL_ENTRY _ZTV7ee54362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54362[];
+static VTBL_ENTRY alt_thunk_names1130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543623barEv,_ZTv0_n16_N7ee543623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543623barEv,_ZThn20_N7ee543623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543623barEv,_ZTv0_n20_N7ee543623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543623barEv,_ZThn8_N7ee543623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54362 = { "ee54362", // class name
+ bases_ee54362, 4,
+ &(vtc_ee54362[0]), // expected_vtbl_contents
+ &(vtt_ee54362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54362),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54362),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 ee64362 : dd4362 {
+ int e;
+ virtual void foo(); // _ZN7ee643623fooEv
+ virtual void bar(); // _ZN7ee643623barEv
+ ~ee64362(); // tgen
+ ee64362(); // tgen
+};
+//SIG(1 ee64362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64362 ::foo(){vfunc_called(this, "_ZN7ee643623fooEv");}
+void ee64362 ::bar(){vfunc_called(this, "_ZN7ee643623barEv");}
+ee64362 ::~ee64362(){ note_dtor("ee64362", this);} // tgen
+ee64362 ::ee64362(){ note_ctor("ee64362", this);} // tgen
+
+static void Test_ee64362()
+{
+ extern Class_Descriptor cd_ee64362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64362, buf);
+ ee64362 *dp, &lv = *(dp=new (buf) ee64362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee64362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(24,16), "ee64362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), 0, "ee64362");
+ check_base_class_offset(lv, (dd4362*), 0, "ee64362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64362.e");
+ test_class_info(&lv, &cd_ee64362);
+ dp->~ee64362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64362(Test_ee64362, "ee64362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64362C1Ev();
+extern void _ZN7ee64362D1Ev();
+Name_Map name_map_ee64362[] = {
+ NSPAIR(_ZN7ee64362C1Ev),
+ NSPAIR(_ZN7ee64362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee64362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64362[];
+extern void _ZN7ee643623fooEv();
+extern void _ZN7ee643623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643623fooEv,_ZTv0_n12_N7ee643623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643623fooEv,_ZThn16_N7ee643623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643623barEv,_ZTv0_n16_N7ee643623barEv)();
+extern void ABISELECT(_ZThn24_N7ee643623barEv,_ZThn16_N7ee643623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64362[0]),
+ (VTBL_ENTRY)&_ZN7ee643623fooEv,
+ (VTBL_ENTRY)&_ZN7ee643623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643623fooEv,_ZTv0_n12_N7ee643623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643623barEv,_ZTv0_n16_N7ee643623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee64362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee64362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee64362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee64362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee64362[] = {
+ {&(_ZTV7ee64362[3]), 3,11},
+ {&(_tg__ZTV6dd4362__7ee64362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee64362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee64362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee64362[4]), 4,6},
+ {&(_ZTV7ee64362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64362[];
+extern VTBL_ENTRY _ZTV7ee64362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64362[];
+static VTBL_ENTRY alt_thunk_names1131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43623barEv,_ZThn16_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643623barEv,_ZTv0_n16_N7ee643623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643623barEv,_ZThn16_N7ee643623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643623fooEv,_ZTv0_n12_N7ee643623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643623fooEv,_ZThn16_N7ee643623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64362 = { "ee64362", // class name
+ bases_ee64362, 4,
+ &(vtc_ee64362[0]), // expected_vtbl_contents
+ &(vtt_ee64362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64362),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 ee74362 : virtual dd4362 {
+ int e;
+ virtual void foo(); // _ZN7ee743623fooEv
+ virtual void bar(); // _ZN7ee743623barEv
+ ~ee74362(); // tgen
+ ee74362(); // tgen
+};
+//SIG(1 ee74362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74362 ::foo(){vfunc_called(this, "_ZN7ee743623fooEv");}
+void ee74362 ::bar(){vfunc_called(this, "_ZN7ee743623barEv");}
+ee74362 ::~ee74362(){ note_dtor("ee74362", this);} // tgen
+ee74362 ::ee74362(){ note_ctor("ee74362", this);} // tgen
+
+static void Test_ee74362()
+{
+ extern Class_Descriptor cd_ee74362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74362, buf);
+ ee74362 *dp, &lv = *(dp=new (buf) ee74362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee74362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd4362*), ABISELECT(32,20), "ee74362");
+ check_base_class_offset(lv, (cc362*)(dd4362*), ABISELECT(16,8), "ee74362");
+ check_base_class_offset(lv, (dd4362*), ABISELECT(16,8), "ee74362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74362.e");
+ test_class_info(&lv, &cd_ee74362);
+ dp->~ee74362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74362(Test_ee74362, "ee74362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74362C1Ev();
+extern void _ZN7ee74362D1Ev();
+Name_Map name_map_ee74362[] = {
+ NSPAIR(_ZN7ee74362C1Ev),
+ NSPAIR(_ZN7ee74362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd4362;
+extern VTBL_ENTRY _ZTI6dd4362[];
+extern VTBL_ENTRY _ZTV6dd4362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4362[];
+static Base_Class bases_ee74362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4362, ABISELECT(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 _ZTI7ee74362[];
+extern void _ZN7ee743623fooEv();
+extern void _ZN7ee743623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743623fooEv,_ZTv0_n16_N7ee743623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743623fooEv,_ZThn8_N7ee743623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743623barEv,_ZTv0_n20_N7ee743623barEv)();
+extern void ABISELECT(_ZThn16_N7ee743623barEv,_ZThn8_N7ee743623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743623fooEv,_ZTv0_n12_N7ee743623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743623fooEv,_ZThn20_N7ee743623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743623barEv,_ZTv0_n16_N7ee743623barEv)();
+extern void ABISELECT(_ZThn32_N7ee743623barEv,_ZThn20_N7ee743623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74362[0]),
+ (VTBL_ENTRY)&_ZN7ee743623fooEv,
+ (VTBL_ENTRY)&_ZN7ee743623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743623fooEv,_ZTv0_n16_N7ee743623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743623barEv,_ZTv0_n20_N7ee743623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743623fooEv,_ZTv0_n12_N7ee743623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743623barEv,_ZTv0_n16_N7ee743623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74362[];
+extern void _ZN5cc3623fooEv();
+extern void _ZN6dd43623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4362__7ee74362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ (VTBL_ENTRY)&_ZN6dd43623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd4362__7ee74362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd4362__7ee74362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv)();
+extern void ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4362__7ee74362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv),
+};
+static VTT_ENTRY vtt_ee74362[] = {
+ {&(_ZTV7ee74362[4]), 4,19},
+ {&(_ZTV7ee74362[11]), 11,19},
+ {&(_ZTV7ee74362[17]), 17,19},
+ {&(_tg__ZTV6dd4362__7ee74362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd4362__7ee74362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd4362__7ee74362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4362__7ee74362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74362[];
+extern VTBL_ENTRY _ZTV7ee74362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74362[];
+static VTBL_ENTRY alt_thunk_names1132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43623barEv,_ZTv0_n16_N6dd43623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43623barEv,_ZThn12_N6dd43623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743623barEv,_ZTv0_n16_N7ee743623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743623barEv,_ZThn20_N7ee743623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743623fooEv,_ZTv0_n12_N7ee743623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743623fooEv,_ZThn20_N7ee743623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743623barEv,_ZTv0_n20_N7ee743623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743623barEv,_ZThn8_N7ee743623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743623fooEv,_ZTv0_n16_N7ee743623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743623fooEv,_ZThn8_N7ee743623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74362 = { "ee74362", // class name
+ bases_ee74362, 4,
+ &(vtc_ee74362[0]), // expected_vtbl_contents
+ &(vtt_ee74362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74362),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74362),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 dd5362 : virtual cc362 {
+ int d;
+ virtual void bar(); // _ZN6dd53623barEv
+ ~dd5362(); // tgen
+ dd5362(); // tgen
+};
+//SIG(-1 dd5362) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5362 ::bar(){vfunc_called(this, "_ZN6dd53623barEv");}
+dd5362 ::~dd5362(){ note_dtor("dd5362", this);} // tgen
+dd5362 ::dd5362(){ note_ctor("dd5362", this);} // tgen
+
+static void Test_dd5362()
+{
+ extern Class_Descriptor cd_dd5362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5362, buf);
+ dd5362 *dp, &lv = *(dp=new (buf) dd5362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd5362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,16), "dd5362");
+ check_base_class_offset(lv, (cc362*), ABISELECT(16,8), "dd5362");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5362.d");
+ test_class_info(&lv, &cd_dd5362);
+ dp->~dd5362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5362(Test_dd5362, "dd5362", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5362C1Ev();
+extern void _ZN6dd5362D1Ev();
+Name_Map name_map_dd5362[] = {
+ NSPAIR(_ZN6dd5362C1Ev),
+ NSPAIR(_ZN6dd5362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd5362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(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 _ZTI6dd5362[];
+extern void _ZN6dd53623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd5362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd5362[] = {
+ {&(_ZTV6dd5362[4]), 4,16},
+ {&(_ZTV6dd5362[9]), 9,16},
+ {&(_ZTV6dd5362[14]), 14,16},
+ {&(_tg__ZTV5cc362__6dd5362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd5362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static VTBL_ENTRY alt_thunk_names1133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5362 = { "dd5362", // class name
+ bases_dd5362, 3,
+ &(vtc_dd5362[0]), // expected_vtbl_contents
+ &(vtt_dd5362[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5362),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05362 : dd5362 {
+ int e;
+ ~ee05362(); // tgen
+ ee05362(); // tgen
+};
+//SIG(1 ee05362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05362 ::~ee05362(){ note_dtor("ee05362", this);} // tgen
+ee05362 ::ee05362(){ note_ctor("ee05362", this);} // tgen
+
+static void Test_ee05362()
+{
+ extern Class_Descriptor cd_ee05362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05362, buf);
+ ee05362 *dp, &lv = *(dp=new (buf) ee05362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee05362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee05362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(16,12), "ee05362");
+ check_base_class_offset(lv, (dd5362*), 0, "ee05362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05362.e");
+ test_class_info(&lv, &cd_ee05362);
+ dp->~ee05362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05362(Test_ee05362, "ee05362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05362C1Ev();
+extern void _ZN7ee05362D1Ev();
+Name_Map name_map_ee05362[] = {
+ NSPAIR(_ZN7ee05362C1Ev),
+ NSPAIR(_ZN7ee05362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee05362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05362[];
+extern void _ZN6dd53623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee05362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee05362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee05362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee05362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee05362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee05362[] = {
+ {&(_ZTV7ee05362[4]), 4,16},
+ {&(_tg__ZTV6dd5362__7ee05362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee05362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee05362[4]), 4,6},
+ {&(_ZTV7ee05362[9]), 9,16},
+ {&(_ZTV7ee05362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee05362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee05362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05362[];
+extern VTBL_ENTRY _ZTV7ee05362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05362[];
+static VTBL_ENTRY alt_thunk_names1134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05362 = { "ee05362", // class name
+ bases_ee05362, 4,
+ &(vtc_ee05362[0]), // expected_vtbl_contents
+ &(vtt_ee05362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05362),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15362 : virtual dd5362 {
+ int e;
+ ~ee15362(); // tgen
+ ee15362(); // tgen
+};
+//SIG(1 ee15362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15362 ::~ee15362(){ note_dtor("ee15362", this);} // tgen
+ee15362 ::ee15362(){ note_ctor("ee15362", this);} // tgen
+
+static void Test_ee15362()
+{
+ extern Class_Descriptor cd_ee15362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15362, buf);
+ ee15362 *dp, &lv = *(dp=new (buf) ee15362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee15362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee15362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(32,16), "ee15362");
+ check_base_class_offset(lv, (dd5362*), ABISELECT(16,8), "ee15362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15362.e");
+ test_class_info(&lv, &cd_ee15362);
+ dp->~ee15362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15362(Test_ee15362, "ee15362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15362C1Ev();
+extern void _ZN7ee15362D1Ev();
+Name_Map name_map_ee15362[] = {
+ NSPAIR(_ZN7ee15362C1Ev),
+ NSPAIR(_ZN7ee15362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee15362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, ABISELECT(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 _ZTI7ee15362[];
+extern void _ZN6dd53623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15362[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee15362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee15362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee15362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee15362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee15362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee15362[] = {
+ {&(_ZTV7ee15362[5]), 5,22},
+ {&(_ZTV7ee15362[10]), 10,22},
+ {&(_ZTV7ee15362[15]), 15,22},
+ {&(_ZTV7ee15362[20]), 20,22},
+ {&(_tg__ZTV6dd5362__7ee15362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee15362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee15362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee15362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee15362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15362[];
+extern VTBL_ENTRY _ZTV7ee15362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15362[];
+static VTBL_ENTRY alt_thunk_names1135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15362 = { "ee15362", // class name
+ bases_ee15362, 4,
+ &(vtc_ee15362[0]), // expected_vtbl_contents
+ &(vtt_ee15362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15362),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15362),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25362 : dd5362 {
+ int e;
+ virtual void foo(); // _ZN7ee253623fooEv
+ ~ee25362(); // tgen
+ ee25362(); // tgen
+};
+//SIG(1 ee25362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25362 ::foo(){vfunc_called(this, "_ZN7ee253623fooEv");}
+ee25362 ::~ee25362(){ note_dtor("ee25362", this);} // tgen
+ee25362 ::ee25362(){ note_ctor("ee25362", this);} // tgen
+
+static void Test_ee25362()
+{
+ extern Class_Descriptor cd_ee25362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25362, buf);
+ ee25362 *dp, &lv = *(dp=new (buf) ee25362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee25362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee25362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(16,12), "ee25362");
+ check_base_class_offset(lv, (dd5362*), 0, "ee25362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25362.e");
+ test_class_info(&lv, &cd_ee25362);
+ dp->~ee25362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25362(Test_ee25362, "ee25362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25362C1Ev();
+extern void _ZN7ee25362D1Ev();
+Name_Map name_map_ee25362[] = {
+ NSPAIR(_ZN7ee25362C1Ev),
+ NSPAIR(_ZN7ee25362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee25362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25362[];
+extern void _ZN6dd53623barEv();
+extern void _ZN7ee253623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253623fooEv,_ZTv0_n16_N7ee253623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253623fooEv,_ZThn12_N7ee253623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253623fooEv,_ZTv0_n12_N7ee253623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253623fooEv,_ZThn20_N7ee253623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+ (VTBL_ENTRY)&_ZN7ee253623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253623fooEv,_ZTv0_n16_N7ee253623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253623fooEv,_ZTv0_n12_N7ee253623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee25362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee25362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee25362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee25362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee25362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee25362[] = {
+ {&(_ZTV7ee25362[4]), 4,17},
+ {&(_tg__ZTV6dd5362__7ee25362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee25362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee25362[4]), 4,6},
+ {&(_ZTV7ee25362[10]), 10,17},
+ {&(_ZTV7ee25362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee25362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee25362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25362[];
+extern VTBL_ENTRY _ZTV7ee25362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25362[];
+static VTBL_ENTRY alt_thunk_names1136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253623fooEv,_ZTv0_n12_N7ee253623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253623fooEv,_ZThn20_N7ee253623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253623fooEv,_ZTv0_n16_N7ee253623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253623fooEv,_ZThn12_N7ee253623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25362 = { "ee25362", // class name
+ bases_ee25362, 4,
+ &(vtc_ee25362[0]), // expected_vtbl_contents
+ &(vtt_ee25362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25362),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 ee35362 : virtual dd5362 {
+ int e;
+ virtual void foo(); // _ZN7ee353623fooEv
+ ~ee35362(); // tgen
+ ee35362(); // tgen
+};
+//SIG(1 ee35362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35362 ::foo(){vfunc_called(this, "_ZN7ee353623fooEv");}
+ee35362 ::~ee35362(){ note_dtor("ee35362", this);} // tgen
+ee35362 ::ee35362(){ note_ctor("ee35362", this);} // tgen
+
+static void Test_ee35362()
+{
+ extern Class_Descriptor cd_ee35362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35362, buf);
+ ee35362 *dp, &lv = *(dp=new (buf) ee35362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee35362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee35362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(32,16), "ee35362");
+ check_base_class_offset(lv, (dd5362*), ABISELECT(16,8), "ee35362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35362.e");
+ test_class_info(&lv, &cd_ee35362);
+ dp->~ee35362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35362(Test_ee35362, "ee35362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35362C1Ev();
+extern void _ZN7ee35362D1Ev();
+Name_Map name_map_ee35362[] = {
+ NSPAIR(_ZN7ee35362C1Ev),
+ NSPAIR(_ZN7ee35362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee35362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, ABISELECT(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 _ZTI7ee35362[];
+extern void _ZN7ee353623fooEv();
+extern void _ZN6dd53623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353623fooEv,_ZTv0_n16_N7ee353623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353623fooEv,_ZThn16_N7ee353623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353623fooEv,_ZTv0_n12_N7ee353623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353623fooEv,_ZThn24_N7ee353623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35362[0]),
+ (VTBL_ENTRY)&_ZN7ee353623fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353623fooEv,_ZTv0_n16_N7ee353623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353623fooEv,_ZTv0_n12_N7ee353623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee35362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee35362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee35362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee35362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee35362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee35362[] = {
+ {&(_ZTV7ee35362[5]), 5,23},
+ {&(_ZTV7ee35362[11]), 11,23},
+ {&(_ZTV7ee35362[16]), 16,23},
+ {&(_ZTV7ee35362[21]), 21,23},
+ {&(_tg__ZTV6dd5362__7ee35362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee35362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee35362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee35362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee35362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35362[];
+extern VTBL_ENTRY _ZTV7ee35362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35362[];
+static VTBL_ENTRY alt_thunk_names1137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353623fooEv,_ZTv0_n12_N7ee353623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353623fooEv,_ZThn24_N7ee353623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353623fooEv,_ZTv0_n16_N7ee353623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353623fooEv,_ZThn16_N7ee353623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35362 = { "ee35362", // class name
+ bases_ee35362, 4,
+ &(vtc_ee35362[0]), // expected_vtbl_contents
+ &(vtt_ee35362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35362),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35362),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 ee45362 : dd5362 {
+ int e;
+ virtual void bar(); // _ZN7ee453623barEv
+ ~ee45362(); // tgen
+ ee45362(); // tgen
+};
+//SIG(1 ee45362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45362 ::bar(){vfunc_called(this, "_ZN7ee453623barEv");}
+ee45362 ::~ee45362(){ note_dtor("ee45362", this);} // tgen
+ee45362 ::ee45362(){ note_ctor("ee45362", this);} // tgen
+
+static void Test_ee45362()
+{
+ extern Class_Descriptor cd_ee45362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45362, buf);
+ ee45362 *dp, &lv = *(dp=new (buf) ee45362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee45362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee45362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(16,12), "ee45362");
+ check_base_class_offset(lv, (dd5362*), 0, "ee45362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45362.e");
+ test_class_info(&lv, &cd_ee45362);
+ dp->~ee45362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45362(Test_ee45362, "ee45362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45362C1Ev();
+extern void _ZN7ee45362D1Ev();
+Name_Map name_map_ee45362[] = {
+ NSPAIR(_ZN7ee45362C1Ev),
+ NSPAIR(_ZN7ee45362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee45362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45362[];
+extern void _ZN7ee453623barEv();
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee453623barEv,_ZTv0_n16_N7ee453623barEv)();
+extern void ABISELECT(_ZThn32_N7ee453623barEv,_ZThn20_N7ee453623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45362[0]),
+ (VTBL_ENTRY)&_ZN7ee453623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453623barEv,_ZTv0_n16_N7ee453623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee45362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee45362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee45362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee45362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee45362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee45362[] = {
+ {&(_ZTV7ee45362[4]), 4,16},
+ {&(_tg__ZTV6dd5362__7ee45362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee45362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee45362[4]), 4,6},
+ {&(_ZTV7ee45362[9]), 9,16},
+ {&(_ZTV7ee45362[14]), 14,16},
+ {&(_tg__ZTV5cc362__7ee45362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee45362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45362[];
+extern VTBL_ENTRY _ZTV7ee45362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45362[];
+static VTBL_ENTRY alt_thunk_names1138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453623barEv,_ZTv0_n16_N7ee453623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453623barEv,_ZThn20_N7ee453623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45362 = { "ee45362", // class name
+ bases_ee45362, 4,
+ &(vtc_ee45362[0]), // expected_vtbl_contents
+ &(vtt_ee45362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45362),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45362),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 ee55362 : virtual dd5362 {
+ int e;
+ virtual void bar(); // _ZN7ee553623barEv
+ ~ee55362(); // tgen
+ ee55362(); // tgen
+};
+//SIG(1 ee55362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55362 ::bar(){vfunc_called(this, "_ZN7ee553623barEv");}
+ee55362 ::~ee55362(){ note_dtor("ee55362", this);} // tgen
+ee55362 ::ee55362(){ note_ctor("ee55362", this);} // tgen
+
+static void Test_ee55362()
+{
+ extern Class_Descriptor cd_ee55362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55362, buf);
+ ee55362 *dp, &lv = *(dp=new (buf) ee55362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee55362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee55362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(32,16), "ee55362");
+ check_base_class_offset(lv, (dd5362*), ABISELECT(16,8), "ee55362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55362.e");
+ test_class_info(&lv, &cd_ee55362);
+ dp->~ee55362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55362(Test_ee55362, "ee55362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55362C1Ev();
+extern void _ZN7ee55362D1Ev();
+Name_Map name_map_ee55362[] = {
+ NSPAIR(_ZN7ee55362C1Ev),
+ NSPAIR(_ZN7ee55362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee55362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, ABISELECT(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 _ZTI7ee55362[];
+extern void _ZN7ee553623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553623barEv,_ZTv0_n20_N7ee553623barEv)();
+extern void ABISELECT(_ZThn16_N7ee553623barEv,_ZThn8_N7ee553623barEv)() __attribute__((weak));
+extern void _ZN5cc3623fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee553623barEv,_ZTv0_n16_N7ee553623barEv)();
+extern void ABISELECT(_ZThn48_N7ee553623barEv,_ZThn24_N7ee553623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55362[0]),
+ (VTBL_ENTRY)&_ZN7ee553623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553623barEv,_ZTv0_n20_N7ee553623barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553623barEv,_ZTv0_n16_N7ee553623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee55362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee55362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee55362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee55362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee55362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee55362[] = {
+ {&(_ZTV7ee55362[5]), 5,23},
+ {&(_ZTV7ee55362[11]), 11,23},
+ {&(_ZTV7ee55362[16]), 16,23},
+ {&(_ZTV7ee55362[21]), 21,23},
+ {&(_tg__ZTV6dd5362__7ee55362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee55362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee55362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee55362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee55362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55362[];
+extern VTBL_ENTRY _ZTV7ee55362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55362[];
+static VTBL_ENTRY alt_thunk_names1139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553623barEv,_ZTv0_n16_N7ee553623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553623barEv,_ZThn24_N7ee553623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553623barEv,_ZTv0_n20_N7ee553623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553623barEv,_ZThn8_N7ee553623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55362 = { "ee55362", // class name
+ bases_ee55362, 4,
+ &(vtc_ee55362[0]), // expected_vtbl_contents
+ &(vtt_ee55362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55362),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55362),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 ee65362 : dd5362 {
+ int e;
+ virtual void foo(); // _ZN7ee653623fooEv
+ virtual void bar(); // _ZN7ee653623barEv
+ ~ee65362(); // tgen
+ ee65362(); // tgen
+};
+//SIG(1 ee65362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65362 ::foo(){vfunc_called(this, "_ZN7ee653623fooEv");}
+void ee65362 ::bar(){vfunc_called(this, "_ZN7ee653623barEv");}
+ee65362 ::~ee65362(){ note_dtor("ee65362", this);} // tgen
+ee65362 ::ee65362(){ note_ctor("ee65362", this);} // tgen
+
+static void Test_ee65362()
+{
+ extern Class_Descriptor cd_ee65362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65362, buf);
+ ee65362 *dp, &lv = *(dp=new (buf) ee65362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee65362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee65362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(16,12), "ee65362");
+ check_base_class_offset(lv, (dd5362*), 0, "ee65362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65362.e");
+ test_class_info(&lv, &cd_ee65362);
+ dp->~ee65362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65362(Test_ee65362, "ee65362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65362C1Ev();
+extern void _ZN7ee65362D1Ev();
+Name_Map name_map_ee65362[] = {
+ NSPAIR(_ZN7ee65362C1Ev),
+ NSPAIR(_ZN7ee65362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee65362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65362[];
+extern void _ZN7ee653623barEv();
+extern void _ZN7ee653623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653623fooEv,_ZTv0_n16_N7ee653623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653623fooEv,_ZThn12_N7ee653623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653623fooEv,_ZTv0_n12_N7ee653623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653623fooEv,_ZThn20_N7ee653623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653623barEv,_ZTv0_n16_N7ee653623barEv)();
+extern void ABISELECT(_ZThn32_N7ee653623barEv,_ZThn20_N7ee653623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65362[0]),
+ (VTBL_ENTRY)&_ZN7ee653623barEv,
+ (VTBL_ENTRY)&_ZN7ee653623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653623fooEv,_ZTv0_n16_N7ee653623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653623fooEv,_ZTv0_n12_N7ee653623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653623barEv,_ZTv0_n16_N7ee653623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee65362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee65362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee65362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee65362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee65362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee65362[] = {
+ {&(_ZTV7ee65362[4]), 4,17},
+ {&(_tg__ZTV6dd5362__7ee65362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee65362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee65362[4]), 4,6},
+ {&(_ZTV7ee65362[10]), 10,17},
+ {&(_ZTV7ee65362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee65362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee65362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65362[];
+extern VTBL_ENTRY _ZTV7ee65362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65362[];
+static VTBL_ENTRY alt_thunk_names1140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn20_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653623barEv,_ZTv0_n16_N7ee653623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653623barEv,_ZThn20_N7ee653623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653623fooEv,_ZTv0_n12_N7ee653623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653623fooEv,_ZThn20_N7ee653623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653623fooEv,_ZTv0_n16_N7ee653623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653623fooEv,_ZThn12_N7ee653623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65362 = { "ee65362", // class name
+ bases_ee65362, 4,
+ &(vtc_ee65362[0]), // expected_vtbl_contents
+ &(vtt_ee65362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65362),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 ee75362 : virtual dd5362 {
+ int e;
+ virtual void foo(); // _ZN7ee753623fooEv
+ virtual void bar(); // _ZN7ee753623barEv
+ ~ee75362(); // tgen
+ ee75362(); // tgen
+};
+//SIG(1 ee75362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75362 ::foo(){vfunc_called(this, "_ZN7ee753623fooEv");}
+void ee75362 ::bar(){vfunc_called(this, "_ZN7ee753623barEv");}
+ee75362 ::~ee75362(){ note_dtor("ee75362", this);} // tgen
+ee75362 ::ee75362(){ note_ctor("ee75362", this);} // tgen
+
+static void Test_ee75362()
+{
+ extern Class_Descriptor cd_ee75362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75362, buf);
+ ee75362 *dp, &lv = *(dp=new (buf) ee75362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee75362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee75362");
+ check_base_class_offset(lv, (cc362*)(dd5362*), ABISELECT(32,16), "ee75362");
+ check_base_class_offset(lv, (dd5362*), ABISELECT(16,8), "ee75362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75362.e");
+ test_class_info(&lv, &cd_ee75362);
+ dp->~ee75362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75362(Test_ee75362, "ee75362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75362C1Ev();
+extern void _ZN7ee75362D1Ev();
+Name_Map name_map_ee75362[] = {
+ NSPAIR(_ZN7ee75362C1Ev),
+ NSPAIR(_ZN7ee75362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd5362;
+extern VTBL_ENTRY _ZTI6dd5362[];
+extern VTBL_ENTRY _ZTV6dd5362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5362[];
+static Base_Class bases_ee75362[] = {
+ // 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_bb62, 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_cc362, 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_dd5362, 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 _ZTI7ee75362[];
+extern void _ZN7ee753623fooEv();
+extern void _ZN7ee753623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753623barEv,_ZTv0_n20_N7ee753623barEv)();
+extern void ABISELECT(_ZThn16_N7ee753623barEv,_ZThn8_N7ee753623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753623fooEv,_ZTv0_n16_N7ee753623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753623fooEv,_ZThn16_N7ee753623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753623fooEv,_ZTv0_n12_N7ee753623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753623fooEv,_ZThn24_N7ee753623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753623barEv,_ZTv0_n16_N7ee753623barEv)();
+extern void ABISELECT(_ZThn48_N7ee753623barEv,_ZThn24_N7ee753623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75362[0]),
+ (VTBL_ENTRY)&_ZN7ee753623fooEv,
+ (VTBL_ENTRY)&_ZN7ee753623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753623barEv,_ZTv0_n20_N7ee753623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753623fooEv,_ZTv0_n16_N7ee753623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753623fooEv,_ZTv0_n12_N7ee753623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753623barEv,_ZTv0_n16_N7ee753623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75362[];
+extern void _ZN6dd53623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5362__7ee75362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN6dd53623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd5362__7ee75362[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv)();
+extern void ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5362__7ee75362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee75362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee75362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee75362[] = {
+ {&(_ZTV7ee75362[5]), 5,24},
+ {&(_ZTV7ee75362[12]), 12,24},
+ {&(_ZTV7ee75362[17]), 17,24},
+ {&(_ZTV7ee75362[22]), 22,24},
+ {&(_tg__ZTV6dd5362__7ee75362[4]), 4,5},
+ {&(_tg__ZTV5cc362__6dd5362__7ee75362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5362__7ee75362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee75362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee75362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75362[];
+extern VTBL_ENTRY _ZTV7ee75362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75362[];
+static VTBL_ENTRY alt_thunk_names1141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53623barEv,_ZTv0_n16_N6dd53623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53623barEv,_ZThn16_N6dd53623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753623barEv,_ZTv0_n16_N7ee753623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753623barEv,_ZThn24_N7ee753623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753623fooEv,_ZTv0_n12_N7ee753623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753623fooEv,_ZThn24_N7ee753623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753623fooEv,_ZTv0_n16_N7ee753623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753623fooEv,_ZThn16_N7ee753623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753623barEv,_ZTv0_n20_N7ee753623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753623barEv,_ZThn8_N7ee753623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75362 = { "ee75362", // class name
+ bases_ee75362, 4,
+ &(vtc_ee75362[0]), // expected_vtbl_contents
+ &(vtt_ee75362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75362),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75362),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 dd6362 : cc362 {
+ int d;
+ virtual void bar(); // _ZN6dd63623barEv
+ virtual void foo(); // _ZN6dd63623fooEv
+ ~dd6362(); // tgen
+ dd6362(); // tgen
+};
+//SIG(-1 dd6362) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6362 ::bar(){vfunc_called(this, "_ZN6dd63623barEv");}
+void dd6362 ::foo(){vfunc_called(this, "_ZN6dd63623fooEv");}
+dd6362 ::~dd6362(){ note_dtor("dd6362", this);} // tgen
+dd6362 ::dd6362(){ note_ctor("dd6362", this);} // tgen
+
+static void Test_dd6362()
+{
+ extern Class_Descriptor cd_dd6362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6362, buf);
+ dd6362 *dp, &lv = *(dp=new (buf) dd6362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd6362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(16,12), "dd6362");
+ check_base_class_offset(lv, (cc362*), 0, "dd6362");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6362.d");
+ test_class_info(&lv, &cd_dd6362);
+ dp->~dd6362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6362(Test_dd6362, "dd6362", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6362C1Ev();
+extern void _ZN6dd6362D1Ev();
+Name_Map name_map_dd6362[] = {
+ NSPAIR(_ZN6dd6362C1Ev),
+ NSPAIR(_ZN6dd6362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd6362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd6362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd6362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd6362[] = {
+ {&(_ZTV6dd6362[3]), 3,11},
+ {&(_tg__ZTV5cc362__6dd6362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd6362[4]), 4,6},
+ {&(_ZTV6dd6362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static VTBL_ENTRY alt_thunk_names1142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6362 = { "dd6362", // class name
+ bases_dd6362, 3,
+ &(vtc_dd6362[0]), // expected_vtbl_contents
+ &(vtt_dd6362[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6362),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06362 : dd6362 {
+ int e;
+ ~ee06362(); // tgen
+ ee06362(); // tgen
+};
+//SIG(1 ee06362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06362 ::~ee06362(){ note_dtor("ee06362", this);} // tgen
+ee06362 ::ee06362(){ note_ctor("ee06362", this);} // tgen
+
+static void Test_ee06362()
+{
+ extern Class_Descriptor cd_ee06362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06362, buf);
+ ee06362 *dp, &lv = *(dp=new (buf) ee06362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee06362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(24,16), "ee06362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), 0, "ee06362");
+ check_base_class_offset(lv, (dd6362*), 0, "ee06362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06362.e");
+ test_class_info(&lv, &cd_ee06362);
+ dp->~ee06362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06362(Test_ee06362, "ee06362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06362C1Ev();
+extern void _ZN7ee06362D1Ev();
+Name_Map name_map_ee06362[] = {
+ NSPAIR(_ZN7ee06362C1Ev),
+ NSPAIR(_ZN7ee06362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee06362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee06362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee06362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee06362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee06362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee06362[] = {
+ {&(_ZTV7ee06362[3]), 3,11},
+ {&(_tg__ZTV6dd6362__7ee06362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee06362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee06362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee06362[4]), 4,6},
+ {&(_ZTV7ee06362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06362[];
+extern VTBL_ENTRY _ZTV7ee06362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06362[];
+static VTBL_ENTRY alt_thunk_names1143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06362 = { "ee06362", // class name
+ bases_ee06362, 4,
+ &(vtc_ee06362[0]), // expected_vtbl_contents
+ &(vtt_ee06362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06362),6, //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 ee16362 : virtual dd6362 {
+ int e;
+ ~ee16362(); // tgen
+ ee16362(); // tgen
+};
+//SIG(1 ee16362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16362 ::~ee16362(){ note_dtor("ee16362", this);} // tgen
+ee16362 ::ee16362(){ note_ctor("ee16362", this);} // tgen
+
+static void Test_ee16362()
+{
+ extern Class_Descriptor cd_ee16362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16362, buf);
+ ee16362 *dp, &lv = *(dp=new (buf) ee16362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee16362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(32,20), "ee16362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), ABISELECT(16,8), "ee16362");
+ check_base_class_offset(lv, (dd6362*), ABISELECT(16,8), "ee16362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16362.e");
+ test_class_info(&lv, &cd_ee16362);
+ dp->~ee16362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16362(Test_ee16362, "ee16362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16362C1Ev();
+extern void _ZN7ee16362D1Ev();
+Name_Map name_map_ee16362[] = {
+ NSPAIR(_ZN7ee16362C1Ev),
+ NSPAIR(_ZN7ee16362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee16362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, 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 _ZTI7ee16362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16362[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee16362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee16362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee16362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee16362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee16362[] = {
+ {&(_ZTV7ee16362[4]), 4,17},
+ {&(_ZTV7ee16362[9]), 9,17},
+ {&(_ZTV7ee16362[15]), 15,17},
+ {&(_tg__ZTV6dd6362__7ee16362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee16362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee16362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee16362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16362[];
+extern VTBL_ENTRY _ZTV7ee16362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16362[];
+static VTBL_ENTRY alt_thunk_names1144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16362 = { "ee16362", // class name
+ bases_ee16362, 4,
+ &(vtc_ee16362[0]), // expected_vtbl_contents
+ &(vtt_ee16362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16362),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26362 : dd6362 {
+ int e;
+ virtual void foo(); // _ZN7ee263623fooEv
+ ~ee26362(); // tgen
+ ee26362(); // tgen
+};
+//SIG(1 ee26362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26362 ::foo(){vfunc_called(this, "_ZN7ee263623fooEv");}
+ee26362 ::~ee26362(){ note_dtor("ee26362", this);} // tgen
+ee26362 ::ee26362(){ note_ctor("ee26362", this);} // tgen
+
+static void Test_ee26362()
+{
+ extern Class_Descriptor cd_ee26362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26362, buf);
+ ee26362 *dp, &lv = *(dp=new (buf) ee26362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee26362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(24,16), "ee26362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), 0, "ee26362");
+ check_base_class_offset(lv, (dd6362*), 0, "ee26362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26362.e");
+ test_class_info(&lv, &cd_ee26362);
+ dp->~ee26362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26362(Test_ee26362, "ee26362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26362C1Ev();
+extern void _ZN7ee26362D1Ev();
+Name_Map name_map_ee26362[] = {
+ NSPAIR(_ZN7ee26362C1Ev),
+ NSPAIR(_ZN7ee26362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee26362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26362[];
+extern void _ZN7ee263623fooEv();
+extern void _ZN6dd63623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263623fooEv,_ZTv0_n12_N7ee263623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263623fooEv,_ZThn16_N7ee263623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26362[0]),
+ (VTBL_ENTRY)&_ZN7ee263623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263623fooEv,_ZTv0_n12_N7ee263623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee26362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee26362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee26362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee26362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee26362[] = {
+ {&(_ZTV7ee26362[3]), 3,11},
+ {&(_tg__ZTV6dd6362__7ee26362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee26362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee26362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee26362[4]), 4,6},
+ {&(_ZTV7ee26362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26362[];
+extern VTBL_ENTRY _ZTV7ee26362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26362[];
+static VTBL_ENTRY alt_thunk_names1145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263623fooEv,_ZTv0_n12_N7ee263623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263623fooEv,_ZThn16_N7ee263623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26362 = { "ee26362", // class name
+ bases_ee26362, 4,
+ &(vtc_ee26362[0]), // expected_vtbl_contents
+ &(vtt_ee26362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26362),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 ee36362 : virtual dd6362 {
+ int e;
+ virtual void foo(); // _ZN7ee363623fooEv
+ ~ee36362(); // tgen
+ ee36362(); // tgen
+};
+//SIG(1 ee36362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36362 ::foo(){vfunc_called(this, "_ZN7ee363623fooEv");}
+ee36362 ::~ee36362(){ note_dtor("ee36362", this);} // tgen
+ee36362 ::ee36362(){ note_ctor("ee36362", this);} // tgen
+
+static void Test_ee36362()
+{
+ extern Class_Descriptor cd_ee36362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36362, buf);
+ ee36362 *dp, &lv = *(dp=new (buf) ee36362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee36362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(32,20), "ee36362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), ABISELECT(16,8), "ee36362");
+ check_base_class_offset(lv, (dd6362*), ABISELECT(16,8), "ee36362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36362.e");
+ test_class_info(&lv, &cd_ee36362);
+ dp->~ee36362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36362(Test_ee36362, "ee36362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36362C1Ev();
+extern void _ZN7ee36362D1Ev();
+Name_Map name_map_ee36362[] = {
+ NSPAIR(_ZN7ee36362C1Ev),
+ NSPAIR(_ZN7ee36362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee36362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, ABISELECT(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 _ZTI7ee36362[];
+extern void _ZN7ee363623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363623fooEv,_ZTv0_n16_N7ee363623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363623fooEv,_ZThn8_N7ee363623fooEv)() __attribute__((weak));
+extern void _ZN6dd63623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363623fooEv,_ZTv0_n12_N7ee363623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363623fooEv,_ZThn20_N7ee363623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36362[0]),
+ (VTBL_ENTRY)&_ZN7ee363623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363623fooEv,_ZTv0_n16_N7ee363623fooEv),
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363623fooEv,_ZTv0_n12_N7ee363623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee36362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee36362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee36362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee36362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee36362[] = {
+ {&(_ZTV7ee36362[4]), 4,18},
+ {&(_ZTV7ee36362[10]), 10,18},
+ {&(_ZTV7ee36362[16]), 16,18},
+ {&(_tg__ZTV6dd6362__7ee36362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee36362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee36362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee36362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36362[];
+extern VTBL_ENTRY _ZTV7ee36362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36362[];
+static VTBL_ENTRY alt_thunk_names1146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363623fooEv,_ZTv0_n12_N7ee363623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363623fooEv,_ZThn20_N7ee363623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363623fooEv,_ZTv0_n16_N7ee363623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363623fooEv,_ZThn8_N7ee363623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36362 = { "ee36362", // class name
+ bases_ee36362, 4,
+ &(vtc_ee36362[0]), // expected_vtbl_contents
+ &(vtt_ee36362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36362),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36362),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 ee46362 : dd6362 {
+ int e;
+ virtual void bar(); // _ZN7ee463623barEv
+ ~ee46362(); // tgen
+ ee46362(); // tgen
+};
+//SIG(1 ee46362) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46362 ::bar(){vfunc_called(this, "_ZN7ee463623barEv");}
+ee46362 ::~ee46362(){ note_dtor("ee46362", this);} // tgen
+ee46362 ::ee46362(){ note_ctor("ee46362", this);} // tgen
+
+static void Test_ee46362()
+{
+ extern Class_Descriptor cd_ee46362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46362, buf);
+ ee46362 *dp, &lv = *(dp=new (buf) ee46362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee46362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(24,16), "ee46362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), 0, "ee46362");
+ check_base_class_offset(lv, (dd6362*), 0, "ee46362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46362.e");
+ test_class_info(&lv, &cd_ee46362);
+ dp->~ee46362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46362(Test_ee46362, "ee46362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46362C1Ev();
+extern void _ZN7ee46362D1Ev();
+Name_Map name_map_ee46362[] = {
+ NSPAIR(_ZN7ee46362C1Ev),
+ NSPAIR(_ZN7ee46362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee46362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN7ee463623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee463623barEv,_ZTv0_n16_N7ee463623barEv)();
+extern void ABISELECT(_ZThn24_N7ee463623barEv,_ZThn16_N7ee463623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN7ee463623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463623barEv,_ZTv0_n16_N7ee463623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee46362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee46362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee46362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee46362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee46362[] = {
+ {&(_ZTV7ee46362[3]), 3,11},
+ {&(_tg__ZTV6dd6362__7ee46362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee46362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee46362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee46362[4]), 4,6},
+ {&(_ZTV7ee46362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46362[];
+extern VTBL_ENTRY _ZTV7ee46362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46362[];
+static VTBL_ENTRY alt_thunk_names1147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463623barEv,_ZTv0_n16_N7ee463623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463623barEv,_ZThn16_N7ee463623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46362 = { "ee46362", // class name
+ bases_ee46362, 4,
+ &(vtc_ee46362[0]), // expected_vtbl_contents
+ &(vtt_ee46362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46362),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 ee56362 : virtual dd6362 {
+ int e;
+ virtual void bar(); // _ZN7ee563623barEv
+ ~ee56362(); // tgen
+ ee56362(); // tgen
+};
+//SIG(1 ee56362) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56362 ::bar(){vfunc_called(this, "_ZN7ee563623barEv");}
+ee56362 ::~ee56362(){ note_dtor("ee56362", this);} // tgen
+ee56362 ::ee56362(){ note_ctor("ee56362", this);} // tgen
+
+static void Test_ee56362()
+{
+ extern Class_Descriptor cd_ee56362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56362, buf);
+ ee56362 *dp, &lv = *(dp=new (buf) ee56362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee56362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(32,20), "ee56362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), ABISELECT(16,8), "ee56362");
+ check_base_class_offset(lv, (dd6362*), ABISELECT(16,8), "ee56362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56362.e");
+ test_class_info(&lv, &cd_ee56362);
+ dp->~ee56362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56362(Test_ee56362, "ee56362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56362C1Ev();
+extern void _ZN7ee56362D1Ev();
+Name_Map name_map_ee56362[] = {
+ NSPAIR(_ZN7ee56362C1Ev),
+ NSPAIR(_ZN7ee56362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee56362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, ABISELECT(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 _ZTI7ee56362[];
+extern void _ZN7ee563623barEv();
+extern void _ZN6dd63623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563623barEv,_ZTv0_n20_N7ee563623barEv)();
+extern void ABISELECT(_ZThn16_N7ee563623barEv,_ZThn8_N7ee563623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563623barEv,_ZTv0_n16_N7ee563623barEv)();
+extern void ABISELECT(_ZThn32_N7ee563623barEv,_ZThn20_N7ee563623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56362[0]),
+ (VTBL_ENTRY)&_ZN7ee563623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563623barEv,_ZTv0_n20_N7ee563623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563623barEv,_ZTv0_n16_N7ee563623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee56362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee56362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee56362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee56362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee56362[] = {
+ {&(_ZTV7ee56362[4]), 4,18},
+ {&(_ZTV7ee56362[10]), 10,18},
+ {&(_ZTV7ee56362[16]), 16,18},
+ {&(_tg__ZTV6dd6362__7ee56362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee56362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee56362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee56362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56362[];
+extern VTBL_ENTRY _ZTV7ee56362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56362[];
+static VTBL_ENTRY alt_thunk_names1148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563623barEv,_ZTv0_n16_N7ee563623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563623barEv,_ZThn20_N7ee563623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563623barEv,_ZTv0_n20_N7ee563623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563623barEv,_ZThn8_N7ee563623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56362 = { "ee56362", // class name
+ bases_ee56362, 4,
+ &(vtc_ee56362[0]), // expected_vtbl_contents
+ &(vtt_ee56362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56362),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56362),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 ee66362 : dd6362 {
+ int e;
+ virtual void foo(); // _ZN7ee663623fooEv
+ virtual void bar(); // _ZN7ee663623barEv
+ ~ee66362(); // tgen
+ ee66362(); // tgen
+};
+//SIG(1 ee66362) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66362 ::foo(){vfunc_called(this, "_ZN7ee663623fooEv");}
+void ee66362 ::bar(){vfunc_called(this, "_ZN7ee663623barEv");}
+ee66362 ::~ee66362(){ note_dtor("ee66362", this);} // tgen
+ee66362 ::ee66362(){ note_ctor("ee66362", this);} // tgen
+
+static void Test_ee66362()
+{
+ extern Class_Descriptor cd_ee66362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66362, buf);
+ ee66362 *dp, &lv = *(dp=new (buf) ee66362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee66362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(24,16), "ee66362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), 0, "ee66362");
+ check_base_class_offset(lv, (dd6362*), 0, "ee66362");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66362.e");
+ test_class_info(&lv, &cd_ee66362);
+ dp->~ee66362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66362(Test_ee66362, "ee66362", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66362C1Ev();
+extern void _ZN7ee66362D1Ev();
+Name_Map name_map_ee66362[] = {
+ NSPAIR(_ZN7ee66362C1Ev),
+ NSPAIR(_ZN7ee66362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee66362[] = {
+ // 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_bb62, 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_cc362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66362[];
+extern void _ZN7ee663623fooEv();
+extern void _ZN7ee663623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663623fooEv,_ZTv0_n12_N7ee663623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663623fooEv,_ZThn16_N7ee663623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663623barEv,_ZTv0_n16_N7ee663623barEv)();
+extern void ABISELECT(_ZThn24_N7ee663623barEv,_ZThn16_N7ee663623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66362[0]),
+ (VTBL_ENTRY)&_ZN7ee663623fooEv,
+ (VTBL_ENTRY)&_ZN7ee663623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663623fooEv,_ZTv0_n12_N7ee663623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663623barEv,_ZTv0_n16_N7ee663623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee66362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee66362[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee66362[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee66362[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee66362[] = {
+ {&(_ZTV7ee66362[3]), 3,11},
+ {&(_tg__ZTV6dd6362__7ee66362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee66362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee66362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee66362[4]), 4,6},
+ {&(_ZTV7ee66362[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66362[];
+extern VTBL_ENTRY _ZTV7ee66362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66362[];
+static VTBL_ENTRY alt_thunk_names1149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623barEv,_ZThn16_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63623fooEv,_ZThn16_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3623fooEv,_ZThn16_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663623barEv,_ZTv0_n16_N7ee663623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663623barEv,_ZThn16_N7ee663623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663623fooEv,_ZTv0_n12_N7ee663623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663623fooEv,_ZThn16_N7ee663623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66362 = { "ee66362", // class name
+ bases_ee66362, 4,
+ &(vtc_ee66362[0]), // expected_vtbl_contents
+ &(vtt_ee66362[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66362),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66362),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 ee76362 : virtual dd6362 {
+ int e;
+ virtual void foo(); // _ZN7ee763623fooEv
+ virtual void bar(); // _ZN7ee763623barEv
+ ~ee76362(); // tgen
+ ee76362(); // tgen
+};
+//SIG(1 ee76362) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76362 ::foo(){vfunc_called(this, "_ZN7ee763623fooEv");}
+void ee76362 ::bar(){vfunc_called(this, "_ZN7ee763623barEv");}
+ee76362 ::~ee76362(){ note_dtor("ee76362", this);} // tgen
+ee76362 ::ee76362(){ note_ctor("ee76362", this);} // tgen
+
+static void Test_ee76362()
+{
+ extern Class_Descriptor cd_ee76362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76362, buf);
+ ee76362 *dp, &lv = *(dp=new (buf) ee76362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee76362");
+ check_base_class_offset(lv, (bb62*)(cc362*)(dd6362*), ABISELECT(32,20), "ee76362");
+ check_base_class_offset(lv, (cc362*)(dd6362*), ABISELECT(16,8), "ee76362");
+ check_base_class_offset(lv, (dd6362*), ABISELECT(16,8), "ee76362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76362.e");
+ test_class_info(&lv, &cd_ee76362);
+ dp->~ee76362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76362(Test_ee76362, "ee76362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76362C1Ev();
+extern void _ZN7ee76362D1Ev();
+Name_Map name_map_ee76362[] = {
+ NSPAIR(_ZN7ee76362C1Ev),
+ NSPAIR(_ZN7ee76362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd6362;
+extern VTBL_ENTRY _ZTI6dd6362[];
+extern VTBL_ENTRY _ZTV6dd6362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6362[];
+static Base_Class bases_ee76362[] = {
+ // 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_bb62, 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_cc362, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6362, ABISELECT(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 _ZTI7ee76362[];
+extern void _ZN7ee763623fooEv();
+extern void _ZN7ee763623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763623fooEv,_ZTv0_n16_N7ee763623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763623fooEv,_ZThn8_N7ee763623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763623barEv,_ZTv0_n20_N7ee763623barEv)();
+extern void ABISELECT(_ZThn16_N7ee763623barEv,_ZThn8_N7ee763623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763623fooEv,_ZTv0_n12_N7ee763623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763623fooEv,_ZThn20_N7ee763623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763623barEv,_ZTv0_n16_N7ee763623barEv)();
+extern void ABISELECT(_ZThn32_N7ee763623barEv,_ZThn20_N7ee763623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76362[0]),
+ (VTBL_ENTRY)&_ZN7ee763623fooEv,
+ (VTBL_ENTRY)&_ZN7ee763623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763623fooEv,_ZTv0_n16_N7ee763623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763623barEv,_ZTv0_n20_N7ee763623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763623fooEv,_ZTv0_n12_N7ee763623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763623barEv,_ZTv0_n16_N7ee763623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76362[];
+extern void _ZN6dd63623fooEv();
+extern void _ZN6dd63623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6362__7ee76362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&_ZN6dd63623fooEv,
+ (VTBL_ENTRY)&_ZN6dd63623barEv,
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3626dd6362__7ee76362[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc3626dd6362__7ee76362[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv)();
+extern void ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6362__7ee76362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv),
+};
+static VTT_ENTRY vtt_ee76362[] = {
+ {&(_ZTV7ee76362[4]), 4,19},
+ {&(_ZTV7ee76362[11]), 11,19},
+ {&(_ZTV7ee76362[17]), 17,19},
+ {&(_tg__ZTV6dd6362__7ee76362[3]), 3,5},
+ {&(_tg__ZTV5cc3626dd6362__7ee76362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc3626dd6362__7ee76362[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6362__7ee76362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76362[];
+extern VTBL_ENTRY _ZTV7ee76362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76362[];
+static VTBL_ENTRY alt_thunk_names1150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63623barEv,_ZTv0_n16_N6dd63623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623barEv,_ZThn12_N6dd63623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63623fooEv,_ZTv0_n12_N6dd63623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63623fooEv,_ZThn12_N6dd63623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn12_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763623barEv,_ZTv0_n16_N7ee763623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763623barEv,_ZThn20_N7ee763623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763623fooEv,_ZTv0_n12_N7ee763623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763623fooEv,_ZThn20_N7ee763623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763623barEv,_ZTv0_n20_N7ee763623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763623barEv,_ZThn8_N7ee763623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763623fooEv,_ZTv0_n16_N7ee763623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763623fooEv,_ZThn8_N7ee763623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76362 = { "ee76362", // class name
+ bases_ee76362, 4,
+ &(vtc_ee76362[0]), // expected_vtbl_contents
+ &(vtt_ee76362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76362),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76362),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 dd7362 : virtual cc362 {
+ int d;
+ virtual void bar(); // _ZN6dd73623barEv
+ virtual void foo(); // _ZN6dd73623fooEv
+ ~dd7362(); // tgen
+ dd7362(); // tgen
+};
+//SIG(-1 dd7362) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7362 ::bar(){vfunc_called(this, "_ZN6dd73623barEv");}
+void dd7362 ::foo(){vfunc_called(this, "_ZN6dd73623fooEv");}
+dd7362 ::~dd7362(){ note_dtor("dd7362", this);} // tgen
+dd7362 ::dd7362(){ note_ctor("dd7362", this);} // tgen
+
+static void Test_dd7362()
+{
+ extern Class_Descriptor cd_dd7362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7362, buf);
+ dd7362 *dp, &lv = *(dp=new (buf) dd7362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd7362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,16), "dd7362");
+ check_base_class_offset(lv, (cc362*), ABISELECT(16,8), "dd7362");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7362.d");
+ test_class_info(&lv, &cd_dd7362);
+ dp->~dd7362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7362(Test_dd7362, "dd7362", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7362C1Ev();
+extern void _ZN6dd7362D1Ev();
+Name_Map name_map_dd7362[] = {
+ NSPAIR(_ZN6dd7362C1Ev),
+ NSPAIR(_ZN6dd7362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+static Base_Class bases_dd7362[] = {
+ // 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_bb62, 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_cc362, 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 _ZTI6dd7362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__6dd7362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_dd7362[] = {
+ {&(_ZTV6dd7362[4]), 4,17},
+ {&(_ZTV6dd7362[10]), 10,17},
+ {&(_ZTV6dd7362[15]), 15,17},
+ {&(_tg__ZTV5cc362__6dd7362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__6dd7362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static VTBL_ENTRY alt_thunk_names1151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7362 = { "dd7362", // class name
+ bases_dd7362, 3,
+ &(vtc_dd7362[0]), // expected_vtbl_contents
+ &(vtt_dd7362[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7362),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07362 : dd7362 {
+ int e;
+ ~ee07362(); // tgen
+ ee07362(); // tgen
+};
+//SIG(1 ee07362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07362 ::~ee07362(){ note_dtor("ee07362", this);} // tgen
+ee07362 ::ee07362(){ note_ctor("ee07362", this);} // tgen
+
+static void Test_ee07362()
+{
+ extern Class_Descriptor cd_ee07362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07362, buf);
+ ee07362 *dp, &lv = *(dp=new (buf) ee07362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee07362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee07362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(16,12), "ee07362");
+ check_base_class_offset(lv, (dd7362*), 0, "ee07362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07362.e");
+ test_class_info(&lv, &cd_ee07362);
+ dp->~ee07362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07362(Test_ee07362, "ee07362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07362C1Ev();
+extern void _ZN7ee07362D1Ev();
+Name_Map name_map_ee07362[] = {
+ NSPAIR(_ZN7ee07362C1Ev),
+ NSPAIR(_ZN7ee07362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee07362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee07362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee07362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee07362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee07362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee07362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee07362[] = {
+ {&(_ZTV7ee07362[4]), 4,17},
+ {&(_tg__ZTV6dd7362__7ee07362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee07362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee07362[4]), 4,6},
+ {&(_ZTV7ee07362[10]), 10,17},
+ {&(_ZTV7ee07362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee07362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee07362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07362[];
+extern VTBL_ENTRY _ZTV7ee07362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07362[];
+static VTBL_ENTRY alt_thunk_names1152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07362 = { "ee07362", // class name
+ bases_ee07362, 4,
+ &(vtc_ee07362[0]), // expected_vtbl_contents
+ &(vtt_ee07362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07362),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17362 : virtual dd7362 {
+ int e;
+ ~ee17362(); // tgen
+ ee17362(); // tgen
+};
+//SIG(1 ee17362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17362 ::~ee17362(){ note_dtor("ee17362", this);} // tgen
+ee17362 ::ee17362(){ note_ctor("ee17362", this);} // tgen
+
+static void Test_ee17362()
+{
+ extern Class_Descriptor cd_ee17362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17362, buf);
+ ee17362 *dp, &lv = *(dp=new (buf) ee17362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee17362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee17362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(32,16), "ee17362");
+ check_base_class_offset(lv, (dd7362*), ABISELECT(16,8), "ee17362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17362.e");
+ test_class_info(&lv, &cd_ee17362);
+ dp->~ee17362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17362(Test_ee17362, "ee17362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17362C1Ev();
+extern void _ZN7ee17362D1Ev();
+Name_Map name_map_ee17362[] = {
+ NSPAIR(_ZN7ee17362C1Ev),
+ NSPAIR(_ZN7ee17362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee17362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 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 _ZTI7ee17362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17362[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee17362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee17362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee17362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee17362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee17362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee17362[] = {
+ {&(_ZTV7ee17362[5]), 5,24},
+ {&(_ZTV7ee17362[11]), 11,24},
+ {&(_ZTV7ee17362[17]), 17,24},
+ {&(_ZTV7ee17362[22]), 22,24},
+ {&(_tg__ZTV6dd7362__7ee17362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee17362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee17362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee17362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee17362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17362[];
+extern VTBL_ENTRY _ZTV7ee17362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17362[];
+static VTBL_ENTRY alt_thunk_names1153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17362 = { "ee17362", // class name
+ bases_ee17362, 4,
+ &(vtc_ee17362[0]), // expected_vtbl_contents
+ &(vtt_ee17362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17362),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17362),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27362 : dd7362 {
+ int e;
+ virtual void foo(); // _ZN7ee273623fooEv
+ ~ee27362(); // tgen
+ ee27362(); // tgen
+};
+//SIG(1 ee27362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27362 ::foo(){vfunc_called(this, "_ZN7ee273623fooEv");}
+ee27362 ::~ee27362(){ note_dtor("ee27362", this);} // tgen
+ee27362 ::ee27362(){ note_ctor("ee27362", this);} // tgen
+
+static void Test_ee27362()
+{
+ extern Class_Descriptor cd_ee27362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27362, buf);
+ ee27362 *dp, &lv = *(dp=new (buf) ee27362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee27362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee27362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(16,12), "ee27362");
+ check_base_class_offset(lv, (dd7362*), 0, "ee27362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27362.e");
+ test_class_info(&lv, &cd_ee27362);
+ dp->~ee27362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27362(Test_ee27362, "ee27362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27362C1Ev();
+extern void _ZN7ee27362D1Ev();
+Name_Map name_map_ee27362[] = {
+ NSPAIR(_ZN7ee27362C1Ev),
+ NSPAIR(_ZN7ee27362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee27362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN7ee273623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273623fooEv,_ZTv0_n16_N7ee273623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273623fooEv,_ZThn12_N7ee273623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273623fooEv,_ZTv0_n12_N7ee273623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273623fooEv,_ZThn20_N7ee273623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN7ee273623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273623fooEv,_ZTv0_n16_N7ee273623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273623fooEv,_ZTv0_n12_N7ee273623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee27362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee27362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee27362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee27362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee27362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee27362[] = {
+ {&(_ZTV7ee27362[4]), 4,17},
+ {&(_tg__ZTV6dd7362__7ee27362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee27362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee27362[4]), 4,6},
+ {&(_ZTV7ee27362[10]), 10,17},
+ {&(_ZTV7ee27362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee27362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee27362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27362[];
+extern VTBL_ENTRY _ZTV7ee27362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27362[];
+static VTBL_ENTRY alt_thunk_names1154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273623fooEv,_ZTv0_n12_N7ee273623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273623fooEv,_ZThn20_N7ee273623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273623fooEv,_ZTv0_n16_N7ee273623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273623fooEv,_ZThn12_N7ee273623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27362 = { "ee27362", // class name
+ bases_ee27362, 4,
+ &(vtc_ee27362[0]), // expected_vtbl_contents
+ &(vtt_ee27362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27362),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 ee37362 : virtual dd7362 {
+ int e;
+ virtual void foo(); // _ZN7ee373623fooEv
+ ~ee37362(); // tgen
+ ee37362(); // tgen
+};
+//SIG(1 ee37362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37362 ::foo(){vfunc_called(this, "_ZN7ee373623fooEv");}
+ee37362 ::~ee37362(){ note_dtor("ee37362", this);} // tgen
+ee37362 ::ee37362(){ note_ctor("ee37362", this);} // tgen
+
+static void Test_ee37362()
+{
+ extern Class_Descriptor cd_ee37362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37362, buf);
+ ee37362 *dp, &lv = *(dp=new (buf) ee37362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee37362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee37362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(32,16), "ee37362");
+ check_base_class_offset(lv, (dd7362*), ABISELECT(16,8), "ee37362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37362.e");
+ test_class_info(&lv, &cd_ee37362);
+ dp->~ee37362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37362(Test_ee37362, "ee37362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37362C1Ev();
+extern void _ZN7ee37362D1Ev();
+Name_Map name_map_ee37362[] = {
+ NSPAIR(_ZN7ee37362C1Ev),
+ NSPAIR(_ZN7ee37362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee37362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 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 _ZTI7ee37362[];
+extern void _ZN7ee373623fooEv();
+extern void _ZN6dd73623barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373623fooEv,_ZTv0_n24_N7ee373623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373623fooEv,_ZThn8_N7ee373623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373623fooEv,_ZTv0_n16_N7ee373623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373623fooEv,_ZThn16_N7ee373623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373623fooEv,_ZTv0_n12_N7ee373623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373623fooEv,_ZThn24_N7ee373623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37362[0]),
+ (VTBL_ENTRY)&_ZN7ee373623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373623fooEv,_ZTv0_n24_N7ee373623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373623fooEv,_ZTv0_n16_N7ee373623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373623fooEv,_ZTv0_n12_N7ee373623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee37362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee37362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee37362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee37362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee37362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee37362[] = {
+ {&(_ZTV7ee37362[5]), 5,25},
+ {&(_ZTV7ee37362[12]), 12,25},
+ {&(_ZTV7ee37362[18]), 18,25},
+ {&(_ZTV7ee37362[23]), 23,25},
+ {&(_tg__ZTV6dd7362__7ee37362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee37362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee37362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee37362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee37362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37362[];
+extern VTBL_ENTRY _ZTV7ee37362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37362[];
+static VTBL_ENTRY alt_thunk_names1155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373623fooEv,_ZTv0_n12_N7ee373623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373623fooEv,_ZThn24_N7ee373623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373623fooEv,_ZTv0_n16_N7ee373623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373623fooEv,_ZThn16_N7ee373623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373623fooEv,_ZTv0_n24_N7ee373623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373623fooEv,_ZThn8_N7ee373623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37362 = { "ee37362", // class name
+ bases_ee37362, 4,
+ &(vtc_ee37362[0]), // expected_vtbl_contents
+ &(vtt_ee37362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37362),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37362),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 ee47362 : dd7362 {
+ int e;
+ virtual void bar(); // _ZN7ee473623barEv
+ ~ee47362(); // tgen
+ ee47362(); // tgen
+};
+//SIG(1 ee47362) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47362 ::bar(){vfunc_called(this, "_ZN7ee473623barEv");}
+ee47362 ::~ee47362(){ note_dtor("ee47362", this);} // tgen
+ee47362 ::ee47362(){ note_ctor("ee47362", this);} // tgen
+
+static void Test_ee47362()
+{
+ extern Class_Descriptor cd_ee47362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47362, buf);
+ ee47362 *dp, &lv = *(dp=new (buf) ee47362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee47362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee47362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(16,12), "ee47362");
+ check_base_class_offset(lv, (dd7362*), 0, "ee47362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47362.e");
+ test_class_info(&lv, &cd_ee47362);
+ dp->~ee47362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47362(Test_ee47362, "ee47362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47362C1Ev();
+extern void _ZN7ee47362D1Ev();
+Name_Map name_map_ee47362[] = {
+ NSPAIR(_ZN7ee47362C1Ev),
+ NSPAIR(_ZN7ee47362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee47362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47362[];
+extern void _ZN7ee473623barEv();
+extern void _ZN6dd73623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473623barEv,_ZTv0_n16_N7ee473623barEv)();
+extern void ABISELECT(_ZThn32_N7ee473623barEv,_ZThn20_N7ee473623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47362[0]),
+ (VTBL_ENTRY)&_ZN7ee473623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473623barEv,_ZTv0_n16_N7ee473623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee47362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee47362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee47362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee47362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee47362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee47362[] = {
+ {&(_ZTV7ee47362[4]), 4,17},
+ {&(_tg__ZTV6dd7362__7ee47362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee47362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee47362[4]), 4,6},
+ {&(_ZTV7ee47362[10]), 10,17},
+ {&(_ZTV7ee47362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee47362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee47362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47362[];
+extern VTBL_ENTRY _ZTV7ee47362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47362[];
+static VTBL_ENTRY alt_thunk_names1156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473623barEv,_ZTv0_n16_N7ee473623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473623barEv,_ZThn20_N7ee473623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47362 = { "ee47362", // class name
+ bases_ee47362, 4,
+ &(vtc_ee47362[0]), // expected_vtbl_contents
+ &(vtt_ee47362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47362),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 ee57362 : virtual dd7362 {
+ int e;
+ virtual void bar(); // _ZN7ee573623barEv
+ ~ee57362(); // tgen
+ ee57362(); // tgen
+};
+//SIG(1 ee57362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57362 ::bar(){vfunc_called(this, "_ZN7ee573623barEv");}
+ee57362 ::~ee57362(){ note_dtor("ee57362", this);} // tgen
+ee57362 ::ee57362(){ note_ctor("ee57362", this);} // tgen
+
+static void Test_ee57362()
+{
+ extern Class_Descriptor cd_ee57362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57362, buf);
+ ee57362 *dp, &lv = *(dp=new (buf) ee57362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee57362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee57362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(32,16), "ee57362");
+ check_base_class_offset(lv, (dd7362*), ABISELECT(16,8), "ee57362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57362.e");
+ test_class_info(&lv, &cd_ee57362);
+ dp->~ee57362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57362(Test_ee57362, "ee57362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57362C1Ev();
+extern void _ZN7ee57362D1Ev();
+Name_Map name_map_ee57362[] = {
+ NSPAIR(_ZN7ee57362C1Ev),
+ NSPAIR(_ZN7ee57362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee57362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 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 _ZTI7ee57362[];
+extern void _ZN7ee573623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573623barEv,_ZTv0_n20_N7ee573623barEv)();
+extern void ABISELECT(_ZThn16_N7ee573623barEv,_ZThn8_N7ee573623barEv)() __attribute__((weak));
+extern void _ZN6dd73623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573623barEv,_ZTv0_n16_N7ee573623barEv)();
+extern void ABISELECT(_ZThn48_N7ee573623barEv,_ZThn24_N7ee573623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57362[0]),
+ (VTBL_ENTRY)&_ZN7ee573623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573623barEv,_ZTv0_n20_N7ee573623barEv),
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573623barEv,_ZTv0_n16_N7ee573623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee57362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee57362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee57362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee57362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee57362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee57362[] = {
+ {&(_ZTV7ee57362[5]), 5,25},
+ {&(_ZTV7ee57362[12]), 12,25},
+ {&(_ZTV7ee57362[18]), 18,25},
+ {&(_ZTV7ee57362[23]), 23,25},
+ {&(_tg__ZTV6dd7362__7ee57362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee57362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee57362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee57362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee57362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57362[];
+extern VTBL_ENTRY _ZTV7ee57362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57362[];
+static VTBL_ENTRY alt_thunk_names1157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573623barEv,_ZTv0_n16_N7ee573623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573623barEv,_ZThn24_N7ee573623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573623barEv,_ZTv0_n20_N7ee573623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573623barEv,_ZThn8_N7ee573623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57362 = { "ee57362", // class name
+ bases_ee57362, 4,
+ &(vtc_ee57362[0]), // expected_vtbl_contents
+ &(vtt_ee57362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57362),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57362),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 ee67362 : dd7362 {
+ int e;
+ virtual void foo(); // _ZN7ee673623fooEv
+ virtual void bar(); // _ZN7ee673623barEv
+ ~ee67362(); // tgen
+ ee67362(); // tgen
+};
+//SIG(1 ee67362) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67362 ::foo(){vfunc_called(this, "_ZN7ee673623fooEv");}
+void ee67362 ::bar(){vfunc_called(this, "_ZN7ee673623barEv");}
+ee67362 ::~ee67362(){ note_dtor("ee67362", this);} // tgen
+ee67362 ::ee67362(){ note_ctor("ee67362", this);} // tgen
+
+static void Test_ee67362()
+{
+ extern Class_Descriptor cd_ee67362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67362, buf);
+ ee67362 *dp, &lv = *(dp=new (buf) ee67362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee67362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(32,20), "ee67362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(16,12), "ee67362");
+ check_base_class_offset(lv, (dd7362*), 0, "ee67362");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67362.e");
+ test_class_info(&lv, &cd_ee67362);
+ dp->~ee67362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67362(Test_ee67362, "ee67362", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67362C1Ev();
+extern void _ZN7ee67362D1Ev();
+Name_Map name_map_ee67362[] = {
+ NSPAIR(_ZN7ee67362C1Ev),
+ NSPAIR(_ZN7ee67362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee67362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67362[];
+extern void _ZN7ee673623barEv();
+extern void _ZN7ee673623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673623fooEv,_ZTv0_n16_N7ee673623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673623fooEv,_ZThn12_N7ee673623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673623fooEv,_ZTv0_n12_N7ee673623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673623fooEv,_ZThn20_N7ee673623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673623barEv,_ZTv0_n16_N7ee673623barEv)();
+extern void ABISELECT(_ZThn32_N7ee673623barEv,_ZThn20_N7ee673623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67362[0]),
+ (VTBL_ENTRY)&_ZN7ee673623barEv,
+ (VTBL_ENTRY)&_ZN7ee673623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673623fooEv,_ZTv0_n16_N7ee673623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673623fooEv,_ZTv0_n12_N7ee673623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673623barEv,_ZTv0_n16_N7ee673623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee67362[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee67362[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee67362[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee67362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee67362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee67362[] = {
+ {&(_ZTV7ee67362[4]), 4,17},
+ {&(_tg__ZTV6dd7362__7ee67362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee67362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee67362[4]), 4,6},
+ {&(_ZTV7ee67362[10]), 10,17},
+ {&(_ZTV7ee67362[15]), 15,17},
+ {&(_tg__ZTV5cc362__7ee67362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee67362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67362[];
+extern VTBL_ENTRY _ZTV7ee67362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67362[];
+static VTBL_ENTRY alt_thunk_names1158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn20_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn20_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn12_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673623barEv,_ZTv0_n16_N7ee673623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673623barEv,_ZThn20_N7ee673623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673623fooEv,_ZTv0_n12_N7ee673623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673623fooEv,_ZThn20_N7ee673623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673623fooEv,_ZTv0_n16_N7ee673623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673623fooEv,_ZThn12_N7ee673623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67362 = { "ee67362", // class name
+ bases_ee67362, 4,
+ &(vtc_ee67362[0]), // expected_vtbl_contents
+ &(vtt_ee67362[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67362),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67362),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67362),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 ee77362 : virtual dd7362 {
+ int e;
+ virtual void foo(); // _ZN7ee773623fooEv
+ virtual void bar(); // _ZN7ee773623barEv
+ ~ee77362(); // tgen
+ ee77362(); // tgen
+};
+//SIG(1 ee77362) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77362 ::foo(){vfunc_called(this, "_ZN7ee773623fooEv");}
+void ee77362 ::bar(){vfunc_called(this, "_ZN7ee773623barEv");}
+ee77362 ::~ee77362(){ note_dtor("ee77362", this);} // tgen
+ee77362 ::ee77362(){ note_ctor("ee77362", this);} // tgen
+
+static void Test_ee77362()
+{
+ extern Class_Descriptor cd_ee77362;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77362, buf);
+ ee77362 *dp, &lv = *(dp=new (buf) ee77362());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77362)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77362)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee77362");
+ check_base_class_offset(lv, (bb62*)(cc362*), ABISELECT(48,24), "ee77362");
+ check_base_class_offset(lv, (cc362*)(dd7362*), ABISELECT(32,16), "ee77362");
+ check_base_class_offset(lv, (dd7362*), ABISELECT(16,8), "ee77362");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77362.e");
+ test_class_info(&lv, &cd_ee77362);
+ dp->~ee77362();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77362(Test_ee77362, "ee77362", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77362C1Ev();
+extern void _ZN7ee77362D1Ev();
+Name_Map name_map_ee77362[] = {
+ NSPAIR(_ZN7ee77362C1Ev),
+ NSPAIR(_ZN7ee77362D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc362;
+extern VTBL_ENTRY _ZTI5cc362[];
+extern VTBL_ENTRY _ZTV5cc362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc362[];
+extern Class_Descriptor cd_dd7362;
+extern VTBL_ENTRY _ZTI6dd7362[];
+extern VTBL_ENTRY _ZTV6dd7362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7362[];
+static Base_Class bases_ee77362[] = {
+ // 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_bb62, 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_cc362, 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_dd7362, 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 _ZTI7ee77362[];
+extern void _ZN7ee773623fooEv();
+extern void _ZN7ee773623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773623barEv,_ZTv0_n20_N7ee773623barEv)();
+extern void ABISELECT(_ZThn16_N7ee773623barEv,_ZThn8_N7ee773623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773623fooEv,_ZTv0_n24_N7ee773623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773623fooEv,_ZThn8_N7ee773623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773623fooEv,_ZTv0_n16_N7ee773623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773623fooEv,_ZThn16_N7ee773623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773623fooEv,_ZTv0_n12_N7ee773623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773623fooEv,_ZThn24_N7ee773623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773623barEv,_ZTv0_n16_N7ee773623barEv)();
+extern void ABISELECT(_ZThn48_N7ee773623barEv,_ZThn24_N7ee773623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77362[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77362[0]),
+ (VTBL_ENTRY)&_ZN7ee773623fooEv,
+ (VTBL_ENTRY)&_ZN7ee773623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773623barEv,_ZTv0_n20_N7ee773623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773623fooEv,_ZTv0_n24_N7ee773623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773623fooEv,_ZTv0_n16_N7ee773623fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773623fooEv,_ZTv0_n12_N7ee773623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773623barEv,_ZTv0_n16_N7ee773623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77362[];
+extern void _ZN6dd73623barEv();
+extern void _ZN6dd73623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7362__7ee77362[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&_ZN6dd73623barEv,
+ (VTBL_ENTRY)&_ZN6dd73623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc362__6dd7362__7ee77362[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv)();
+extern void ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7362__7ee77362[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv),
+};
+extern void _ZN5cc3623fooEv();
+static VTBL_ENTRY _tg__ZTV5cc362__7ee77362[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&_ZN5cc3623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv)() __attribute__((weak));
+extern void _ZN4bb623barEv();
+static VTBL_ENTRY _tg__ZTV4bb62__5cc362__7ee77362[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc362[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv),
+ (VTBL_ENTRY)&_ZN4bb623barEv,
+};
+static VTT_ENTRY vtt_ee77362[] = {
+ {&(_ZTV7ee77362[5]), 5,26},
+ {&(_ZTV7ee77362[13]), 13,26},
+ {&(_ZTV7ee77362[19]), 19,26},
+ {&(_ZTV7ee77362[24]), 24,26},
+ {&(_tg__ZTV6dd7362__7ee77362[4]), 4,6},
+ {&(_tg__ZTV5cc362__6dd7362__7ee77362[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7362__7ee77362[4]), 4,6},
+ {&(_tg__ZTV5cc362__7ee77362[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc362__7ee77362[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77362[];
+extern VTBL_ENTRY _ZTV7ee77362[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77362[];
+static VTBL_ENTRY alt_thunk_names1159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3623fooEv,_ZTv0_n12_N5cc3623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3623fooEv,_ZThn8_N5cc3623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623barEv,_ZTv0_n16_N6dd73623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623barEv,_ZThn16_N6dd73623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73623fooEv,_ZTv0_n12_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73623fooEv,_ZThn16_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73623fooEv,_ZTv0_n16_N6dd73623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73623fooEv,_ZThn8_N6dd73623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773623barEv,_ZTv0_n16_N7ee773623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773623barEv,_ZThn24_N7ee773623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773623fooEv,_ZTv0_n12_N7ee773623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773623fooEv,_ZThn24_N7ee773623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773623fooEv,_ZTv0_n16_N7ee773623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773623fooEv,_ZThn16_N7ee773623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773623fooEv,_ZTv0_n24_N7ee773623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773623fooEv,_ZThn8_N7ee773623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773623barEv,_ZTv0_n20_N7ee773623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773623barEv,_ZThn8_N7ee773623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77362 = { "ee77362", // class name
+ bases_ee77362, 4,
+ &(vtc_ee77362[0]), // expected_vtbl_contents
+ &(vtt_ee77362[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77362),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77362),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77362),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 cc462 : bb62 {
+ int c;
+ virtual void bar(); // _ZN5cc4623barEv
+ ~cc462(); // tgen
+ cc462(); // tgen
+};
+//SIG(-1 cc462) C1{ BC2{ BC3{ v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc462 ::bar(){vfunc_called(this, "_ZN5cc4623barEv");}
+cc462 ::~cc462(){ note_dtor("cc462", this);} // tgen
+cc462 ::cc462(){ note_ctor("cc462", this);} // tgen
+
+static void Test_cc462()
+{
+ extern Class_Descriptor cd_cc462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc462, buf);
+ cc462 *dp, &lv = *(dp=new (buf) cc462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc462)");
+ check_base_class_offset(lv, (aa2*)(bb62*), 0, "cc462");
+ check_base_class_offset(lv, (bb62*), 0, "cc462");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc462.c");
+ test_class_info(&lv, &cd_cc462);
+ dp->~cc462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc462(Test_cc462, "cc462", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc462C1Ev();
+extern void _ZN5cc462D1Ev();
+Name_Map name_map_cc462[] = {
+ NSPAIR(_ZN5cc462C1Ev),
+ NSPAIR(_ZN5cc462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_cc462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+Class_Descriptor cd_cc462 = { "cc462", // class name
+ bases_cc462, 2,
+ &(vtc_cc462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc462),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 dd0462 : cc462 {
+ int d;
+ ~dd0462(); // tgen
+ dd0462(); // tgen
+};
+//SIG(-1 dd0462) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0462 ::~dd0462(){ note_dtor("dd0462", this);} // tgen
+dd0462 ::dd0462(){ note_ctor("dd0462", this);} // tgen
+
+static void Test_dd0462()
+{
+ extern Class_Descriptor cd_dd0462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0462, buf);
+ dd0462 *dp, &lv = *(dp=new (buf) dd0462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), 0, "dd0462");
+ check_base_class_offset(lv, (bb62*)(cc462*), 0, "dd0462");
+ check_base_class_offset(lv, (cc462*), 0, "dd0462");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0462.d");
+ test_class_info(&lv, &cd_dd0462);
+ dp->~dd0462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0462(Test_dd0462, "dd0462", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0462C1Ev();
+extern void _ZN6dd0462D1Ev();
+Name_Map name_map_dd0462[] = {
+ NSPAIR(_ZN6dd0462C1Ev),
+ NSPAIR(_ZN6dd0462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd0462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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 _ZTI6dd0462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_dd0462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+Class_Descriptor cd_dd0462 = { "dd0462", // class name
+ bases_dd0462, 3,
+ &(vtc_dd0462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0462),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 ee00462 : dd0462 {
+ int e;
+ ~ee00462(); // tgen
+ ee00462(); // tgen
+};
+//SIG(1 ee00462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00462 ::~ee00462(){ note_dtor("ee00462", this);} // tgen
+ee00462 ::ee00462(){ note_ctor("ee00462", this);} // tgen
+
+static void Test_ee00462()
+{
+ extern Class_Descriptor cd_ee00462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00462, buf);
+ ee00462 *dp, &lv = *(dp=new (buf) ee00462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), 0, "ee00462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), 0, "ee00462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), 0, "ee00462");
+ check_base_class_offset(lv, (dd0462*), 0, "ee00462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00462.e");
+ test_class_info(&lv, &cd_ee00462);
+ dp->~ee00462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00462(Test_ee00462, "ee00462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00462C1Ev();
+extern void _ZN7ee00462D1Ev();
+Name_Map name_map_ee00462[] = {
+ NSPAIR(_ZN7ee00462C1Ev),
+ NSPAIR(_ZN7ee00462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee00462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd0462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee00462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00462[];
+extern VTBL_ENTRY _ZTV7ee00462[];
+Class_Descriptor cd_ee00462 = { "ee00462", // class name
+ bases_ee00462, 4,
+ &(vtc_ee00462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00462),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 ee10462 : virtual dd0462 {
+ int e;
+ ~ee10462(); // tgen
+ ee10462(); // tgen
+};
+//SIG(1 ee10462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10462 ::~ee10462(){ note_dtor("ee10462", this);} // tgen
+ee10462 ::ee10462(){ note_ctor("ee10462", this);} // tgen
+
+static void Test_ee10462()
+{
+ extern Class_Descriptor cd_ee10462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10462, buf);
+ ee10462 *dp, &lv = *(dp=new (buf) ee10462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee10462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee10462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), ABISELECT(16,8), "ee10462");
+ check_base_class_offset(lv, (dd0462*), ABISELECT(16,8), "ee10462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10462.e");
+ test_class_info(&lv, &cd_ee10462);
+ dp->~ee10462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10462(Test_ee10462, "ee10462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10462C1Ev();
+extern void _ZN7ee10462D1Ev();
+Name_Map name_map_ee10462[] = {
+ NSPAIR(_ZN7ee10462C1Ev),
+ NSPAIR(_ZN7ee10462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee10462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd0462, 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 _ZTI7ee10462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee10462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10462[];
+static VTT_ENTRY vtt_ee10462[] = {
+ {&(_ZTV7ee10462[3]), 3,9},
+ {&(_ZTV7ee10462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10462[];
+extern VTBL_ENTRY _ZTV7ee10462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10462[];
+Class_Descriptor cd_ee10462 = { "ee10462", // class name
+ bases_ee10462, 4,
+ &(vtc_ee10462[0]), // expected_vtbl_contents
+ &(vtt_ee10462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10462),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 ee20462 : dd0462 {
+ int e;
+ virtual void foo(); // _ZN7ee204623fooEv
+ ~ee20462(); // tgen
+ ee20462(); // tgen
+};
+//SIG(1 ee20462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20462 ::foo(){vfunc_called(this, "_ZN7ee204623fooEv");}
+ee20462 ::~ee20462(){ note_dtor("ee20462", this);} // tgen
+ee20462 ::ee20462(){ note_ctor("ee20462", this);} // tgen
+
+static void Test_ee20462()
+{
+ extern Class_Descriptor cd_ee20462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20462, buf);
+ ee20462 *dp, &lv = *(dp=new (buf) ee20462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), 0, "ee20462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), 0, "ee20462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), 0, "ee20462");
+ check_base_class_offset(lv, (dd0462*), 0, "ee20462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20462.e");
+ test_class_info(&lv, &cd_ee20462);
+ dp->~ee20462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20462(Test_ee20462, "ee20462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20462C1Ev();
+extern void _ZN7ee20462D1Ev();
+Name_Map name_map_ee20462[] = {
+ NSPAIR(_ZN7ee20462C1Ev),
+ NSPAIR(_ZN7ee20462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee20462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20462[];
+extern void _ZN7ee204623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee20462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20462[0]),
+ (VTBL_ENTRY)&_ZN7ee204623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20462[];
+extern VTBL_ENTRY _ZTV7ee20462[];
+Class_Descriptor cd_ee20462 = { "ee20462", // class name
+ bases_ee20462, 4,
+ &(vtc_ee20462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20462),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 ee30462 : virtual dd0462 {
+ int e;
+ virtual void foo(); // _ZN7ee304623fooEv
+ ~ee30462(); // tgen
+ ee30462(); // tgen
+};
+//SIG(1 ee30462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30462 ::foo(){vfunc_called(this, "_ZN7ee304623fooEv");}
+ee30462 ::~ee30462(){ note_dtor("ee30462", this);} // tgen
+ee30462 ::ee30462(){ note_ctor("ee30462", this);} // tgen
+
+static void Test_ee30462()
+{
+ extern Class_Descriptor cd_ee30462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30462, buf);
+ ee30462 *dp, &lv = *(dp=new (buf) ee30462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee30462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee30462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), ABISELECT(16,8), "ee30462");
+ check_base_class_offset(lv, (dd0462*), ABISELECT(16,8), "ee30462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30462.e");
+ test_class_info(&lv, &cd_ee30462);
+ dp->~ee30462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30462(Test_ee30462, "ee30462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30462C1Ev();
+extern void _ZN7ee30462D1Ev();
+Name_Map name_map_ee30462[] = {
+ NSPAIR(_ZN7ee30462C1Ev),
+ NSPAIR(_ZN7ee30462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee30462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd0462, 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 _ZTI7ee30462[];
+extern void _ZN7ee304623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304623fooEv,_ZTv0_n12_N7ee304623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304623fooEv,_ZThn8_N7ee304623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee30462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30462[0]),
+ (VTBL_ENTRY)&_ZN7ee304623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304623fooEv,_ZTv0_n12_N7ee304623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30462[];
+static VTT_ENTRY vtt_ee30462[] = {
+ {&(_ZTV7ee30462[3]), 3,10},
+ {&(_ZTV7ee30462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30462[];
+extern VTBL_ENTRY _ZTV7ee30462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30462[];
+static VTBL_ENTRY alt_thunk_names1160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304623fooEv,_ZTv0_n12_N7ee304623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304623fooEv,_ZThn8_N7ee304623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30462 = { "ee30462", // class name
+ bases_ee30462, 4,
+ &(vtc_ee30462[0]), // expected_vtbl_contents
+ &(vtt_ee30462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30462),2, //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 ee40462 : dd0462 {
+ int e;
+ virtual void bar(); // _ZN7ee404623barEv
+ ~ee40462(); // tgen
+ ee40462(); // tgen
+};
+//SIG(1 ee40462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40462 ::bar(){vfunc_called(this, "_ZN7ee404623barEv");}
+ee40462 ::~ee40462(){ note_dtor("ee40462", this);} // tgen
+ee40462 ::ee40462(){ note_ctor("ee40462", this);} // tgen
+
+static void Test_ee40462()
+{
+ extern Class_Descriptor cd_ee40462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40462, buf);
+ ee40462 *dp, &lv = *(dp=new (buf) ee40462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), 0, "ee40462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), 0, "ee40462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), 0, "ee40462");
+ check_base_class_offset(lv, (dd0462*), 0, "ee40462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40462.e");
+ test_class_info(&lv, &cd_ee40462);
+ dp->~ee40462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40462(Test_ee40462, "ee40462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40462C1Ev();
+extern void _ZN7ee40462D1Ev();
+Name_Map name_map_ee40462[] = {
+ NSPAIR(_ZN7ee40462C1Ev),
+ NSPAIR(_ZN7ee40462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee40462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN7ee404623barEv();
+static VTBL_ENTRY vtc_ee40462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN7ee404623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40462[];
+extern VTBL_ENTRY _ZTV7ee40462[];
+Class_Descriptor cd_ee40462 = { "ee40462", // class name
+ bases_ee40462, 4,
+ &(vtc_ee40462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40462),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 ee50462 : virtual dd0462 {
+ int e;
+ virtual void bar(); // _ZN7ee504623barEv
+ ~ee50462(); // tgen
+ ee50462(); // tgen
+};
+//SIG(1 ee50462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50462 ::bar(){vfunc_called(this, "_ZN7ee504623barEv");}
+ee50462 ::~ee50462(){ note_dtor("ee50462", this);} // tgen
+ee50462 ::ee50462(){ note_ctor("ee50462", this);} // tgen
+
+static void Test_ee50462()
+{
+ extern Class_Descriptor cd_ee50462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50462, buf);
+ ee50462 *dp, &lv = *(dp=new (buf) ee50462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee50462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee50462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), ABISELECT(16,8), "ee50462");
+ check_base_class_offset(lv, (dd0462*), ABISELECT(16,8), "ee50462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50462.e");
+ test_class_info(&lv, &cd_ee50462);
+ dp->~ee50462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50462(Test_ee50462, "ee50462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50462C1Ev();
+extern void _ZN7ee50462D1Ev();
+Name_Map name_map_ee50462[] = {
+ NSPAIR(_ZN7ee50462C1Ev),
+ NSPAIR(_ZN7ee50462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee50462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd0462, 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 _ZTI7ee50462[];
+extern void _ZN7ee504623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504623barEv,_ZTv0_n16_N7ee504623barEv)();
+extern void ABISELECT(_ZThn16_N7ee504623barEv,_ZThn8_N7ee504623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50462[0]),
+ (VTBL_ENTRY)&_ZN7ee504623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504623barEv,_ZTv0_n16_N7ee504623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50462[];
+static VTT_ENTRY vtt_ee50462[] = {
+ {&(_ZTV7ee50462[3]), 3,10},
+ {&(_ZTV7ee50462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50462[];
+extern VTBL_ENTRY _ZTV7ee50462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50462[];
+static VTBL_ENTRY alt_thunk_names1161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504623barEv,_ZTv0_n16_N7ee504623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504623barEv,_ZThn8_N7ee504623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50462 = { "ee50462", // class name
+ bases_ee50462, 4,
+ &(vtc_ee50462[0]), // expected_vtbl_contents
+ &(vtt_ee50462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50462),2, //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 ee60462 : dd0462 {
+ int e;
+ virtual void foo(); // _ZN7ee604623fooEv
+ virtual void bar(); // _ZN7ee604623barEv
+ ~ee60462(); // tgen
+ ee60462(); // tgen
+};
+//SIG(1 ee60462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60462 ::foo(){vfunc_called(this, "_ZN7ee604623fooEv");}
+void ee60462 ::bar(){vfunc_called(this, "_ZN7ee604623barEv");}
+ee60462 ::~ee60462(){ note_dtor("ee60462", this);} // tgen
+ee60462 ::ee60462(){ note_ctor("ee60462", this);} // tgen
+
+static void Test_ee60462()
+{
+ extern Class_Descriptor cd_ee60462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60462, buf);
+ ee60462 *dp, &lv = *(dp=new (buf) ee60462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), 0, "ee60462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), 0, "ee60462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), 0, "ee60462");
+ check_base_class_offset(lv, (dd0462*), 0, "ee60462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60462.e");
+ test_class_info(&lv, &cd_ee60462);
+ dp->~ee60462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60462(Test_ee60462, "ee60462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60462C1Ev();
+extern void _ZN7ee60462D1Ev();
+Name_Map name_map_ee60462[] = {
+ NSPAIR(_ZN7ee60462C1Ev),
+ NSPAIR(_ZN7ee60462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee60462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60462[];
+extern void _ZN7ee604623fooEv();
+extern void _ZN7ee604623barEv();
+static VTBL_ENTRY vtc_ee60462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60462[0]),
+ (VTBL_ENTRY)&_ZN7ee604623fooEv,
+ (VTBL_ENTRY)&_ZN7ee604623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60462[];
+extern VTBL_ENTRY _ZTV7ee60462[];
+Class_Descriptor cd_ee60462 = { "ee60462", // class name
+ bases_ee60462, 4,
+ &(vtc_ee60462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60462),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 ee70462 : virtual dd0462 {
+ int e;
+ virtual void foo(); // _ZN7ee704623fooEv
+ virtual void bar(); // _ZN7ee704623barEv
+ ~ee70462(); // tgen
+ ee70462(); // tgen
+};
+//SIG(1 ee70462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70462 ::foo(){vfunc_called(this, "_ZN7ee704623fooEv");}
+void ee70462 ::bar(){vfunc_called(this, "_ZN7ee704623barEv");}
+ee70462 ::~ee70462(){ note_dtor("ee70462", this);} // tgen
+ee70462 ::ee70462(){ note_ctor("ee70462", this);} // tgen
+
+static void Test_ee70462()
+{
+ extern Class_Descriptor cd_ee70462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70462, buf);
+ ee70462 *dp, &lv = *(dp=new (buf) ee70462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee70462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd0462*), ABISELECT(16,8), "ee70462");
+ check_base_class_offset(lv, (cc462*)(dd0462*), ABISELECT(16,8), "ee70462");
+ check_base_class_offset(lv, (dd0462*), ABISELECT(16,8), "ee70462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70462.e");
+ test_class_info(&lv, &cd_ee70462);
+ dp->~ee70462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70462(Test_ee70462, "ee70462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70462C1Ev();
+extern void _ZN7ee70462D1Ev();
+Name_Map name_map_ee70462[] = {
+ NSPAIR(_ZN7ee70462C1Ev),
+ NSPAIR(_ZN7ee70462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd0462;
+extern VTBL_ENTRY _ZTI6dd0462[];
+extern VTBL_ENTRY _ZTV6dd0462[];
+static Base_Class bases_ee70462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd0462, 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 _ZTI7ee70462[];
+extern void _ZN7ee704623fooEv();
+extern void _ZN7ee704623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704623fooEv,_ZTv0_n12_N7ee704623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704623fooEv,_ZThn8_N7ee704623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704623barEv,_ZTv0_n16_N7ee704623barEv)();
+extern void ABISELECT(_ZThn16_N7ee704623barEv,_ZThn8_N7ee704623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70462[0]),
+ (VTBL_ENTRY)&_ZN7ee704623fooEv,
+ (VTBL_ENTRY)&_ZN7ee704623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704623fooEv,_ZTv0_n12_N7ee704623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704623barEv,_ZTv0_n16_N7ee704623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70462[];
+static VTT_ENTRY vtt_ee70462[] = {
+ {&(_ZTV7ee70462[3]), 3,11},
+ {&(_ZTV7ee70462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70462[];
+extern VTBL_ENTRY _ZTV7ee70462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70462[];
+static VTBL_ENTRY alt_thunk_names1162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704623barEv,_ZTv0_n16_N7ee704623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704623barEv,_ZThn8_N7ee704623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704623fooEv,_ZTv0_n12_N7ee704623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704623fooEv,_ZThn8_N7ee704623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70462 = { "ee70462", // class name
+ bases_ee70462, 4,
+ &(vtc_ee70462[0]), // expected_vtbl_contents
+ &(vtt_ee70462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70462),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1462 : virtual cc462 {
+ int d;
+ ~dd1462(); // tgen
+ dd1462(); // tgen
+};
+//SIG(-1 dd1462) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1462 ::~dd1462(){ note_dtor("dd1462", this);} // tgen
+dd1462 ::dd1462(){ note_ctor("dd1462", this);} // tgen
+
+static void Test_dd1462()
+{
+ extern Class_Descriptor cd_dd1462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1462, buf);
+ dd1462 *dp, &lv = *(dp=new (buf) dd1462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,8), "dd1462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,8), "dd1462");
+ check_base_class_offset(lv, (cc462*), ABISELECT(16,8), "dd1462");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1462.d");
+ test_class_info(&lv, &cd_dd1462);
+ dp->~dd1462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1462(Test_dd1462, "dd1462", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1462C1Ev();
+extern void _ZN6dd1462D1Ev();
+Name_Map name_map_dd1462[] = {
+ NSPAIR(_ZN6dd1462C1Ev),
+ NSPAIR(_ZN6dd1462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd1462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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 _ZTI6dd1462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_dd1462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1462[];
+static VTT_ENTRY vtt_dd1462[] = {
+ {&(_ZTV6dd1462[3]), 3,9},
+ {&(_ZTV6dd1462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+Class_Descriptor cd_dd1462 = { "dd1462", // class name
+ bases_dd1462, 3,
+ &(vtc_dd1462[0]), // expected_vtbl_contents
+ &(vtt_dd1462[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1462),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 ee01462 : dd1462 {
+ int e;
+ ~ee01462(); // tgen
+ ee01462(); // tgen
+};
+//SIG(1 ee01462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01462 ::~ee01462(){ note_dtor("ee01462", this);} // tgen
+ee01462 ::ee01462(){ note_ctor("ee01462", this);} // tgen
+
+static void Test_ee01462()
+{
+ extern Class_Descriptor cd_ee01462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01462, buf);
+ ee01462 *dp, &lv = *(dp=new (buf) ee01462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee01462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee01462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(16,12), "ee01462");
+ check_base_class_offset(lv, (dd1462*), 0, "ee01462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01462.e");
+ test_class_info(&lv, &cd_ee01462);
+ dp->~ee01462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01462(Test_ee01462, "ee01462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01462C1Ev();
+extern void _ZN7ee01462D1Ev();
+Name_Map name_map_ee01462[] = {
+ NSPAIR(_ZN7ee01462C1Ev),
+ NSPAIR(_ZN7ee01462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee01462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee01462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee01462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee01462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee01462[] = {
+ {&(_ZTV7ee01462[3]), 3,9},
+ {&(_tg__ZTV6dd1462__7ee01462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee01462[4]), 4,6},
+ {&(_ZTV7ee01462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01462[];
+extern VTBL_ENTRY _ZTV7ee01462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01462[];
+Class_Descriptor cd_ee01462 = { "ee01462", // class name
+ bases_ee01462, 4,
+ &(vtc_ee01462[0]), // expected_vtbl_contents
+ &(vtt_ee01462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01462),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 ee11462 : virtual dd1462 {
+ int e;
+ ~ee11462(); // tgen
+ ee11462(); // tgen
+};
+//SIG(1 ee11462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11462 ::~ee11462(){ note_dtor("ee11462", this);} // tgen
+ee11462 ::ee11462(){ note_ctor("ee11462", this);} // tgen
+
+static void Test_ee11462()
+{
+ extern Class_Descriptor cd_ee11462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11462, buf);
+ ee11462 *dp, &lv = *(dp=new (buf) ee11462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee11462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee11462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(32,16), "ee11462");
+ check_base_class_offset(lv, (dd1462*), ABISELECT(16,8), "ee11462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11462.e");
+ test_class_info(&lv, &cd_ee11462);
+ dp->~ee11462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11462(Test_ee11462, "ee11462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11462C1Ev();
+extern void _ZN7ee11462D1Ev();
+Name_Map name_map_ee11462[] = {
+ NSPAIR(_ZN7ee11462C1Ev),
+ NSPAIR(_ZN7ee11462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee11462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 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 _ZTI7ee11462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee11462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11462[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11462[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee11462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee11462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee11462[] = {
+ {&(_ZTV7ee11462[4]), 4,13},
+ {&(_ZTV7ee11462[7]), 7,13},
+ {&(_ZTV7ee11462[11]), 11,13},
+ {&(_tg__ZTV6dd1462__7ee11462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee11462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11462[];
+extern VTBL_ENTRY _ZTV7ee11462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11462[];
+Class_Descriptor cd_ee11462 = { "ee11462", // class name
+ bases_ee11462, 4,
+ &(vtc_ee11462[0]), // expected_vtbl_contents
+ &(vtt_ee11462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11462),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11462),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 ee21462 : dd1462 {
+ int e;
+ virtual void foo(); // _ZN7ee214623fooEv
+ ~ee21462(); // tgen
+ ee21462(); // tgen
+};
+//SIG(1 ee21462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21462 ::foo(){vfunc_called(this, "_ZN7ee214623fooEv");}
+ee21462 ::~ee21462(){ note_dtor("ee21462", this);} // tgen
+ee21462 ::ee21462(){ note_ctor("ee21462", this);} // tgen
+
+static void Test_ee21462()
+{
+ extern Class_Descriptor cd_ee21462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21462, buf);
+ ee21462 *dp, &lv = *(dp=new (buf) ee21462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee21462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee21462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(16,12), "ee21462");
+ check_base_class_offset(lv, (dd1462*), 0, "ee21462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21462.e");
+ test_class_info(&lv, &cd_ee21462);
+ dp->~ee21462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21462(Test_ee21462, "ee21462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21462C1Ev();
+extern void _ZN7ee21462D1Ev();
+Name_Map name_map_ee21462[] = {
+ NSPAIR(_ZN7ee21462C1Ev),
+ NSPAIR(_ZN7ee21462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee21462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21462[];
+extern void _ZN7ee214623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214623fooEv,_ZTv0_n12_N7ee214623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214623fooEv,_ZThn12_N7ee214623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee21462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21462[0]),
+ (VTBL_ENTRY)&_ZN7ee214623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214623fooEv,_ZTv0_n12_N7ee214623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee21462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee21462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee21462[] = {
+ {&(_ZTV7ee21462[3]), 3,10},
+ {&(_tg__ZTV6dd1462__7ee21462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee21462[4]), 4,6},
+ {&(_ZTV7ee21462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21462[];
+extern VTBL_ENTRY _ZTV7ee21462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21462[];
+static VTBL_ENTRY alt_thunk_names1163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214623fooEv,_ZTv0_n12_N7ee214623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214623fooEv,_ZThn12_N7ee214623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21462 = { "ee21462", // class name
+ bases_ee21462, 4,
+ &(vtc_ee21462[0]), // expected_vtbl_contents
+ &(vtt_ee21462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21462),4, //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 ee31462 : virtual dd1462 {
+ int e;
+ virtual void foo(); // _ZN7ee314623fooEv
+ ~ee31462(); // tgen
+ ee31462(); // tgen
+};
+//SIG(1 ee31462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31462 ::foo(){vfunc_called(this, "_ZN7ee314623fooEv");}
+ee31462 ::~ee31462(){ note_dtor("ee31462", this);} // tgen
+ee31462 ::ee31462(){ note_ctor("ee31462", this);} // tgen
+
+static void Test_ee31462()
+{
+ extern Class_Descriptor cd_ee31462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31462, buf);
+ ee31462 *dp, &lv = *(dp=new (buf) ee31462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee31462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee31462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(32,16), "ee31462");
+ check_base_class_offset(lv, (dd1462*), ABISELECT(16,8), "ee31462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31462.e");
+ test_class_info(&lv, &cd_ee31462);
+ dp->~ee31462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31462(Test_ee31462, "ee31462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31462C1Ev();
+extern void _ZN7ee31462D1Ev();
+Name_Map name_map_ee31462[] = {
+ NSPAIR(_ZN7ee31462C1Ev),
+ NSPAIR(_ZN7ee31462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee31462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 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 _ZTI7ee31462[];
+extern void _ZN7ee314623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314623fooEv,_ZTv0_n12_N7ee314623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314623fooEv,_ZThn16_N7ee314623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee31462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31462[0]),
+ (VTBL_ENTRY)&_ZN7ee314623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31462[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314623fooEv,_ZTv0_n12_N7ee314623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee31462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee31462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee31462[] = {
+ {&(_ZTV7ee31462[4]), 4,14},
+ {&(_ZTV7ee31462[8]), 8,14},
+ {&(_ZTV7ee31462[12]), 12,14},
+ {&(_tg__ZTV6dd1462__7ee31462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee31462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31462[];
+extern VTBL_ENTRY _ZTV7ee31462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31462[];
+static VTBL_ENTRY alt_thunk_names1164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314623fooEv,_ZTv0_n12_N7ee314623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314623fooEv,_ZThn16_N7ee314623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31462 = { "ee31462", // class name
+ bases_ee31462, 4,
+ &(vtc_ee31462[0]), // expected_vtbl_contents
+ &(vtt_ee31462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31462),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31462),5, //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 ee41462 : dd1462 {
+ int e;
+ virtual void bar(); // _ZN7ee414623barEv
+ ~ee41462(); // tgen
+ ee41462(); // tgen
+};
+//SIG(1 ee41462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41462 ::bar(){vfunc_called(this, "_ZN7ee414623barEv");}
+ee41462 ::~ee41462(){ note_dtor("ee41462", this);} // tgen
+ee41462 ::ee41462(){ note_ctor("ee41462", this);} // tgen
+
+static void Test_ee41462()
+{
+ extern Class_Descriptor cd_ee41462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41462, buf);
+ ee41462 *dp, &lv = *(dp=new (buf) ee41462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee41462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee41462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(16,12), "ee41462");
+ check_base_class_offset(lv, (dd1462*), 0, "ee41462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41462.e");
+ test_class_info(&lv, &cd_ee41462);
+ dp->~ee41462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41462(Test_ee41462, "ee41462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41462C1Ev();
+extern void _ZN7ee41462D1Ev();
+Name_Map name_map_ee41462[] = {
+ NSPAIR(_ZN7ee41462C1Ev),
+ NSPAIR(_ZN7ee41462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee41462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41462[];
+extern void _ZN7ee414623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414623barEv,_ZTv0_n16_N7ee414623barEv)();
+extern void ABISELECT(_ZThn16_N7ee414623barEv,_ZThn12_N7ee414623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41462[0]),
+ (VTBL_ENTRY)&_ZN7ee414623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414623barEv,_ZTv0_n16_N7ee414623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee41462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee41462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee41462[] = {
+ {&(_ZTV7ee41462[3]), 3,10},
+ {&(_tg__ZTV6dd1462__7ee41462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee41462[4]), 4,6},
+ {&(_ZTV7ee41462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41462[];
+extern VTBL_ENTRY _ZTV7ee41462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41462[];
+static VTBL_ENTRY alt_thunk_names1165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414623barEv,_ZTv0_n16_N7ee414623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414623barEv,_ZThn12_N7ee414623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41462 = { "ee41462", // class name
+ bases_ee41462, 4,
+ &(vtc_ee41462[0]), // expected_vtbl_contents
+ &(vtt_ee41462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41462),4, //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 ee51462 : virtual dd1462 {
+ int e;
+ virtual void bar(); // _ZN7ee514623barEv
+ ~ee51462(); // tgen
+ ee51462(); // tgen
+};
+//SIG(1 ee51462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51462 ::bar(){vfunc_called(this, "_ZN7ee514623barEv");}
+ee51462 ::~ee51462(){ note_dtor("ee51462", this);} // tgen
+ee51462 ::ee51462(){ note_ctor("ee51462", this);} // tgen
+
+static void Test_ee51462()
+{
+ extern Class_Descriptor cd_ee51462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51462, buf);
+ ee51462 *dp, &lv = *(dp=new (buf) ee51462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee51462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee51462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(32,16), "ee51462");
+ check_base_class_offset(lv, (dd1462*), ABISELECT(16,8), "ee51462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51462.e");
+ test_class_info(&lv, &cd_ee51462);
+ dp->~ee51462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51462(Test_ee51462, "ee51462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51462C1Ev();
+extern void _ZN7ee51462D1Ev();
+Name_Map name_map_ee51462[] = {
+ NSPAIR(_ZN7ee51462C1Ev),
+ NSPAIR(_ZN7ee51462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee51462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 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 _ZTI7ee51462[];
+extern void _ZN7ee514623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514623barEv,_ZTv0_n16_N7ee514623barEv)();
+extern void ABISELECT(_ZThn32_N7ee514623barEv,_ZThn16_N7ee514623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51462[0]),
+ (VTBL_ENTRY)&_ZN7ee514623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51462[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514623barEv,_ZTv0_n16_N7ee514623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee51462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee51462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee51462[] = {
+ {&(_ZTV7ee51462[4]), 4,14},
+ {&(_ZTV7ee51462[8]), 8,14},
+ {&(_ZTV7ee51462[12]), 12,14},
+ {&(_tg__ZTV6dd1462__7ee51462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee51462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51462[];
+extern VTBL_ENTRY _ZTV7ee51462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51462[];
+static VTBL_ENTRY alt_thunk_names1166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514623barEv,_ZTv0_n16_N7ee514623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514623barEv,_ZThn16_N7ee514623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51462 = { "ee51462", // class name
+ bases_ee51462, 4,
+ &(vtc_ee51462[0]), // expected_vtbl_contents
+ &(vtt_ee51462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51462),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51462),5, //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 ee61462 : dd1462 {
+ int e;
+ virtual void foo(); // _ZN7ee614623fooEv
+ virtual void bar(); // _ZN7ee614623barEv
+ ~ee61462(); // tgen
+ ee61462(); // tgen
+};
+//SIG(1 ee61462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61462 ::foo(){vfunc_called(this, "_ZN7ee614623fooEv");}
+void ee61462 ::bar(){vfunc_called(this, "_ZN7ee614623barEv");}
+ee61462 ::~ee61462(){ note_dtor("ee61462", this);} // tgen
+ee61462 ::ee61462(){ note_ctor("ee61462", this);} // tgen
+
+static void Test_ee61462()
+{
+ extern Class_Descriptor cd_ee61462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61462, buf);
+ ee61462 *dp, &lv = *(dp=new (buf) ee61462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee61462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee61462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(16,12), "ee61462");
+ check_base_class_offset(lv, (dd1462*), 0, "ee61462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61462.e");
+ test_class_info(&lv, &cd_ee61462);
+ dp->~ee61462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61462(Test_ee61462, "ee61462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61462C1Ev();
+extern void _ZN7ee61462D1Ev();
+Name_Map name_map_ee61462[] = {
+ NSPAIR(_ZN7ee61462C1Ev),
+ NSPAIR(_ZN7ee61462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee61462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61462[];
+extern void _ZN7ee614623fooEv();
+extern void _ZN7ee614623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614623fooEv,_ZTv0_n12_N7ee614623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614623fooEv,_ZThn12_N7ee614623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614623barEv,_ZTv0_n16_N7ee614623barEv)();
+extern void ABISELECT(_ZThn16_N7ee614623barEv,_ZThn12_N7ee614623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61462[0]),
+ (VTBL_ENTRY)&_ZN7ee614623fooEv,
+ (VTBL_ENTRY)&_ZN7ee614623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614623fooEv,_ZTv0_n12_N7ee614623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614623barEv,_ZTv0_n16_N7ee614623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee61462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee61462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee61462[] = {
+ {&(_ZTV7ee61462[3]), 3,11},
+ {&(_tg__ZTV6dd1462__7ee61462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee61462[4]), 4,6},
+ {&(_ZTV7ee61462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61462[];
+extern VTBL_ENTRY _ZTV7ee61462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61462[];
+static VTBL_ENTRY alt_thunk_names1167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614623barEv,_ZTv0_n16_N7ee614623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614623barEv,_ZThn12_N7ee614623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614623fooEv,_ZTv0_n12_N7ee614623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614623fooEv,_ZThn12_N7ee614623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61462 = { "ee61462", // class name
+ bases_ee61462, 4,
+ &(vtc_ee61462[0]), // expected_vtbl_contents
+ &(vtt_ee61462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61462),4, //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 ee71462 : virtual dd1462 {
+ int e;
+ virtual void foo(); // _ZN7ee714623fooEv
+ virtual void bar(); // _ZN7ee714623barEv
+ ~ee71462(); // tgen
+ ee71462(); // tgen
+};
+//SIG(1 ee71462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71462 ::foo(){vfunc_called(this, "_ZN7ee714623fooEv");}
+void ee71462 ::bar(){vfunc_called(this, "_ZN7ee714623barEv");}
+ee71462 ::~ee71462(){ note_dtor("ee71462", this);} // tgen
+ee71462 ::ee71462(){ note_ctor("ee71462", this);} // tgen
+
+static void Test_ee71462()
+{
+ extern Class_Descriptor cd_ee71462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71462, buf);
+ ee71462 *dp, &lv = *(dp=new (buf) ee71462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee71462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee71462");
+ check_base_class_offset(lv, (cc462*)(dd1462*), ABISELECT(32,16), "ee71462");
+ check_base_class_offset(lv, (dd1462*), ABISELECT(16,8), "ee71462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71462.e");
+ test_class_info(&lv, &cd_ee71462);
+ dp->~ee71462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71462(Test_ee71462, "ee71462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71462C1Ev();
+extern void _ZN7ee71462D1Ev();
+Name_Map name_map_ee71462[] = {
+ NSPAIR(_ZN7ee71462C1Ev),
+ NSPAIR(_ZN7ee71462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd1462;
+extern VTBL_ENTRY _ZTI6dd1462[];
+extern VTBL_ENTRY _ZTV6dd1462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1462[];
+static Base_Class bases_ee71462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd1462, 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 _ZTI7ee71462[];
+extern void _ZN7ee714623fooEv();
+extern void _ZN7ee714623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714623fooEv,_ZTv0_n12_N7ee714623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714623fooEv,_ZThn16_N7ee714623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714623barEv,_ZTv0_n16_N7ee714623barEv)();
+extern void ABISELECT(_ZThn32_N7ee714623barEv,_ZThn16_N7ee714623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71462[0]),
+ (VTBL_ENTRY)&_ZN7ee714623fooEv,
+ (VTBL_ENTRY)&_ZN7ee714623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71462[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714623fooEv,_ZTv0_n12_N7ee714623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714623barEv,_ZTv0_n16_N7ee714623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71462[];
+static VTBL_ENTRY _tg__ZTV6dd1462__7ee71462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+};
+extern void _ZN4bb623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd1462__7ee71462[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee71462[] = {
+ {&(_ZTV7ee71462[4]), 4,15},
+ {&(_ZTV7ee71462[9]), 9,15},
+ {&(_ZTV7ee71462[13]), 13,15},
+ {&(_tg__ZTV6dd1462__7ee71462[3]), 3,3},
+ {&(_tg__ZTV5cc462__6dd1462__7ee71462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71462[];
+extern VTBL_ENTRY _ZTV7ee71462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71462[];
+static VTBL_ENTRY alt_thunk_names1168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714623barEv,_ZTv0_n16_N7ee714623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714623barEv,_ZThn16_N7ee714623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714623fooEv,_ZTv0_n12_N7ee714623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714623fooEv,_ZThn16_N7ee714623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71462 = { "ee71462", // class name
+ bases_ee71462, 4,
+ &(vtc_ee71462[0]), // expected_vtbl_contents
+ &(vtt_ee71462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71462),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71462),5, //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 dd2462 : cc462 {
+ int d;
+ virtual void foo(); // _ZN6dd24623fooEv
+ ~dd2462(); // tgen
+ dd2462(); // tgen
+};
+//SIG(-1 dd2462) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2462 ::foo(){vfunc_called(this, "_ZN6dd24623fooEv");}
+dd2462 ::~dd2462(){ note_dtor("dd2462", this);} // tgen
+dd2462 ::dd2462(){ note_ctor("dd2462", this);} // tgen
+
+static void Test_dd2462()
+{
+ extern Class_Descriptor cd_dd2462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2462, buf);
+ dd2462 *dp, &lv = *(dp=new (buf) dd2462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), 0, "dd2462");
+ check_base_class_offset(lv, (bb62*)(cc462*), 0, "dd2462");
+ check_base_class_offset(lv, (cc462*), 0, "dd2462");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2462.d");
+ test_class_info(&lv, &cd_dd2462);
+ dp->~dd2462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2462(Test_dd2462, "dd2462", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2462C1Ev();
+extern void _ZN6dd2462D1Ev();
+Name_Map name_map_dd2462[] = {
+ NSPAIR(_ZN6dd2462C1Ev),
+ NSPAIR(_ZN6dd2462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd2462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2462[];
+extern void _ZN6dd24623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_dd2462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2462[0]),
+ (VTBL_ENTRY)&_ZN6dd24623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+Class_Descriptor cd_dd2462 = { "dd2462", // class name
+ bases_dd2462, 3,
+ &(vtc_dd2462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2462),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 ee02462 : dd2462 {
+ int e;
+ ~ee02462(); // tgen
+ ee02462(); // tgen
+};
+//SIG(1 ee02462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02462 ::~ee02462(){ note_dtor("ee02462", this);} // tgen
+ee02462 ::ee02462(){ note_ctor("ee02462", this);} // tgen
+
+static void Test_ee02462()
+{
+ extern Class_Descriptor cd_ee02462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02462, buf);
+ ee02462 *dp, &lv = *(dp=new (buf) ee02462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), 0, "ee02462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), 0, "ee02462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), 0, "ee02462");
+ check_base_class_offset(lv, (dd2462*), 0, "ee02462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02462.e");
+ test_class_info(&lv, &cd_ee02462);
+ dp->~ee02462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02462(Test_ee02462, "ee02462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02462C1Ev();
+extern void _ZN7ee02462D1Ev();
+Name_Map name_map_ee02462[] = {
+ NSPAIR(_ZN7ee02462C1Ev),
+ NSPAIR(_ZN7ee02462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee02462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, 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 _ZTI7ee02462[];
+extern void _ZN6dd24623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee02462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02462[0]),
+ (VTBL_ENTRY)&_ZN6dd24623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02462[];
+extern VTBL_ENTRY _ZTV7ee02462[];
+Class_Descriptor cd_ee02462 = { "ee02462", // class name
+ bases_ee02462, 4,
+ &(vtc_ee02462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02462),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 ee12462 : virtual dd2462 {
+ int e;
+ ~ee12462(); // tgen
+ ee12462(); // tgen
+};
+//SIG(1 ee12462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12462 ::~ee12462(){ note_dtor("ee12462", this);} // tgen
+ee12462 ::ee12462(){ note_ctor("ee12462", this);} // tgen
+
+static void Test_ee12462()
+{
+ extern Class_Descriptor cd_ee12462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12462, buf);
+ ee12462 *dp, &lv = *(dp=new (buf) ee12462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee12462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee12462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), ABISELECT(16,8), "ee12462");
+ check_base_class_offset(lv, (dd2462*), ABISELECT(16,8), "ee12462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12462.e");
+ test_class_info(&lv, &cd_ee12462);
+ dp->~ee12462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12462(Test_ee12462, "ee12462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12462C1Ev();
+extern void _ZN7ee12462D1Ev();
+Name_Map name_map_ee12462[] = {
+ NSPAIR(_ZN7ee12462C1Ev),
+ NSPAIR(_ZN7ee12462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee12462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, 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 _ZTI7ee12462[];
+extern void _ZN6dd24623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee12462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12462[0]),
+ (VTBL_ENTRY)&_ZN6dd24623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12462[];
+static VTT_ENTRY vtt_ee12462[] = {
+ {&(_ZTV7ee12462[3]), 3,9},
+ {&(_ZTV7ee12462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12462[];
+extern VTBL_ENTRY _ZTV7ee12462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12462[];
+Class_Descriptor cd_ee12462 = { "ee12462", // class name
+ bases_ee12462, 4,
+ &(vtc_ee12462[0]), // expected_vtbl_contents
+ &(vtt_ee12462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12462),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 ee22462 : dd2462 {
+ int e;
+ virtual void foo(); // _ZN7ee224623fooEv
+ ~ee22462(); // tgen
+ ee22462(); // tgen
+};
+//SIG(1 ee22462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22462 ::foo(){vfunc_called(this, "_ZN7ee224623fooEv");}
+ee22462 ::~ee22462(){ note_dtor("ee22462", this);} // tgen
+ee22462 ::ee22462(){ note_ctor("ee22462", this);} // tgen
+
+static void Test_ee22462()
+{
+ extern Class_Descriptor cd_ee22462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22462, buf);
+ ee22462 *dp, &lv = *(dp=new (buf) ee22462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), 0, "ee22462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), 0, "ee22462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), 0, "ee22462");
+ check_base_class_offset(lv, (dd2462*), 0, "ee22462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22462.e");
+ test_class_info(&lv, &cd_ee22462);
+ dp->~ee22462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22462(Test_ee22462, "ee22462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22462C1Ev();
+extern void _ZN7ee22462D1Ev();
+Name_Map name_map_ee22462[] = {
+ NSPAIR(_ZN7ee22462C1Ev),
+ NSPAIR(_ZN7ee22462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee22462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22462[];
+extern void _ZN7ee224623fooEv();
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee22462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22462[0]),
+ (VTBL_ENTRY)&_ZN7ee224623fooEv,
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22462[];
+extern VTBL_ENTRY _ZTV7ee22462[];
+Class_Descriptor cd_ee22462 = { "ee22462", // class name
+ bases_ee22462, 4,
+ &(vtc_ee22462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22462),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 ee32462 : virtual dd2462 {
+ int e;
+ virtual void foo(); // _ZN7ee324623fooEv
+ ~ee32462(); // tgen
+ ee32462(); // tgen
+};
+//SIG(1 ee32462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32462 ::foo(){vfunc_called(this, "_ZN7ee324623fooEv");}
+ee32462 ::~ee32462(){ note_dtor("ee32462", this);} // tgen
+ee32462 ::ee32462(){ note_ctor("ee32462", this);} // tgen
+
+static void Test_ee32462()
+{
+ extern Class_Descriptor cd_ee32462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32462, buf);
+ ee32462 *dp, &lv = *(dp=new (buf) ee32462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee32462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee32462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), ABISELECT(16,8), "ee32462");
+ check_base_class_offset(lv, (dd2462*), ABISELECT(16,8), "ee32462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32462.e");
+ test_class_info(&lv, &cd_ee32462);
+ dp->~ee32462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32462(Test_ee32462, "ee32462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32462C1Ev();
+extern void _ZN7ee32462D1Ev();
+Name_Map name_map_ee32462[] = {
+ NSPAIR(_ZN7ee32462C1Ev),
+ NSPAIR(_ZN7ee32462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee32462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, ABISELECT(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 _ZTI7ee32462[];
+extern void _ZN7ee324623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324623fooEv,_ZTv0_n12_N7ee324623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324623fooEv,_ZThn8_N7ee324623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee32462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32462[0]),
+ (VTBL_ENTRY)&_ZN7ee324623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324623fooEv,_ZTv0_n12_N7ee324623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32462[];
+static VTT_ENTRY vtt_ee32462[] = {
+ {&(_ZTV7ee32462[3]), 3,10},
+ {&(_ZTV7ee32462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32462[];
+extern VTBL_ENTRY _ZTV7ee32462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32462[];
+static VTBL_ENTRY alt_thunk_names1169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324623fooEv,_ZTv0_n12_N7ee324623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324623fooEv,_ZThn8_N7ee324623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32462 = { "ee32462", // class name
+ bases_ee32462, 4,
+ &(vtc_ee32462[0]), // expected_vtbl_contents
+ &(vtt_ee32462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32462),2, //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 ee42462 : dd2462 {
+ int e;
+ virtual void bar(); // _ZN7ee424623barEv
+ ~ee42462(); // tgen
+ ee42462(); // tgen
+};
+//SIG(1 ee42462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42462 ::bar(){vfunc_called(this, "_ZN7ee424623barEv");}
+ee42462 ::~ee42462(){ note_dtor("ee42462", this);} // tgen
+ee42462 ::ee42462(){ note_ctor("ee42462", this);} // tgen
+
+static void Test_ee42462()
+{
+ extern Class_Descriptor cd_ee42462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42462, buf);
+ ee42462 *dp, &lv = *(dp=new (buf) ee42462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), 0, "ee42462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), 0, "ee42462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), 0, "ee42462");
+ check_base_class_offset(lv, (dd2462*), 0, "ee42462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42462.e");
+ test_class_info(&lv, &cd_ee42462);
+ dp->~ee42462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42462(Test_ee42462, "ee42462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42462C1Ev();
+extern void _ZN7ee42462D1Ev();
+Name_Map name_map_ee42462[] = {
+ NSPAIR(_ZN7ee42462C1Ev),
+ NSPAIR(_ZN7ee42462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee42462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42462[];
+extern void _ZN6dd24623fooEv();
+extern void _ZN7ee424623barEv();
+static VTBL_ENTRY vtc_ee42462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42462[0]),
+ (VTBL_ENTRY)&_ZN6dd24623fooEv,
+ (VTBL_ENTRY)&_ZN7ee424623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42462[];
+extern VTBL_ENTRY _ZTV7ee42462[];
+Class_Descriptor cd_ee42462 = { "ee42462", // class name
+ bases_ee42462, 4,
+ &(vtc_ee42462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42462),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 ee52462 : virtual dd2462 {
+ int e;
+ virtual void bar(); // _ZN7ee524623barEv
+ ~ee52462(); // tgen
+ ee52462(); // tgen
+};
+//SIG(1 ee52462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52462 ::bar(){vfunc_called(this, "_ZN7ee524623barEv");}
+ee52462 ::~ee52462(){ note_dtor("ee52462", this);} // tgen
+ee52462 ::ee52462(){ note_ctor("ee52462", this);} // tgen
+
+static void Test_ee52462()
+{
+ extern Class_Descriptor cd_ee52462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52462, buf);
+ ee52462 *dp, &lv = *(dp=new (buf) ee52462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee52462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee52462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), ABISELECT(16,8), "ee52462");
+ check_base_class_offset(lv, (dd2462*), ABISELECT(16,8), "ee52462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52462.e");
+ test_class_info(&lv, &cd_ee52462);
+ dp->~ee52462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52462(Test_ee52462, "ee52462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52462C1Ev();
+extern void _ZN7ee52462D1Ev();
+Name_Map name_map_ee52462[] = {
+ NSPAIR(_ZN7ee52462C1Ev),
+ NSPAIR(_ZN7ee52462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee52462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, ABISELECT(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 _ZTI7ee52462[];
+extern void _ZN7ee524623barEv();
+extern void _ZN6dd24623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524623barEv,_ZTv0_n16_N7ee524623barEv)();
+extern void ABISELECT(_ZThn16_N7ee524623barEv,_ZThn8_N7ee524623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52462[0]),
+ (VTBL_ENTRY)&_ZN7ee524623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52462[0]),
+ (VTBL_ENTRY)&_ZN6dd24623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524623barEv,_ZTv0_n16_N7ee524623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52462[];
+static VTT_ENTRY vtt_ee52462[] = {
+ {&(_ZTV7ee52462[3]), 3,10},
+ {&(_ZTV7ee52462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52462[];
+extern VTBL_ENTRY _ZTV7ee52462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52462[];
+static VTBL_ENTRY alt_thunk_names1170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524623barEv,_ZTv0_n16_N7ee524623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524623barEv,_ZThn8_N7ee524623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52462 = { "ee52462", // class name
+ bases_ee52462, 4,
+ &(vtc_ee52462[0]), // expected_vtbl_contents
+ &(vtt_ee52462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52462),2, //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 ee62462 : dd2462 {
+ int e;
+ virtual void foo(); // _ZN7ee624623fooEv
+ virtual void bar(); // _ZN7ee624623barEv
+ ~ee62462(); // tgen
+ ee62462(); // tgen
+};
+//SIG(1 ee62462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62462 ::foo(){vfunc_called(this, "_ZN7ee624623fooEv");}
+void ee62462 ::bar(){vfunc_called(this, "_ZN7ee624623barEv");}
+ee62462 ::~ee62462(){ note_dtor("ee62462", this);} // tgen
+ee62462 ::ee62462(){ note_ctor("ee62462", this);} // tgen
+
+static void Test_ee62462()
+{
+ extern Class_Descriptor cd_ee62462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62462, buf);
+ ee62462 *dp, &lv = *(dp=new (buf) ee62462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), 0, "ee62462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), 0, "ee62462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), 0, "ee62462");
+ check_base_class_offset(lv, (dd2462*), 0, "ee62462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62462.e");
+ test_class_info(&lv, &cd_ee62462);
+ dp->~ee62462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62462(Test_ee62462, "ee62462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62462C1Ev();
+extern void _ZN7ee62462D1Ev();
+Name_Map name_map_ee62462[] = {
+ NSPAIR(_ZN7ee62462C1Ev),
+ NSPAIR(_ZN7ee62462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee62462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62462[];
+extern void _ZN7ee624623fooEv();
+extern void _ZN7ee624623barEv();
+static VTBL_ENTRY vtc_ee62462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62462[0]),
+ (VTBL_ENTRY)&_ZN7ee624623fooEv,
+ (VTBL_ENTRY)&_ZN7ee624623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62462[];
+extern VTBL_ENTRY _ZTV7ee62462[];
+Class_Descriptor cd_ee62462 = { "ee62462", // class name
+ bases_ee62462, 4,
+ &(vtc_ee62462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62462),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 ee72462 : virtual dd2462 {
+ int e;
+ virtual void foo(); // _ZN7ee724623fooEv
+ virtual void bar(); // _ZN7ee724623barEv
+ ~ee72462(); // tgen
+ ee72462(); // tgen
+};
+//SIG(1 ee72462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72462 ::foo(){vfunc_called(this, "_ZN7ee724623fooEv");}
+void ee72462 ::bar(){vfunc_called(this, "_ZN7ee724623barEv");}
+ee72462 ::~ee72462(){ note_dtor("ee72462", this);} // tgen
+ee72462 ::ee72462(){ note_ctor("ee72462", this);} // tgen
+
+static void Test_ee72462()
+{
+ extern Class_Descriptor cd_ee72462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72462, buf);
+ ee72462 *dp, &lv = *(dp=new (buf) ee72462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee72462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd2462*), ABISELECT(16,8), "ee72462");
+ check_base_class_offset(lv, (cc462*)(dd2462*), ABISELECT(16,8), "ee72462");
+ check_base_class_offset(lv, (dd2462*), ABISELECT(16,8), "ee72462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72462.e");
+ test_class_info(&lv, &cd_ee72462);
+ dp->~ee72462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72462(Test_ee72462, "ee72462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72462C1Ev();
+extern void _ZN7ee72462D1Ev();
+Name_Map name_map_ee72462[] = {
+ NSPAIR(_ZN7ee72462C1Ev),
+ NSPAIR(_ZN7ee72462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd2462;
+extern VTBL_ENTRY _ZTI6dd2462[];
+extern VTBL_ENTRY _ZTV6dd2462[];
+static Base_Class bases_ee72462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2462, ABISELECT(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 _ZTI7ee72462[];
+extern void _ZN7ee724623fooEv();
+extern void _ZN7ee724623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724623fooEv,_ZTv0_n12_N7ee724623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724623fooEv,_ZThn8_N7ee724623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724623barEv,_ZTv0_n16_N7ee724623barEv)();
+extern void ABISELECT(_ZThn16_N7ee724623barEv,_ZThn8_N7ee724623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72462[0]),
+ (VTBL_ENTRY)&_ZN7ee724623fooEv,
+ (VTBL_ENTRY)&_ZN7ee724623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724623fooEv,_ZTv0_n12_N7ee724623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724623barEv,_ZTv0_n16_N7ee724623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72462[];
+static VTT_ENTRY vtt_ee72462[] = {
+ {&(_ZTV7ee72462[3]), 3,11},
+ {&(_ZTV7ee72462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72462[];
+extern VTBL_ENTRY _ZTV7ee72462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72462[];
+static VTBL_ENTRY alt_thunk_names1171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724623barEv,_ZTv0_n16_N7ee724623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724623barEv,_ZThn8_N7ee724623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724623fooEv,_ZTv0_n12_N7ee724623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724623fooEv,_ZThn8_N7ee724623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72462 = { "ee72462", // class name
+ bases_ee72462, 4,
+ &(vtc_ee72462[0]), // expected_vtbl_contents
+ &(vtt_ee72462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72462),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3462 : virtual cc462 {
+ int d;
+ virtual void foo(); // _ZN6dd34623fooEv
+ ~dd3462(); // tgen
+ dd3462(); // tgen
+};
+//SIG(-1 dd3462) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3462 ::foo(){vfunc_called(this, "_ZN6dd34623fooEv");}
+dd3462 ::~dd3462(){ note_dtor("dd3462", this);} // tgen
+dd3462 ::dd3462(){ note_ctor("dd3462", this);} // tgen
+
+static void Test_dd3462()
+{
+ extern Class_Descriptor cd_dd3462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3462, buf);
+ dd3462 *dp, &lv = *(dp=new (buf) dd3462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,8), "dd3462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,8), "dd3462");
+ check_base_class_offset(lv, (cc462*), ABISELECT(16,8), "dd3462");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3462.d");
+ test_class_info(&lv, &cd_dd3462);
+ dp->~dd3462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3462(Test_dd3462, "dd3462", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3462C1Ev();
+extern void _ZN6dd3462D1Ev();
+Name_Map name_map_dd3462[] = {
+ NSPAIR(_ZN6dd3462C1Ev),
+ NSPAIR(_ZN6dd3462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd3462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(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 _ZTI6dd3462[];
+extern void _ZN6dd34623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_dd3462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3462[];
+static VTT_ENTRY vtt_dd3462[] = {
+ {&(_ZTV6dd3462[3]), 3,10},
+ {&(_ZTV6dd3462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static VTBL_ENTRY alt_thunk_names1172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3462 = { "dd3462", // class name
+ bases_dd3462, 3,
+ &(vtc_dd3462[0]), // expected_vtbl_contents
+ &(vtt_dd3462[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3462),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03462 : dd3462 {
+ int e;
+ ~ee03462(); // tgen
+ ee03462(); // tgen
+};
+//SIG(1 ee03462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03462 ::~ee03462(){ note_dtor("ee03462", this);} // tgen
+ee03462 ::ee03462(){ note_ctor("ee03462", this);} // tgen
+
+static void Test_ee03462()
+{
+ extern Class_Descriptor cd_ee03462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03462, buf);
+ ee03462 *dp, &lv = *(dp=new (buf) ee03462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee03462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee03462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(16,12), "ee03462");
+ check_base_class_offset(lv, (dd3462*), 0, "ee03462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03462.e");
+ test_class_info(&lv, &cd_ee03462);
+ dp->~ee03462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03462(Test_ee03462, "ee03462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03462C1Ev();
+extern void _ZN7ee03462D1Ev();
+Name_Map name_map_ee03462[] = {
+ NSPAIR(_ZN7ee03462C1Ev),
+ NSPAIR(_ZN7ee03462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee03462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03462[];
+extern void _ZN6dd34623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee03462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee03462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee03462[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee03462[] = {
+ {&(_ZTV7ee03462[3]), 3,10},
+ {&(_tg__ZTV6dd3462__7ee03462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee03462[4]), 4,6},
+ {&(_ZTV7ee03462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03462[];
+extern VTBL_ENTRY _ZTV7ee03462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03462[];
+static VTBL_ENTRY alt_thunk_names1173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03462 = { "ee03462", // class name
+ bases_ee03462, 4,
+ &(vtc_ee03462[0]), // expected_vtbl_contents
+ &(vtt_ee03462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03462),4, //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 ee13462 : virtual dd3462 {
+ int e;
+ ~ee13462(); // tgen
+ ee13462(); // tgen
+};
+//SIG(1 ee13462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13462 ::~ee13462(){ note_dtor("ee13462", this);} // tgen
+ee13462 ::ee13462(){ note_ctor("ee13462", this);} // tgen
+
+static void Test_ee13462()
+{
+ extern Class_Descriptor cd_ee13462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13462, buf);
+ ee13462 *dp, &lv = *(dp=new (buf) ee13462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee13462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee13462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(32,16), "ee13462");
+ check_base_class_offset(lv, (dd3462*), ABISELECT(16,8), "ee13462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13462.e");
+ test_class_info(&lv, &cd_ee13462);
+ dp->~ee13462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13462(Test_ee13462, "ee13462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13462C1Ev();
+extern void _ZN7ee13462D1Ev();
+Name_Map name_map_ee13462[] = {
+ NSPAIR(_ZN7ee13462C1Ev),
+ NSPAIR(_ZN7ee13462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee13462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, ABISELECT(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 _ZTI7ee13462[];
+extern void _ZN6dd34623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee13462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13462[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee13462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee13462[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee13462[] = {
+ {&(_ZTV7ee13462[4]), 4,15},
+ {&(_ZTV7ee13462[8]), 8,15},
+ {&(_ZTV7ee13462[13]), 13,15},
+ {&(_tg__ZTV6dd3462__7ee13462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee13462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13462[];
+extern VTBL_ENTRY _ZTV7ee13462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13462[];
+static VTBL_ENTRY alt_thunk_names1174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13462 = { "ee13462", // class name
+ bases_ee13462, 4,
+ &(vtc_ee13462[0]), // expected_vtbl_contents
+ &(vtt_ee13462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13462),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13462),5, //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 ee23462 : dd3462 {
+ int e;
+ virtual void foo(); // _ZN7ee234623fooEv
+ ~ee23462(); // tgen
+ ee23462(); // tgen
+};
+//SIG(1 ee23462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23462 ::foo(){vfunc_called(this, "_ZN7ee234623fooEv");}
+ee23462 ::~ee23462(){ note_dtor("ee23462", this);} // tgen
+ee23462 ::ee23462(){ note_ctor("ee23462", this);} // tgen
+
+static void Test_ee23462()
+{
+ extern Class_Descriptor cd_ee23462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23462, buf);
+ ee23462 *dp, &lv = *(dp=new (buf) ee23462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee23462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee23462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(16,12), "ee23462");
+ check_base_class_offset(lv, (dd3462*), 0, "ee23462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23462.e");
+ test_class_info(&lv, &cd_ee23462);
+ dp->~ee23462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23462(Test_ee23462, "ee23462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23462C1Ev();
+extern void _ZN7ee23462D1Ev();
+Name_Map name_map_ee23462[] = {
+ NSPAIR(_ZN7ee23462C1Ev),
+ NSPAIR(_ZN7ee23462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee23462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23462[];
+extern void _ZN7ee234623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234623fooEv,_ZTv0_n12_N7ee234623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234623fooEv,_ZThn12_N7ee234623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee23462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23462[0]),
+ (VTBL_ENTRY)&_ZN7ee234623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234623fooEv,_ZTv0_n12_N7ee234623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee23462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee23462[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee23462[] = {
+ {&(_ZTV7ee23462[3]), 3,10},
+ {&(_tg__ZTV6dd3462__7ee23462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee23462[4]), 4,6},
+ {&(_ZTV7ee23462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23462[];
+extern VTBL_ENTRY _ZTV7ee23462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23462[];
+static VTBL_ENTRY alt_thunk_names1175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234623fooEv,_ZTv0_n12_N7ee234623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234623fooEv,_ZThn12_N7ee234623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23462 = { "ee23462", // class name
+ bases_ee23462, 4,
+ &(vtc_ee23462[0]), // expected_vtbl_contents
+ &(vtt_ee23462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23462),4, //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 ee33462 : virtual dd3462 {
+ int e;
+ virtual void foo(); // _ZN7ee334623fooEv
+ ~ee33462(); // tgen
+ ee33462(); // tgen
+};
+//SIG(1 ee33462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33462 ::foo(){vfunc_called(this, "_ZN7ee334623fooEv");}
+ee33462 ::~ee33462(){ note_dtor("ee33462", this);} // tgen
+ee33462 ::ee33462(){ note_ctor("ee33462", this);} // tgen
+
+static void Test_ee33462()
+{
+ extern Class_Descriptor cd_ee33462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33462, buf);
+ ee33462 *dp, &lv = *(dp=new (buf) ee33462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee33462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee33462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(32,16), "ee33462");
+ check_base_class_offset(lv, (dd3462*), ABISELECT(16,8), "ee33462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33462.e");
+ test_class_info(&lv, &cd_ee33462);
+ dp->~ee33462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33462(Test_ee33462, "ee33462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33462C1Ev();
+extern void _ZN7ee33462D1Ev();
+Name_Map name_map_ee33462[] = {
+ NSPAIR(_ZN7ee33462C1Ev),
+ NSPAIR(_ZN7ee33462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee33462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, ABISELECT(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 _ZTI7ee33462[];
+extern void _ZN7ee334623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334623fooEv,_ZTv0_n16_N7ee334623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334623fooEv,_ZThn8_N7ee334623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334623fooEv,_ZTv0_n12_N7ee334623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334623fooEv,_ZThn16_N7ee334623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY vtc_ee33462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33462[0]),
+ (VTBL_ENTRY)&_ZN7ee334623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334623fooEv,_ZTv0_n16_N7ee334623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334623fooEv,_ZTv0_n12_N7ee334623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee33462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee33462[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee33462[] = {
+ {&(_ZTV7ee33462[4]), 4,16},
+ {&(_ZTV7ee33462[9]), 9,16},
+ {&(_ZTV7ee33462[14]), 14,16},
+ {&(_tg__ZTV6dd3462__7ee33462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee33462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33462[];
+extern VTBL_ENTRY _ZTV7ee33462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33462[];
+static VTBL_ENTRY alt_thunk_names1176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334623fooEv,_ZTv0_n12_N7ee334623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334623fooEv,_ZThn16_N7ee334623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334623fooEv,_ZTv0_n16_N7ee334623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334623fooEv,_ZThn8_N7ee334623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33462 = { "ee33462", // class name
+ bases_ee33462, 4,
+ &(vtc_ee33462[0]), // expected_vtbl_contents
+ &(vtt_ee33462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33462),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33462),5, //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 ee43462 : dd3462 {
+ int e;
+ virtual void bar(); // _ZN7ee434623barEv
+ ~ee43462(); // tgen
+ ee43462(); // tgen
+};
+//SIG(1 ee43462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43462 ::bar(){vfunc_called(this, "_ZN7ee434623barEv");}
+ee43462 ::~ee43462(){ note_dtor("ee43462", this);} // tgen
+ee43462 ::ee43462(){ note_ctor("ee43462", this);} // tgen
+
+static void Test_ee43462()
+{
+ extern Class_Descriptor cd_ee43462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43462, buf);
+ ee43462 *dp, &lv = *(dp=new (buf) ee43462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee43462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee43462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(16,12), "ee43462");
+ check_base_class_offset(lv, (dd3462*), 0, "ee43462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43462.e");
+ test_class_info(&lv, &cd_ee43462);
+ dp->~ee43462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43462(Test_ee43462, "ee43462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43462C1Ev();
+extern void _ZN7ee43462D1Ev();
+Name_Map name_map_ee43462[] = {
+ NSPAIR(_ZN7ee43462C1Ev),
+ NSPAIR(_ZN7ee43462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee43462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43462[];
+extern void _ZN6dd34623fooEv();
+extern void _ZN7ee434623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434623barEv,_ZTv0_n16_N7ee434623barEv)();
+extern void ABISELECT(_ZThn16_N7ee434623barEv,_ZThn12_N7ee434623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+ (VTBL_ENTRY)&_ZN7ee434623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434623barEv,_ZTv0_n16_N7ee434623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee43462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee43462[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee43462[] = {
+ {&(_ZTV7ee43462[3]), 3,11},
+ {&(_tg__ZTV6dd3462__7ee43462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee43462[4]), 4,6},
+ {&(_ZTV7ee43462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43462[];
+extern VTBL_ENTRY _ZTV7ee43462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43462[];
+static VTBL_ENTRY alt_thunk_names1177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434623barEv,_ZTv0_n16_N7ee434623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434623barEv,_ZThn12_N7ee434623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43462 = { "ee43462", // class name
+ bases_ee43462, 4,
+ &(vtc_ee43462[0]), // expected_vtbl_contents
+ &(vtt_ee43462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43462),4, //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 ee53462 : virtual dd3462 {
+ int e;
+ virtual void bar(); // _ZN7ee534623barEv
+ ~ee53462(); // tgen
+ ee53462(); // tgen
+};
+//SIG(1 ee53462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53462 ::bar(){vfunc_called(this, "_ZN7ee534623barEv");}
+ee53462 ::~ee53462(){ note_dtor("ee53462", this);} // tgen
+ee53462 ::ee53462(){ note_ctor("ee53462", this);} // tgen
+
+static void Test_ee53462()
+{
+ extern Class_Descriptor cd_ee53462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53462, buf);
+ ee53462 *dp, &lv = *(dp=new (buf) ee53462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee53462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee53462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(32,16), "ee53462");
+ check_base_class_offset(lv, (dd3462*), ABISELECT(16,8), "ee53462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53462.e");
+ test_class_info(&lv, &cd_ee53462);
+ dp->~ee53462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53462(Test_ee53462, "ee53462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53462C1Ev();
+extern void _ZN7ee53462D1Ev();
+Name_Map name_map_ee53462[] = {
+ NSPAIR(_ZN7ee53462C1Ev),
+ NSPAIR(_ZN7ee53462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee53462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, ABISELECT(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 _ZTI7ee53462[];
+extern void _ZN7ee534623barEv();
+extern void _ZN6dd34623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534623barEv,_ZTv0_n16_N7ee534623barEv)();
+extern void ABISELECT(_ZThn32_N7ee534623barEv,_ZThn16_N7ee534623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53462[0]),
+ (VTBL_ENTRY)&_ZN7ee534623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534623barEv,_ZTv0_n16_N7ee534623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee53462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee53462[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee53462[] = {
+ {&(_ZTV7ee53462[4]), 4,16},
+ {&(_ZTV7ee53462[9]), 9,16},
+ {&(_ZTV7ee53462[14]), 14,16},
+ {&(_tg__ZTV6dd3462__7ee53462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee53462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53462[];
+extern VTBL_ENTRY _ZTV7ee53462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53462[];
+static VTBL_ENTRY alt_thunk_names1178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534623barEv,_ZTv0_n16_N7ee534623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534623barEv,_ZThn16_N7ee534623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53462 = { "ee53462", // class name
+ bases_ee53462, 4,
+ &(vtc_ee53462[0]), // expected_vtbl_contents
+ &(vtt_ee53462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53462),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53462),5, //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 ee63462 : dd3462 {
+ int e;
+ virtual void foo(); // _ZN7ee634623fooEv
+ virtual void bar(); // _ZN7ee634623barEv
+ ~ee63462(); // tgen
+ ee63462(); // tgen
+};
+//SIG(1 ee63462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63462 ::foo(){vfunc_called(this, "_ZN7ee634623fooEv");}
+void ee63462 ::bar(){vfunc_called(this, "_ZN7ee634623barEv");}
+ee63462 ::~ee63462(){ note_dtor("ee63462", this);} // tgen
+ee63462 ::ee63462(){ note_ctor("ee63462", this);} // tgen
+
+static void Test_ee63462()
+{
+ extern Class_Descriptor cd_ee63462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63462, buf);
+ ee63462 *dp, &lv = *(dp=new (buf) ee63462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee63462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee63462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(16,12), "ee63462");
+ check_base_class_offset(lv, (dd3462*), 0, "ee63462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63462.e");
+ test_class_info(&lv, &cd_ee63462);
+ dp->~ee63462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63462(Test_ee63462, "ee63462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63462C1Ev();
+extern void _ZN7ee63462D1Ev();
+Name_Map name_map_ee63462[] = {
+ NSPAIR(_ZN7ee63462C1Ev),
+ NSPAIR(_ZN7ee63462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee63462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63462[];
+extern void _ZN7ee634623fooEv();
+extern void _ZN7ee634623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634623fooEv,_ZTv0_n12_N7ee634623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634623fooEv,_ZThn12_N7ee634623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634623barEv,_ZTv0_n16_N7ee634623barEv)();
+extern void ABISELECT(_ZThn16_N7ee634623barEv,_ZThn12_N7ee634623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63462[0]),
+ (VTBL_ENTRY)&_ZN7ee634623fooEv,
+ (VTBL_ENTRY)&_ZN7ee634623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634623fooEv,_ZTv0_n12_N7ee634623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634623barEv,_ZTv0_n16_N7ee634623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee63462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee63462[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee63462[] = {
+ {&(_ZTV7ee63462[3]), 3,11},
+ {&(_tg__ZTV6dd3462__7ee63462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee63462[4]), 4,6},
+ {&(_ZTV7ee63462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63462[];
+extern VTBL_ENTRY _ZTV7ee63462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63462[];
+static VTBL_ENTRY alt_thunk_names1179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn12_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634623barEv,_ZTv0_n16_N7ee634623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634623barEv,_ZThn12_N7ee634623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634623fooEv,_ZTv0_n12_N7ee634623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634623fooEv,_ZThn12_N7ee634623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63462 = { "ee63462", // class name
+ bases_ee63462, 4,
+ &(vtc_ee63462[0]), // expected_vtbl_contents
+ &(vtt_ee63462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63462),4, //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 ee73462 : virtual dd3462 {
+ int e;
+ virtual void foo(); // _ZN7ee734623fooEv
+ virtual void bar(); // _ZN7ee734623barEv
+ ~ee73462(); // tgen
+ ee73462(); // tgen
+};
+//SIG(1 ee73462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73462 ::foo(){vfunc_called(this, "_ZN7ee734623fooEv");}
+void ee73462 ::bar(){vfunc_called(this, "_ZN7ee734623barEv");}
+ee73462 ::~ee73462(){ note_dtor("ee73462", this);} // tgen
+ee73462 ::ee73462(){ note_ctor("ee73462", this);} // tgen
+
+static void Test_ee73462()
+{
+ extern Class_Descriptor cd_ee73462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73462, buf);
+ ee73462 *dp, &lv = *(dp=new (buf) ee73462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee73462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee73462");
+ check_base_class_offset(lv, (cc462*)(dd3462*), ABISELECT(32,16), "ee73462");
+ check_base_class_offset(lv, (dd3462*), ABISELECT(16,8), "ee73462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73462.e");
+ test_class_info(&lv, &cd_ee73462);
+ dp->~ee73462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73462(Test_ee73462, "ee73462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73462C1Ev();
+extern void _ZN7ee73462D1Ev();
+Name_Map name_map_ee73462[] = {
+ NSPAIR(_ZN7ee73462C1Ev),
+ NSPAIR(_ZN7ee73462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd3462;
+extern VTBL_ENTRY _ZTI6dd3462[];
+extern VTBL_ENTRY _ZTV6dd3462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3462[];
+static Base_Class bases_ee73462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd3462, 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 _ZTI7ee73462[];
+extern void _ZN7ee734623fooEv();
+extern void _ZN7ee734623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734623fooEv,_ZTv0_n16_N7ee734623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734623fooEv,_ZThn8_N7ee734623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734623fooEv,_ZTv0_n12_N7ee734623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734623fooEv,_ZThn16_N7ee734623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734623barEv,_ZTv0_n16_N7ee734623barEv)();
+extern void ABISELECT(_ZThn32_N7ee734623barEv,_ZThn16_N7ee734623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73462[0]),
+ (VTBL_ENTRY)&_ZN7ee734623fooEv,
+ (VTBL_ENTRY)&_ZN7ee734623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734623fooEv,_ZTv0_n16_N7ee734623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734623fooEv,_ZTv0_n12_N7ee734623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734623barEv,_ZTv0_n16_N7ee734623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73462[];
+extern void _ZN6dd34623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3462__7ee73462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&_ZN6dd34623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv)() __attribute__((weak));
+extern void _ZN5cc4623barEv();
+static VTBL_ENTRY _tg__ZTV5cc462__6dd3462__7ee73462[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv),
+ (VTBL_ENTRY)&_ZN5cc4623barEv,
+};
+static VTT_ENTRY vtt_ee73462[] = {
+ {&(_ZTV7ee73462[4]), 4,17},
+ {&(_ZTV7ee73462[10]), 10,17},
+ {&(_ZTV7ee73462[15]), 15,17},
+ {&(_tg__ZTV6dd3462__7ee73462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd3462__7ee73462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73462[];
+extern VTBL_ENTRY _ZTV7ee73462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73462[];
+static VTBL_ENTRY alt_thunk_names1180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34623fooEv,_ZTv0_n12_N6dd34623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34623fooEv,_ZThn8_N6dd34623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734623barEv,_ZTv0_n16_N7ee734623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734623barEv,_ZThn16_N7ee734623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734623fooEv,_ZTv0_n12_N7ee734623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734623fooEv,_ZThn16_N7ee734623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734623fooEv,_ZTv0_n16_N7ee734623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734623fooEv,_ZThn8_N7ee734623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73462 = { "ee73462", // class name
+ bases_ee73462, 4,
+ &(vtc_ee73462[0]), // expected_vtbl_contents
+ &(vtt_ee73462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73462),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73462),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4462 : cc462 {
+ int d;
+ virtual void bar(); // _ZN6dd44623barEv
+ ~dd4462(); // tgen
+ dd4462(); // tgen
+};
+//SIG(-1 dd4462) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4462 ::bar(){vfunc_called(this, "_ZN6dd44623barEv");}
+dd4462 ::~dd4462(){ note_dtor("dd4462", this);} // tgen
+dd4462 ::dd4462(){ note_ctor("dd4462", this);} // tgen
+
+static void Test_dd4462()
+{
+ extern Class_Descriptor cd_dd4462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4462, buf);
+ dd4462 *dp, &lv = *(dp=new (buf) dd4462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), 0, "dd4462");
+ check_base_class_offset(lv, (bb62*)(cc462*), 0, "dd4462");
+ check_base_class_offset(lv, (cc462*), 0, "dd4462");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4462.d");
+ test_class_info(&lv, &cd_dd4462);
+ dp->~dd4462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4462(Test_dd4462, "dd4462", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4462C1Ev();
+extern void _ZN6dd4462D1Ev();
+Name_Map name_map_dd4462[] = {
+ NSPAIR(_ZN6dd4462C1Ev),
+ NSPAIR(_ZN6dd4462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd4462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd44623barEv();
+static VTBL_ENTRY vtc_dd4462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd44623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+Class_Descriptor cd_dd4462 = { "dd4462", // class name
+ bases_dd4462, 3,
+ &(vtc_dd4462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4462),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 ee04462 : dd4462 {
+ int e;
+ ~ee04462(); // tgen
+ ee04462(); // tgen
+};
+//SIG(1 ee04462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04462 ::~ee04462(){ note_dtor("ee04462", this);} // tgen
+ee04462 ::ee04462(){ note_ctor("ee04462", this);} // tgen
+
+static void Test_ee04462()
+{
+ extern Class_Descriptor cd_ee04462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04462, buf);
+ ee04462 *dp, &lv = *(dp=new (buf) ee04462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), 0, "ee04462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), 0, "ee04462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), 0, "ee04462");
+ check_base_class_offset(lv, (dd4462*), 0, "ee04462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04462.e");
+ test_class_info(&lv, &cd_ee04462);
+ dp->~ee04462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04462(Test_ee04462, "ee04462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04462C1Ev();
+extern void _ZN7ee04462D1Ev();
+Name_Map name_map_ee04462[] = {
+ NSPAIR(_ZN7ee04462C1Ev),
+ NSPAIR(_ZN7ee04462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee04462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, 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 _ZTI7ee04462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd44623barEv();
+static VTBL_ENTRY vtc_ee04462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd44623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04462[];
+extern VTBL_ENTRY _ZTV7ee04462[];
+Class_Descriptor cd_ee04462 = { "ee04462", // class name
+ bases_ee04462, 4,
+ &(vtc_ee04462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04462),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 ee14462 : virtual dd4462 {
+ int e;
+ ~ee14462(); // tgen
+ ee14462(); // tgen
+};
+//SIG(1 ee14462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14462 ::~ee14462(){ note_dtor("ee14462", this);} // tgen
+ee14462 ::ee14462(){ note_ctor("ee14462", this);} // tgen
+
+static void Test_ee14462()
+{
+ extern Class_Descriptor cd_ee14462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14462, buf);
+ ee14462 *dp, &lv = *(dp=new (buf) ee14462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee14462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee14462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), ABISELECT(16,8), "ee14462");
+ check_base_class_offset(lv, (dd4462*), ABISELECT(16,8), "ee14462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14462.e");
+ test_class_info(&lv, &cd_ee14462);
+ dp->~ee14462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14462(Test_ee14462, "ee14462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14462C1Ev();
+extern void _ZN7ee14462D1Ev();
+Name_Map name_map_ee14462[] = {
+ NSPAIR(_ZN7ee14462C1Ev),
+ NSPAIR(_ZN7ee14462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee14462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, 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 _ZTI7ee14462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN6dd44623barEv();
+static VTBL_ENTRY vtc_ee14462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN6dd44623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14462[];
+static VTT_ENTRY vtt_ee14462[] = {
+ {&(_ZTV7ee14462[3]), 3,9},
+ {&(_ZTV7ee14462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14462[];
+extern VTBL_ENTRY _ZTV7ee14462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14462[];
+Class_Descriptor cd_ee14462 = { "ee14462", // class name
+ bases_ee14462, 4,
+ &(vtc_ee14462[0]), // expected_vtbl_contents
+ &(vtt_ee14462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14462),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 ee24462 : dd4462 {
+ int e;
+ virtual void foo(); // _ZN7ee244623fooEv
+ ~ee24462(); // tgen
+ ee24462(); // tgen
+};
+//SIG(1 ee24462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24462 ::foo(){vfunc_called(this, "_ZN7ee244623fooEv");}
+ee24462 ::~ee24462(){ note_dtor("ee24462", this);} // tgen
+ee24462 ::ee24462(){ note_ctor("ee24462", this);} // tgen
+
+static void Test_ee24462()
+{
+ extern Class_Descriptor cd_ee24462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24462, buf);
+ ee24462 *dp, &lv = *(dp=new (buf) ee24462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), 0, "ee24462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), 0, "ee24462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), 0, "ee24462");
+ check_base_class_offset(lv, (dd4462*), 0, "ee24462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24462.e");
+ test_class_info(&lv, &cd_ee24462);
+ dp->~ee24462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24462(Test_ee24462, "ee24462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24462C1Ev();
+extern void _ZN7ee24462D1Ev();
+Name_Map name_map_ee24462[] = {
+ NSPAIR(_ZN7ee24462C1Ev),
+ NSPAIR(_ZN7ee24462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee24462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24462[];
+extern void _ZN7ee244623fooEv();
+extern void _ZN6dd44623barEv();
+static VTBL_ENTRY vtc_ee24462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24462[0]),
+ (VTBL_ENTRY)&_ZN7ee244623fooEv,
+ (VTBL_ENTRY)&_ZN6dd44623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24462[];
+extern VTBL_ENTRY _ZTV7ee24462[];
+Class_Descriptor cd_ee24462 = { "ee24462", // class name
+ bases_ee24462, 4,
+ &(vtc_ee24462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24462),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 ee34462 : virtual dd4462 {
+ int e;
+ virtual void foo(); // _ZN7ee344623fooEv
+ ~ee34462(); // tgen
+ ee34462(); // tgen
+};
+//SIG(1 ee34462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34462 ::foo(){vfunc_called(this, "_ZN7ee344623fooEv");}
+ee34462 ::~ee34462(){ note_dtor("ee34462", this);} // tgen
+ee34462 ::ee34462(){ note_ctor("ee34462", this);} // tgen
+
+static void Test_ee34462()
+{
+ extern Class_Descriptor cd_ee34462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34462, buf);
+ ee34462 *dp, &lv = *(dp=new (buf) ee34462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee34462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee34462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), ABISELECT(16,8), "ee34462");
+ check_base_class_offset(lv, (dd4462*), ABISELECT(16,8), "ee34462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34462.e");
+ test_class_info(&lv, &cd_ee34462);
+ dp->~ee34462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34462(Test_ee34462, "ee34462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34462C1Ev();
+extern void _ZN7ee34462D1Ev();
+Name_Map name_map_ee34462[] = {
+ NSPAIR(_ZN7ee34462C1Ev),
+ NSPAIR(_ZN7ee34462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee34462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, ABISELECT(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 _ZTI7ee34462[];
+extern void _ZN7ee344623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344623fooEv,_ZTv0_n12_N7ee344623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344623fooEv,_ZThn8_N7ee344623fooEv)() __attribute__((weak));
+extern void _ZN6dd44623barEv();
+static VTBL_ENTRY vtc_ee34462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34462[0]),
+ (VTBL_ENTRY)&_ZN7ee344623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344623fooEv,_ZTv0_n12_N7ee344623fooEv),
+ (VTBL_ENTRY)&_ZN6dd44623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34462[];
+static VTT_ENTRY vtt_ee34462[] = {
+ {&(_ZTV7ee34462[3]), 3,10},
+ {&(_ZTV7ee34462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34462[];
+extern VTBL_ENTRY _ZTV7ee34462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34462[];
+static VTBL_ENTRY alt_thunk_names1181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344623fooEv,_ZTv0_n12_N7ee344623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344623fooEv,_ZThn8_N7ee344623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34462 = { "ee34462", // class name
+ bases_ee34462, 4,
+ &(vtc_ee34462[0]), // expected_vtbl_contents
+ &(vtt_ee34462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34462),2, //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 ee44462 : dd4462 {
+ int e;
+ virtual void bar(); // _ZN7ee444623barEv
+ ~ee44462(); // tgen
+ ee44462(); // tgen
+};
+//SIG(1 ee44462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44462 ::bar(){vfunc_called(this, "_ZN7ee444623barEv");}
+ee44462 ::~ee44462(){ note_dtor("ee44462", this);} // tgen
+ee44462 ::ee44462(){ note_ctor("ee44462", this);} // tgen
+
+static void Test_ee44462()
+{
+ extern Class_Descriptor cd_ee44462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44462, buf);
+ ee44462 *dp, &lv = *(dp=new (buf) ee44462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), 0, "ee44462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), 0, "ee44462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), 0, "ee44462");
+ check_base_class_offset(lv, (dd4462*), 0, "ee44462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44462.e");
+ test_class_info(&lv, &cd_ee44462);
+ dp->~ee44462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44462(Test_ee44462, "ee44462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44462C1Ev();
+extern void _ZN7ee44462D1Ev();
+Name_Map name_map_ee44462[] = {
+ NSPAIR(_ZN7ee44462C1Ev),
+ NSPAIR(_ZN7ee44462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee44462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44462[];
+extern void _ZN4bb623fooEv();
+extern void _ZN7ee444623barEv();
+static VTBL_ENTRY vtc_ee44462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&_ZN7ee444623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44462[];
+extern VTBL_ENTRY _ZTV7ee44462[];
+Class_Descriptor cd_ee44462 = { "ee44462", // class name
+ bases_ee44462, 4,
+ &(vtc_ee44462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44462),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 ee54462 : virtual dd4462 {
+ int e;
+ virtual void bar(); // _ZN7ee544623barEv
+ ~ee54462(); // tgen
+ ee54462(); // tgen
+};
+//SIG(1 ee54462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54462 ::bar(){vfunc_called(this, "_ZN7ee544623barEv");}
+ee54462 ::~ee54462(){ note_dtor("ee54462", this);} // tgen
+ee54462 ::ee54462(){ note_ctor("ee54462", this);} // tgen
+
+static void Test_ee54462()
+{
+ extern Class_Descriptor cd_ee54462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54462, buf);
+ ee54462 *dp, &lv = *(dp=new (buf) ee54462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee54462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee54462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), ABISELECT(16,8), "ee54462");
+ check_base_class_offset(lv, (dd4462*), ABISELECT(16,8), "ee54462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54462.e");
+ test_class_info(&lv, &cd_ee54462);
+ dp->~ee54462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54462(Test_ee54462, "ee54462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54462C1Ev();
+extern void _ZN7ee54462D1Ev();
+Name_Map name_map_ee54462[] = {
+ NSPAIR(_ZN7ee54462C1Ev),
+ NSPAIR(_ZN7ee54462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee54462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, ABISELECT(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 _ZTI7ee54462[];
+extern void _ZN7ee544623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544623barEv,_ZTv0_n16_N7ee544623barEv)();
+extern void ABISELECT(_ZThn16_N7ee544623barEv,_ZThn8_N7ee544623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54462[0]),
+ (VTBL_ENTRY)&_ZN7ee544623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544623barEv,_ZTv0_n16_N7ee544623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54462[];
+static VTT_ENTRY vtt_ee54462[] = {
+ {&(_ZTV7ee54462[3]), 3,10},
+ {&(_ZTV7ee54462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54462[];
+extern VTBL_ENTRY _ZTV7ee54462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54462[];
+static VTBL_ENTRY alt_thunk_names1182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544623barEv,_ZTv0_n16_N7ee544623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544623barEv,_ZThn8_N7ee544623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54462 = { "ee54462", // class name
+ bases_ee54462, 4,
+ &(vtc_ee54462[0]), // expected_vtbl_contents
+ &(vtt_ee54462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54462),2, //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 ee64462 : dd4462 {
+ int e;
+ virtual void foo(); // _ZN7ee644623fooEv
+ virtual void bar(); // _ZN7ee644623barEv
+ ~ee64462(); // tgen
+ ee64462(); // tgen
+};
+//SIG(1 ee64462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64462 ::foo(){vfunc_called(this, "_ZN7ee644623fooEv");}
+void ee64462 ::bar(){vfunc_called(this, "_ZN7ee644623barEv");}
+ee64462 ::~ee64462(){ note_dtor("ee64462", this);} // tgen
+ee64462 ::ee64462(){ note_ctor("ee64462", this);} // tgen
+
+static void Test_ee64462()
+{
+ extern Class_Descriptor cd_ee64462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64462, buf);
+ ee64462 *dp, &lv = *(dp=new (buf) ee64462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), 0, "ee64462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), 0, "ee64462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), 0, "ee64462");
+ check_base_class_offset(lv, (dd4462*), 0, "ee64462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64462.e");
+ test_class_info(&lv, &cd_ee64462);
+ dp->~ee64462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64462(Test_ee64462, "ee64462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64462C1Ev();
+extern void _ZN7ee64462D1Ev();
+Name_Map name_map_ee64462[] = {
+ NSPAIR(_ZN7ee64462C1Ev),
+ NSPAIR(_ZN7ee64462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee64462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64462[];
+extern void _ZN7ee644623fooEv();
+extern void _ZN7ee644623barEv();
+static VTBL_ENTRY vtc_ee64462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64462[0]),
+ (VTBL_ENTRY)&_ZN7ee644623fooEv,
+ (VTBL_ENTRY)&_ZN7ee644623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64462[];
+extern VTBL_ENTRY _ZTV7ee64462[];
+Class_Descriptor cd_ee64462 = { "ee64462", // class name
+ bases_ee64462, 4,
+ &(vtc_ee64462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64462),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 ee74462 : virtual dd4462 {
+ int e;
+ virtual void foo(); // _ZN7ee744623fooEv
+ virtual void bar(); // _ZN7ee744623barEv
+ ~ee74462(); // tgen
+ ee74462(); // tgen
+};
+//SIG(1 ee74462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74462 ::foo(){vfunc_called(this, "_ZN7ee744623fooEv");}
+void ee74462 ::bar(){vfunc_called(this, "_ZN7ee744623barEv");}
+ee74462 ::~ee74462(){ note_dtor("ee74462", this);} // tgen
+ee74462 ::ee74462(){ note_ctor("ee74462", this);} // tgen
+
+static void Test_ee74462()
+{
+ extern Class_Descriptor cd_ee74462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74462, buf);
+ ee74462 *dp, &lv = *(dp=new (buf) ee74462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee74462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd4462*), ABISELECT(16,8), "ee74462");
+ check_base_class_offset(lv, (cc462*)(dd4462*), ABISELECT(16,8), "ee74462");
+ check_base_class_offset(lv, (dd4462*), ABISELECT(16,8), "ee74462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74462.e");
+ test_class_info(&lv, &cd_ee74462);
+ dp->~ee74462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74462(Test_ee74462, "ee74462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74462C1Ev();
+extern void _ZN7ee74462D1Ev();
+Name_Map name_map_ee74462[] = {
+ NSPAIR(_ZN7ee74462C1Ev),
+ NSPAIR(_ZN7ee74462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd4462;
+extern VTBL_ENTRY _ZTI6dd4462[];
+extern VTBL_ENTRY _ZTV6dd4462[];
+static Base_Class bases_ee74462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4462, ABISELECT(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 _ZTI7ee74462[];
+extern void _ZN7ee744623fooEv();
+extern void _ZN7ee744623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744623fooEv,_ZTv0_n12_N7ee744623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744623fooEv,_ZThn8_N7ee744623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744623barEv,_ZTv0_n16_N7ee744623barEv)();
+extern void ABISELECT(_ZThn16_N7ee744623barEv,_ZThn8_N7ee744623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74462[0]),
+ (VTBL_ENTRY)&_ZN7ee744623fooEv,
+ (VTBL_ENTRY)&_ZN7ee744623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744623fooEv,_ZTv0_n12_N7ee744623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744623barEv,_ZTv0_n16_N7ee744623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74462[];
+static VTT_ENTRY vtt_ee74462[] = {
+ {&(_ZTV7ee74462[3]), 3,11},
+ {&(_ZTV7ee74462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74462[];
+extern VTBL_ENTRY _ZTV7ee74462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74462[];
+static VTBL_ENTRY alt_thunk_names1183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744623barEv,_ZTv0_n16_N7ee744623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744623barEv,_ZThn8_N7ee744623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744623fooEv,_ZTv0_n12_N7ee744623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744623fooEv,_ZThn8_N7ee744623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74462 = { "ee74462", // class name
+ bases_ee74462, 4,
+ &(vtc_ee74462[0]), // expected_vtbl_contents
+ &(vtt_ee74462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74462),2, //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 dd5462 : virtual cc462 {
+ int d;
+ virtual void bar(); // _ZN6dd54623barEv
+ ~dd5462(); // tgen
+ dd5462(); // tgen
+};
+//SIG(-1 dd5462) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5462 ::bar(){vfunc_called(this, "_ZN6dd54623barEv");}
+dd5462 ::~dd5462(){ note_dtor("dd5462", this);} // tgen
+dd5462 ::dd5462(){ note_ctor("dd5462", this);} // tgen
+
+static void Test_dd5462()
+{
+ extern Class_Descriptor cd_dd5462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5462, buf);
+ dd5462 *dp, &lv = *(dp=new (buf) dd5462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,8), "dd5462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,8), "dd5462");
+ check_base_class_offset(lv, (cc462*), ABISELECT(16,8), "dd5462");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5462.d");
+ test_class_info(&lv, &cd_dd5462);
+ dp->~dd5462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5462(Test_dd5462, "dd5462", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5462C1Ev();
+extern void _ZN6dd5462D1Ev();
+Name_Map name_map_dd5462[] = {
+ NSPAIR(_ZN6dd5462C1Ev),
+ NSPAIR(_ZN6dd5462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd5462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(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 _ZTI6dd5462[];
+extern void _ZN6dd54623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5462[];
+static VTT_ENTRY vtt_dd5462[] = {
+ {&(_ZTV6dd5462[3]), 3,10},
+ {&(_ZTV6dd5462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static VTBL_ENTRY alt_thunk_names1184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5462 = { "dd5462", // class name
+ bases_dd5462, 3,
+ &(vtc_dd5462[0]), // expected_vtbl_contents
+ &(vtt_dd5462[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5462),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05462 : dd5462 {
+ int e;
+ ~ee05462(); // tgen
+ ee05462(); // tgen
+};
+//SIG(1 ee05462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05462 ::~ee05462(){ note_dtor("ee05462", this);} // tgen
+ee05462 ::ee05462(){ note_ctor("ee05462", this);} // tgen
+
+static void Test_ee05462()
+{
+ extern Class_Descriptor cd_ee05462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05462, buf);
+ ee05462 *dp, &lv = *(dp=new (buf) ee05462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee05462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee05462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(16,12), "ee05462");
+ check_base_class_offset(lv, (dd5462*), 0, "ee05462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05462.e");
+ test_class_info(&lv, &cd_ee05462);
+ dp->~ee05462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05462(Test_ee05462, "ee05462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05462C1Ev();
+extern void _ZN7ee05462D1Ev();
+Name_Map name_map_ee05462[] = {
+ NSPAIR(_ZN7ee05462C1Ev),
+ NSPAIR(_ZN7ee05462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee05462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05462[];
+extern void _ZN6dd54623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee05462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee05462[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee05462[] = {
+ {&(_ZTV7ee05462[3]), 3,10},
+ {&(_tg__ZTV6dd5462__7ee05462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee05462[4]), 4,6},
+ {&(_ZTV7ee05462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05462[];
+extern VTBL_ENTRY _ZTV7ee05462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05462[];
+static VTBL_ENTRY alt_thunk_names1185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05462 = { "ee05462", // class name
+ bases_ee05462, 4,
+ &(vtc_ee05462[0]), // expected_vtbl_contents
+ &(vtt_ee05462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05462),4, //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 ee15462 : virtual dd5462 {
+ int e;
+ ~ee15462(); // tgen
+ ee15462(); // tgen
+};
+//SIG(1 ee15462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15462 ::~ee15462(){ note_dtor("ee15462", this);} // tgen
+ee15462 ::ee15462(){ note_ctor("ee15462", this);} // tgen
+
+static void Test_ee15462()
+{
+ extern Class_Descriptor cd_ee15462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15462, buf);
+ ee15462 *dp, &lv = *(dp=new (buf) ee15462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee15462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee15462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(32,16), "ee15462");
+ check_base_class_offset(lv, (dd5462*), ABISELECT(16,8), "ee15462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15462.e");
+ test_class_info(&lv, &cd_ee15462);
+ dp->~ee15462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15462(Test_ee15462, "ee15462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15462C1Ev();
+extern void _ZN7ee15462D1Ev();
+Name_Map name_map_ee15462[] = {
+ NSPAIR(_ZN7ee15462C1Ev),
+ NSPAIR(_ZN7ee15462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee15462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, ABISELECT(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 _ZTI7ee15462[];
+extern void _ZN6dd54623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15462[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee15462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee15462[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee15462[] = {
+ {&(_ZTV7ee15462[4]), 4,15},
+ {&(_ZTV7ee15462[8]), 8,15},
+ {&(_ZTV7ee15462[13]), 13,15},
+ {&(_tg__ZTV6dd5462__7ee15462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee15462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15462[];
+extern VTBL_ENTRY _ZTV7ee15462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15462[];
+static VTBL_ENTRY alt_thunk_names1186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15462 = { "ee15462", // class name
+ bases_ee15462, 4,
+ &(vtc_ee15462[0]), // expected_vtbl_contents
+ &(vtt_ee15462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15462),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15462),5, //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 ee25462 : dd5462 {
+ int e;
+ virtual void foo(); // _ZN7ee254623fooEv
+ ~ee25462(); // tgen
+ ee25462(); // tgen
+};
+//SIG(1 ee25462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25462 ::foo(){vfunc_called(this, "_ZN7ee254623fooEv");}
+ee25462 ::~ee25462(){ note_dtor("ee25462", this);} // tgen
+ee25462 ::ee25462(){ note_ctor("ee25462", this);} // tgen
+
+static void Test_ee25462()
+{
+ extern Class_Descriptor cd_ee25462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25462, buf);
+ ee25462 *dp, &lv = *(dp=new (buf) ee25462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee25462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee25462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(16,12), "ee25462");
+ check_base_class_offset(lv, (dd5462*), 0, "ee25462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25462.e");
+ test_class_info(&lv, &cd_ee25462);
+ dp->~ee25462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25462(Test_ee25462, "ee25462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25462C1Ev();
+extern void _ZN7ee25462D1Ev();
+Name_Map name_map_ee25462[] = {
+ NSPAIR(_ZN7ee25462C1Ev),
+ NSPAIR(_ZN7ee25462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee25462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25462[];
+extern void _ZN6dd54623barEv();
+extern void _ZN7ee254623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254623fooEv,_ZTv0_n12_N7ee254623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254623fooEv,_ZThn12_N7ee254623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+ (VTBL_ENTRY)&_ZN7ee254623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254623fooEv,_ZTv0_n12_N7ee254623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee25462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee25462[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee25462[] = {
+ {&(_ZTV7ee25462[3]), 3,11},
+ {&(_tg__ZTV6dd5462__7ee25462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee25462[4]), 4,6},
+ {&(_ZTV7ee25462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25462[];
+extern VTBL_ENTRY _ZTV7ee25462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25462[];
+static VTBL_ENTRY alt_thunk_names1187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254623fooEv,_ZTv0_n12_N7ee254623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254623fooEv,_ZThn12_N7ee254623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25462 = { "ee25462", // class name
+ bases_ee25462, 4,
+ &(vtc_ee25462[0]), // expected_vtbl_contents
+ &(vtt_ee25462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25462),4, //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 ee35462 : virtual dd5462 {
+ int e;
+ virtual void foo(); // _ZN7ee354623fooEv
+ ~ee35462(); // tgen
+ ee35462(); // tgen
+};
+//SIG(1 ee35462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35462 ::foo(){vfunc_called(this, "_ZN7ee354623fooEv");}
+ee35462 ::~ee35462(){ note_dtor("ee35462", this);} // tgen
+ee35462 ::ee35462(){ note_ctor("ee35462", this);} // tgen
+
+static void Test_ee35462()
+{
+ extern Class_Descriptor cd_ee35462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35462, buf);
+ ee35462 *dp, &lv = *(dp=new (buf) ee35462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee35462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee35462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(32,16), "ee35462");
+ check_base_class_offset(lv, (dd5462*), ABISELECT(16,8), "ee35462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35462.e");
+ test_class_info(&lv, &cd_ee35462);
+ dp->~ee35462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35462(Test_ee35462, "ee35462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35462C1Ev();
+extern void _ZN7ee35462D1Ev();
+Name_Map name_map_ee35462[] = {
+ NSPAIR(_ZN7ee35462C1Ev),
+ NSPAIR(_ZN7ee35462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee35462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, ABISELECT(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 _ZTI7ee35462[];
+extern void _ZN7ee354623fooEv();
+extern void _ZN6dd54623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354623fooEv,_ZTv0_n12_N7ee354623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354623fooEv,_ZThn16_N7ee354623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35462[0]),
+ (VTBL_ENTRY)&_ZN7ee354623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354623fooEv,_ZTv0_n12_N7ee354623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee35462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee35462[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee35462[] = {
+ {&(_ZTV7ee35462[4]), 4,16},
+ {&(_ZTV7ee35462[9]), 9,16},
+ {&(_ZTV7ee35462[14]), 14,16},
+ {&(_tg__ZTV6dd5462__7ee35462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee35462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35462[];
+extern VTBL_ENTRY _ZTV7ee35462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35462[];
+static VTBL_ENTRY alt_thunk_names1188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354623fooEv,_ZTv0_n12_N7ee354623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354623fooEv,_ZThn16_N7ee354623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35462 = { "ee35462", // class name
+ bases_ee35462, 4,
+ &(vtc_ee35462[0]), // expected_vtbl_contents
+ &(vtt_ee35462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35462),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35462),5, //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 ee45462 : dd5462 {
+ int e;
+ virtual void bar(); // _ZN7ee454623barEv
+ ~ee45462(); // tgen
+ ee45462(); // tgen
+};
+//SIG(1 ee45462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45462 ::bar(){vfunc_called(this, "_ZN7ee454623barEv");}
+ee45462 ::~ee45462(){ note_dtor("ee45462", this);} // tgen
+ee45462 ::ee45462(){ note_ctor("ee45462", this);} // tgen
+
+static void Test_ee45462()
+{
+ extern Class_Descriptor cd_ee45462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45462, buf);
+ ee45462 *dp, &lv = *(dp=new (buf) ee45462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee45462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee45462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(16,12), "ee45462");
+ check_base_class_offset(lv, (dd5462*), 0, "ee45462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45462.e");
+ test_class_info(&lv, &cd_ee45462);
+ dp->~ee45462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45462(Test_ee45462, "ee45462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45462C1Ev();
+extern void _ZN7ee45462D1Ev();
+Name_Map name_map_ee45462[] = {
+ NSPAIR(_ZN7ee45462C1Ev),
+ NSPAIR(_ZN7ee45462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee45462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45462[];
+extern void _ZN7ee454623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454623barEv,_ZTv0_n16_N7ee454623barEv)();
+extern void ABISELECT(_ZThn16_N7ee454623barEv,_ZThn12_N7ee454623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45462[0]),
+ (VTBL_ENTRY)&_ZN7ee454623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454623barEv,_ZTv0_n16_N7ee454623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee45462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee45462[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee45462[] = {
+ {&(_ZTV7ee45462[3]), 3,10},
+ {&(_tg__ZTV6dd5462__7ee45462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee45462[4]), 4,6},
+ {&(_ZTV7ee45462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45462[];
+extern VTBL_ENTRY _ZTV7ee45462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45462[];
+static VTBL_ENTRY alt_thunk_names1189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454623barEv,_ZTv0_n16_N7ee454623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454623barEv,_ZThn12_N7ee454623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45462 = { "ee45462", // class name
+ bases_ee45462, 4,
+ &(vtc_ee45462[0]), // expected_vtbl_contents
+ &(vtt_ee45462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45462),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55462 : virtual dd5462 {
+ int e;
+ virtual void bar(); // _ZN7ee554623barEv
+ ~ee55462(); // tgen
+ ee55462(); // tgen
+};
+//SIG(1 ee55462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55462 ::bar(){vfunc_called(this, "_ZN7ee554623barEv");}
+ee55462 ::~ee55462(){ note_dtor("ee55462", this);} // tgen
+ee55462 ::ee55462(){ note_ctor("ee55462", this);} // tgen
+
+static void Test_ee55462()
+{
+ extern Class_Descriptor cd_ee55462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55462, buf);
+ ee55462 *dp, &lv = *(dp=new (buf) ee55462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee55462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee55462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(32,16), "ee55462");
+ check_base_class_offset(lv, (dd5462*), ABISELECT(16,8), "ee55462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55462.e");
+ test_class_info(&lv, &cd_ee55462);
+ dp->~ee55462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55462(Test_ee55462, "ee55462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55462C1Ev();
+extern void _ZN7ee55462D1Ev();
+Name_Map name_map_ee55462[] = {
+ NSPAIR(_ZN7ee55462C1Ev),
+ NSPAIR(_ZN7ee55462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee55462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, ABISELECT(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 _ZTI7ee55462[];
+extern void _ZN7ee554623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554623barEv,_ZTv0_n16_N7ee554623barEv)();
+extern void ABISELECT(_ZThn16_N7ee554623barEv,_ZThn8_N7ee554623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554623barEv,_ZTv0_n16_N7ee554623barEv)();
+extern void ABISELECT(_ZThn32_N7ee554623barEv,_ZThn16_N7ee554623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55462[0]),
+ (VTBL_ENTRY)&_ZN7ee554623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554623barEv,_ZTv0_n16_N7ee554623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554623barEv,_ZTv0_n16_N7ee554623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee55462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee55462[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee55462[] = {
+ {&(_ZTV7ee55462[4]), 4,16},
+ {&(_ZTV7ee55462[9]), 9,16},
+ {&(_ZTV7ee55462[14]), 14,16},
+ {&(_tg__ZTV6dd5462__7ee55462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee55462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55462[];
+extern VTBL_ENTRY _ZTV7ee55462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55462[];
+static VTBL_ENTRY alt_thunk_names1190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554623barEv,_ZTv0_n16_N7ee554623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554623barEv,_ZThn16_N7ee554623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554623barEv,_ZThn8_N7ee554623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55462 = { "ee55462", // class name
+ bases_ee55462, 4,
+ &(vtc_ee55462[0]), // expected_vtbl_contents
+ &(vtt_ee55462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55462),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55462),5, //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 ee65462 : dd5462 {
+ int e;
+ virtual void foo(); // _ZN7ee654623fooEv
+ virtual void bar(); // _ZN7ee654623barEv
+ ~ee65462(); // tgen
+ ee65462(); // tgen
+};
+//SIG(1 ee65462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65462 ::foo(){vfunc_called(this, "_ZN7ee654623fooEv");}
+void ee65462 ::bar(){vfunc_called(this, "_ZN7ee654623barEv");}
+ee65462 ::~ee65462(){ note_dtor("ee65462", this);} // tgen
+ee65462 ::ee65462(){ note_ctor("ee65462", this);} // tgen
+
+static void Test_ee65462()
+{
+ extern Class_Descriptor cd_ee65462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65462, buf);
+ ee65462 *dp, &lv = *(dp=new (buf) ee65462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee65462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee65462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(16,12), "ee65462");
+ check_base_class_offset(lv, (dd5462*), 0, "ee65462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65462.e");
+ test_class_info(&lv, &cd_ee65462);
+ dp->~ee65462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65462(Test_ee65462, "ee65462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65462C1Ev();
+extern void _ZN7ee65462D1Ev();
+Name_Map name_map_ee65462[] = {
+ NSPAIR(_ZN7ee65462C1Ev),
+ NSPAIR(_ZN7ee65462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee65462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65462[];
+extern void _ZN7ee654623barEv();
+extern void _ZN7ee654623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654623fooEv,_ZTv0_n12_N7ee654623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654623fooEv,_ZThn12_N7ee654623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654623barEv,_ZTv0_n16_N7ee654623barEv)();
+extern void ABISELECT(_ZThn16_N7ee654623barEv,_ZThn12_N7ee654623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65462[0]),
+ (VTBL_ENTRY)&_ZN7ee654623barEv,
+ (VTBL_ENTRY)&_ZN7ee654623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654623fooEv,_ZTv0_n12_N7ee654623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654623barEv,_ZTv0_n16_N7ee654623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee65462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee65462[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee65462[] = {
+ {&(_ZTV7ee65462[3]), 3,11},
+ {&(_tg__ZTV6dd5462__7ee65462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee65462[4]), 4,6},
+ {&(_ZTV7ee65462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65462[];
+extern VTBL_ENTRY _ZTV7ee65462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65462[];
+static VTBL_ENTRY alt_thunk_names1191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn12_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654623barEv,_ZTv0_n16_N7ee654623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654623barEv,_ZThn12_N7ee654623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654623fooEv,_ZTv0_n12_N7ee654623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654623fooEv,_ZThn12_N7ee654623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65462 = { "ee65462", // class name
+ bases_ee65462, 4,
+ &(vtc_ee65462[0]), // expected_vtbl_contents
+ &(vtt_ee65462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65462),4, //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 ee75462 : virtual dd5462 {
+ int e;
+ virtual void foo(); // _ZN7ee754623fooEv
+ virtual void bar(); // _ZN7ee754623barEv
+ ~ee75462(); // tgen
+ ee75462(); // tgen
+};
+//SIG(1 ee75462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75462 ::foo(){vfunc_called(this, "_ZN7ee754623fooEv");}
+void ee75462 ::bar(){vfunc_called(this, "_ZN7ee754623barEv");}
+ee75462 ::~ee75462(){ note_dtor("ee75462", this);} // tgen
+ee75462 ::ee75462(){ note_ctor("ee75462", this);} // tgen
+
+static void Test_ee75462()
+{
+ extern Class_Descriptor cd_ee75462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75462, buf);
+ ee75462 *dp, &lv = *(dp=new (buf) ee75462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee75462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee75462");
+ check_base_class_offset(lv, (cc462*)(dd5462*), ABISELECT(32,16), "ee75462");
+ check_base_class_offset(lv, (dd5462*), ABISELECT(16,8), "ee75462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75462.e");
+ test_class_info(&lv, &cd_ee75462);
+ dp->~ee75462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75462(Test_ee75462, "ee75462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75462C1Ev();
+extern void _ZN7ee75462D1Ev();
+Name_Map name_map_ee75462[] = {
+ NSPAIR(_ZN7ee75462C1Ev),
+ NSPAIR(_ZN7ee75462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd5462;
+extern VTBL_ENTRY _ZTI6dd5462[];
+extern VTBL_ENTRY _ZTV6dd5462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5462[];
+static Base_Class bases_ee75462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd5462, 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 _ZTI7ee75462[];
+extern void _ZN7ee754623fooEv();
+extern void _ZN7ee754623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754623barEv,_ZTv0_n16_N7ee754623barEv)();
+extern void ABISELECT(_ZThn16_N7ee754623barEv,_ZThn8_N7ee754623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754623fooEv,_ZTv0_n12_N7ee754623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754623fooEv,_ZThn16_N7ee754623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754623barEv,_ZTv0_n16_N7ee754623barEv)();
+extern void ABISELECT(_ZThn32_N7ee754623barEv,_ZThn16_N7ee754623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75462[0]),
+ (VTBL_ENTRY)&_ZN7ee754623fooEv,
+ (VTBL_ENTRY)&_ZN7ee754623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754623barEv,_ZTv0_n16_N7ee754623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754623fooEv,_ZTv0_n12_N7ee754623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754623barEv,_ZTv0_n16_N7ee754623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75462[];
+extern void _ZN6dd54623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5462__7ee75462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN6dd54623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv)();
+extern void ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd5462__7ee75462[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5462[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv),
+};
+static VTT_ENTRY vtt_ee75462[] = {
+ {&(_ZTV7ee75462[4]), 4,17},
+ {&(_ZTV7ee75462[10]), 10,17},
+ {&(_ZTV7ee75462[15]), 15,17},
+ {&(_tg__ZTV6dd5462__7ee75462[3]), 3,4},
+ {&(_tg__ZTV5cc462__6dd5462__7ee75462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75462[];
+extern VTBL_ENTRY _ZTV7ee75462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75462[];
+static VTBL_ENTRY alt_thunk_names1192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54623barEv,_ZTv0_n16_N6dd54623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54623barEv,_ZThn8_N6dd54623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754623fooEv,_ZTv0_n12_N7ee754623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754623fooEv,_ZThn16_N7ee754623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754623barEv,_ZTv0_n16_N7ee754623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754623barEv,_ZThn16_N7ee754623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754623barEv,_ZThn8_N7ee754623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75462 = { "ee75462", // class name
+ bases_ee75462, 4,
+ &(vtc_ee75462[0]), // expected_vtbl_contents
+ &(vtt_ee75462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75462),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75462),5, //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 dd6462 : cc462 {
+ int d;
+ virtual void bar(); // _ZN6dd64623barEv
+ virtual void foo(); // _ZN6dd64623fooEv
+ ~dd6462(); // tgen
+ dd6462(); // tgen
+};
+//SIG(-1 dd6462) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6462 ::bar(){vfunc_called(this, "_ZN6dd64623barEv");}
+void dd6462 ::foo(){vfunc_called(this, "_ZN6dd64623fooEv");}
+dd6462 ::~dd6462(){ note_dtor("dd6462", this);} // tgen
+dd6462 ::dd6462(){ note_ctor("dd6462", this);} // tgen
+
+static void Test_dd6462()
+{
+ extern Class_Descriptor cd_dd6462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6462, buf);
+ dd6462 *dp, &lv = *(dp=new (buf) dd6462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), 0, "dd6462");
+ check_base_class_offset(lv, (bb62*)(cc462*), 0, "dd6462");
+ check_base_class_offset(lv, (cc462*), 0, "dd6462");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6462.d");
+ test_class_info(&lv, &cd_dd6462);
+ dp->~dd6462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6462(Test_dd6462, "dd6462", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6462C1Ev();
+extern void _ZN6dd6462D1Ev();
+Name_Map name_map_dd6462[] = {
+ NSPAIR(_ZN6dd6462C1Ev),
+ NSPAIR(_ZN6dd6462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd6462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6462[];
+extern void _ZN6dd64623fooEv();
+extern void _ZN6dd64623barEv();
+static VTBL_ENTRY vtc_dd6462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6462[0]),
+ (VTBL_ENTRY)&_ZN6dd64623fooEv,
+ (VTBL_ENTRY)&_ZN6dd64623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+Class_Descriptor cd_dd6462 = { "dd6462", // class name
+ bases_dd6462, 3,
+ &(vtc_dd6462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6462),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 ee06462 : dd6462 {
+ int e;
+ ~ee06462(); // tgen
+ ee06462(); // tgen
+};
+//SIG(1 ee06462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06462 ::~ee06462(){ note_dtor("ee06462", this);} // tgen
+ee06462 ::ee06462(){ note_ctor("ee06462", this);} // tgen
+
+static void Test_ee06462()
+{
+ extern Class_Descriptor cd_ee06462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06462, buf);
+ ee06462 *dp, &lv = *(dp=new (buf) ee06462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), 0, "ee06462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), 0, "ee06462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), 0, "ee06462");
+ check_base_class_offset(lv, (dd6462*), 0, "ee06462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06462.e");
+ test_class_info(&lv, &cd_ee06462);
+ dp->~ee06462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06462(Test_ee06462, "ee06462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06462C1Ev();
+extern void _ZN7ee06462D1Ev();
+Name_Map name_map_ee06462[] = {
+ NSPAIR(_ZN7ee06462C1Ev),
+ NSPAIR(_ZN7ee06462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee06462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, 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 _ZTI7ee06462[];
+extern void _ZN6dd64623fooEv();
+extern void _ZN6dd64623barEv();
+static VTBL_ENTRY vtc_ee06462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06462[0]),
+ (VTBL_ENTRY)&_ZN6dd64623fooEv,
+ (VTBL_ENTRY)&_ZN6dd64623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06462[];
+extern VTBL_ENTRY _ZTV7ee06462[];
+Class_Descriptor cd_ee06462 = { "ee06462", // class name
+ bases_ee06462, 4,
+ &(vtc_ee06462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06462),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 ee16462 : virtual dd6462 {
+ int e;
+ ~ee16462(); // tgen
+ ee16462(); // tgen
+};
+//SIG(1 ee16462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16462 ::~ee16462(){ note_dtor("ee16462", this);} // tgen
+ee16462 ::ee16462(){ note_ctor("ee16462", this);} // tgen
+
+static void Test_ee16462()
+{
+ extern Class_Descriptor cd_ee16462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16462, buf);
+ ee16462 *dp, &lv = *(dp=new (buf) ee16462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee16462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee16462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), ABISELECT(16,8), "ee16462");
+ check_base_class_offset(lv, (dd6462*), ABISELECT(16,8), "ee16462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16462.e");
+ test_class_info(&lv, &cd_ee16462);
+ dp->~ee16462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16462(Test_ee16462, "ee16462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16462C1Ev();
+extern void _ZN7ee16462D1Ev();
+Name_Map name_map_ee16462[] = {
+ NSPAIR(_ZN7ee16462C1Ev),
+ NSPAIR(_ZN7ee16462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee16462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, 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 _ZTI7ee16462[];
+extern void _ZN6dd64623fooEv();
+extern void _ZN6dd64623barEv();
+static VTBL_ENTRY vtc_ee16462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16462[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16462[0]),
+ (VTBL_ENTRY)&_ZN6dd64623fooEv,
+ (VTBL_ENTRY)&_ZN6dd64623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16462[];
+static VTT_ENTRY vtt_ee16462[] = {
+ {&(_ZTV7ee16462[3]), 3,9},
+ {&(_ZTV7ee16462[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16462[];
+extern VTBL_ENTRY _ZTV7ee16462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16462[];
+Class_Descriptor cd_ee16462 = { "ee16462", // class name
+ bases_ee16462, 4,
+ &(vtc_ee16462[0]), // expected_vtbl_contents
+ &(vtt_ee16462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16462),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16462),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 ee26462 : dd6462 {
+ int e;
+ virtual void foo(); // _ZN7ee264623fooEv
+ ~ee26462(); // tgen
+ ee26462(); // tgen
+};
+//SIG(1 ee26462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26462 ::foo(){vfunc_called(this, "_ZN7ee264623fooEv");}
+ee26462 ::~ee26462(){ note_dtor("ee26462", this);} // tgen
+ee26462 ::ee26462(){ note_ctor("ee26462", this);} // tgen
+
+static void Test_ee26462()
+{
+ extern Class_Descriptor cd_ee26462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26462, buf);
+ ee26462 *dp, &lv = *(dp=new (buf) ee26462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), 0, "ee26462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), 0, "ee26462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), 0, "ee26462");
+ check_base_class_offset(lv, (dd6462*), 0, "ee26462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26462.e");
+ test_class_info(&lv, &cd_ee26462);
+ dp->~ee26462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26462(Test_ee26462, "ee26462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26462C1Ev();
+extern void _ZN7ee26462D1Ev();
+Name_Map name_map_ee26462[] = {
+ NSPAIR(_ZN7ee26462C1Ev),
+ NSPAIR(_ZN7ee26462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee26462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26462[];
+extern void _ZN7ee264623fooEv();
+extern void _ZN6dd64623barEv();
+static VTBL_ENTRY vtc_ee26462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26462[0]),
+ (VTBL_ENTRY)&_ZN7ee264623fooEv,
+ (VTBL_ENTRY)&_ZN6dd64623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26462[];
+extern VTBL_ENTRY _ZTV7ee26462[];
+Class_Descriptor cd_ee26462 = { "ee26462", // class name
+ bases_ee26462, 4,
+ &(vtc_ee26462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26462),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 ee36462 : virtual dd6462 {
+ int e;
+ virtual void foo(); // _ZN7ee364623fooEv
+ ~ee36462(); // tgen
+ ee36462(); // tgen
+};
+//SIG(1 ee36462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36462 ::foo(){vfunc_called(this, "_ZN7ee364623fooEv");}
+ee36462 ::~ee36462(){ note_dtor("ee36462", this);} // tgen
+ee36462 ::ee36462(){ note_ctor("ee36462", this);} // tgen
+
+static void Test_ee36462()
+{
+ extern Class_Descriptor cd_ee36462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36462, buf);
+ ee36462 *dp, &lv = *(dp=new (buf) ee36462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee36462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee36462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), ABISELECT(16,8), "ee36462");
+ check_base_class_offset(lv, (dd6462*), ABISELECT(16,8), "ee36462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36462.e");
+ test_class_info(&lv, &cd_ee36462);
+ dp->~ee36462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36462(Test_ee36462, "ee36462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36462C1Ev();
+extern void _ZN7ee36462D1Ev();
+Name_Map name_map_ee36462[] = {
+ NSPAIR(_ZN7ee36462C1Ev),
+ NSPAIR(_ZN7ee36462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee36462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, ABISELECT(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 _ZTI7ee36462[];
+extern void _ZN7ee364623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364623fooEv,_ZTv0_n12_N7ee364623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364623fooEv,_ZThn8_N7ee364623fooEv)() __attribute__((weak));
+extern void _ZN6dd64623barEv();
+static VTBL_ENTRY vtc_ee36462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36462[0]),
+ (VTBL_ENTRY)&_ZN7ee364623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364623fooEv,_ZTv0_n12_N7ee364623fooEv),
+ (VTBL_ENTRY)&_ZN6dd64623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36462[];
+static VTT_ENTRY vtt_ee36462[] = {
+ {&(_ZTV7ee36462[3]), 3,10},
+ {&(_ZTV7ee36462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36462[];
+extern VTBL_ENTRY _ZTV7ee36462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36462[];
+static VTBL_ENTRY alt_thunk_names1193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364623fooEv,_ZTv0_n12_N7ee364623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364623fooEv,_ZThn8_N7ee364623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36462 = { "ee36462", // class name
+ bases_ee36462, 4,
+ &(vtc_ee36462[0]), // expected_vtbl_contents
+ &(vtt_ee36462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36462),2, //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 ee46462 : dd6462 {
+ int e;
+ virtual void bar(); // _ZN7ee464623barEv
+ ~ee46462(); // tgen
+ ee46462(); // tgen
+};
+//SIG(1 ee46462) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46462 ::bar(){vfunc_called(this, "_ZN7ee464623barEv");}
+ee46462 ::~ee46462(){ note_dtor("ee46462", this);} // tgen
+ee46462 ::ee46462(){ note_ctor("ee46462", this);} // tgen
+
+static void Test_ee46462()
+{
+ extern Class_Descriptor cd_ee46462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46462, buf);
+ ee46462 *dp, &lv = *(dp=new (buf) ee46462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), 0, "ee46462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), 0, "ee46462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), 0, "ee46462");
+ check_base_class_offset(lv, (dd6462*), 0, "ee46462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46462.e");
+ test_class_info(&lv, &cd_ee46462);
+ dp->~ee46462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46462(Test_ee46462, "ee46462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46462C1Ev();
+extern void _ZN7ee46462D1Ev();
+Name_Map name_map_ee46462[] = {
+ NSPAIR(_ZN7ee46462C1Ev),
+ NSPAIR(_ZN7ee46462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee46462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46462[];
+extern void _ZN6dd64623fooEv();
+extern void _ZN7ee464623barEv();
+static VTBL_ENTRY vtc_ee46462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46462[0]),
+ (VTBL_ENTRY)&_ZN6dd64623fooEv,
+ (VTBL_ENTRY)&_ZN7ee464623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46462[];
+extern VTBL_ENTRY _ZTV7ee46462[];
+Class_Descriptor cd_ee46462 = { "ee46462", // class name
+ bases_ee46462, 4,
+ &(vtc_ee46462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46462),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 ee56462 : virtual dd6462 {
+ int e;
+ virtual void bar(); // _ZN7ee564623barEv
+ ~ee56462(); // tgen
+ ee56462(); // tgen
+};
+//SIG(1 ee56462) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56462 ::bar(){vfunc_called(this, "_ZN7ee564623barEv");}
+ee56462 ::~ee56462(){ note_dtor("ee56462", this);} // tgen
+ee56462 ::ee56462(){ note_ctor("ee56462", this);} // tgen
+
+static void Test_ee56462()
+{
+ extern Class_Descriptor cd_ee56462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56462, buf);
+ ee56462 *dp, &lv = *(dp=new (buf) ee56462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee56462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee56462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), ABISELECT(16,8), "ee56462");
+ check_base_class_offset(lv, (dd6462*), ABISELECT(16,8), "ee56462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56462.e");
+ test_class_info(&lv, &cd_ee56462);
+ dp->~ee56462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56462(Test_ee56462, "ee56462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56462C1Ev();
+extern void _ZN7ee56462D1Ev();
+Name_Map name_map_ee56462[] = {
+ NSPAIR(_ZN7ee56462C1Ev),
+ NSPAIR(_ZN7ee56462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee56462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, ABISELECT(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 _ZTI7ee56462[];
+extern void _ZN7ee564623barEv();
+extern void _ZN6dd64623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564623barEv,_ZTv0_n16_N7ee564623barEv)();
+extern void ABISELECT(_ZThn16_N7ee564623barEv,_ZThn8_N7ee564623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56462[0]),
+ (VTBL_ENTRY)&_ZN7ee564623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56462[0]),
+ (VTBL_ENTRY)&_ZN6dd64623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564623barEv,_ZTv0_n16_N7ee564623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56462[];
+static VTT_ENTRY vtt_ee56462[] = {
+ {&(_ZTV7ee56462[3]), 3,10},
+ {&(_ZTV7ee56462[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56462[];
+extern VTBL_ENTRY _ZTV7ee56462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56462[];
+static VTBL_ENTRY alt_thunk_names1194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564623barEv,_ZTv0_n16_N7ee564623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564623barEv,_ZThn8_N7ee564623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56462 = { "ee56462", // class name
+ bases_ee56462, 4,
+ &(vtc_ee56462[0]), // expected_vtbl_contents
+ &(vtt_ee56462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56462),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56462),2, //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 ee66462 : dd6462 {
+ int e;
+ virtual void foo(); // _ZN7ee664623fooEv
+ virtual void bar(); // _ZN7ee664623barEv
+ ~ee66462(); // tgen
+ ee66462(); // tgen
+};
+//SIG(1 ee66462) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66462 ::foo(){vfunc_called(this, "_ZN7ee664623fooEv");}
+void ee66462 ::bar(){vfunc_called(this, "_ZN7ee664623barEv");}
+ee66462 ::~ee66462(){ note_dtor("ee66462", this);} // tgen
+ee66462 ::ee66462(){ note_ctor("ee66462", this);} // tgen
+
+static void Test_ee66462()
+{
+ extern Class_Descriptor cd_ee66462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66462, buf);
+ ee66462 *dp, &lv = *(dp=new (buf) ee66462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), 0, "ee66462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), 0, "ee66462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), 0, "ee66462");
+ check_base_class_offset(lv, (dd6462*), 0, "ee66462");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66462.e");
+ test_class_info(&lv, &cd_ee66462);
+ dp->~ee66462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66462(Test_ee66462, "ee66462", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66462C1Ev();
+extern void _ZN7ee66462D1Ev();
+Name_Map name_map_ee66462[] = {
+ NSPAIR(_ZN7ee66462C1Ev),
+ NSPAIR(_ZN7ee66462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee66462[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66462[];
+extern void _ZN7ee664623fooEv();
+extern void _ZN7ee664623barEv();
+static VTBL_ENTRY vtc_ee66462[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66462[0]),
+ (VTBL_ENTRY)&_ZN7ee664623fooEv,
+ (VTBL_ENTRY)&_ZN7ee664623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66462[];
+extern VTBL_ENTRY _ZTV7ee66462[];
+Class_Descriptor cd_ee66462 = { "ee66462", // class name
+ bases_ee66462, 4,
+ &(vtc_ee66462[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66462),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 ee76462 : virtual dd6462 {
+ int e;
+ virtual void foo(); // _ZN7ee764623fooEv
+ virtual void bar(); // _ZN7ee764623barEv
+ ~ee76462(); // tgen
+ ee76462(); // tgen
+};
+//SIG(1 ee76462) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76462 ::foo(){vfunc_called(this, "_ZN7ee764623fooEv");}
+void ee76462 ::bar(){vfunc_called(this, "_ZN7ee764623barEv");}
+ee76462 ::~ee76462(){ note_dtor("ee76462", this);} // tgen
+ee76462 ::ee76462(){ note_ctor("ee76462", this);} // tgen
+
+static void Test_ee76462()
+{
+ extern Class_Descriptor cd_ee76462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76462, buf);
+ ee76462 *dp, &lv = *(dp=new (buf) ee76462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee76462");
+ check_base_class_offset(lv, (bb62*)(cc462*)(dd6462*), ABISELECT(16,8), "ee76462");
+ check_base_class_offset(lv, (cc462*)(dd6462*), ABISELECT(16,8), "ee76462");
+ check_base_class_offset(lv, (dd6462*), ABISELECT(16,8), "ee76462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76462.e");
+ test_class_info(&lv, &cd_ee76462);
+ dp->~ee76462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76462(Test_ee76462, "ee76462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76462C1Ev();
+extern void _ZN7ee76462D1Ev();
+Name_Map name_map_ee76462[] = {
+ NSPAIR(_ZN7ee76462C1Ev),
+ NSPAIR(_ZN7ee76462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd6462;
+extern VTBL_ENTRY _ZTI6dd6462[];
+extern VTBL_ENTRY _ZTV6dd6462[];
+static Base_Class bases_ee76462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6462, ABISELECT(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 _ZTI7ee76462[];
+extern void _ZN7ee764623fooEv();
+extern void _ZN7ee764623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764623fooEv,_ZTv0_n12_N7ee764623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764623fooEv,_ZThn8_N7ee764623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764623barEv,_ZTv0_n16_N7ee764623barEv)();
+extern void ABISELECT(_ZThn16_N7ee764623barEv,_ZThn8_N7ee764623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76462[0]),
+ (VTBL_ENTRY)&_ZN7ee764623fooEv,
+ (VTBL_ENTRY)&_ZN7ee764623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764623fooEv,_ZTv0_n12_N7ee764623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764623barEv,_ZTv0_n16_N7ee764623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76462[];
+static VTT_ENTRY vtt_ee76462[] = {
+ {&(_ZTV7ee76462[3]), 3,11},
+ {&(_ZTV7ee76462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76462[];
+extern VTBL_ENTRY _ZTV7ee76462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76462[];
+static VTBL_ENTRY alt_thunk_names1195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764623barEv,_ZTv0_n16_N7ee764623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764623barEv,_ZThn8_N7ee764623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764623fooEv,_ZTv0_n12_N7ee764623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764623fooEv,_ZThn8_N7ee764623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76462 = { "ee76462", // class name
+ bases_ee76462, 4,
+ &(vtc_ee76462[0]), // expected_vtbl_contents
+ &(vtt_ee76462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76462),2, //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 dd7462 : virtual cc462 {
+ int d;
+ virtual void bar(); // _ZN6dd74623barEv
+ virtual void foo(); // _ZN6dd74623fooEv
+ ~dd7462(); // tgen
+ dd7462(); // tgen
+};
+//SIG(-1 dd7462) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7462 ::bar(){vfunc_called(this, "_ZN6dd74623barEv");}
+void dd7462 ::foo(){vfunc_called(this, "_ZN6dd74623fooEv");}
+dd7462 ::~dd7462(){ note_dtor("dd7462", this);} // tgen
+dd7462 ::dd7462(){ note_ctor("dd7462", this);} // tgen
+
+static void Test_dd7462()
+{
+ extern Class_Descriptor cd_dd7462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7462, buf);
+ dd7462 *dp, &lv = *(dp=new (buf) dd7462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,8), "dd7462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,8), "dd7462");
+ check_base_class_offset(lv, (cc462*), ABISELECT(16,8), "dd7462");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7462.d");
+ test_class_info(&lv, &cd_dd7462);
+ dp->~dd7462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7462(Test_dd7462, "dd7462", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7462C1Ev();
+extern void _ZN6dd7462D1Ev();
+Name_Map name_map_dd7462[] = {
+ NSPAIR(_ZN6dd7462C1Ev),
+ NSPAIR(_ZN6dd7462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+static Base_Class bases_dd7462[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, ABISELECT(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 _ZTI6dd7462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7462[];
+static VTT_ENTRY vtt_dd7462[] = {
+ {&(_ZTV6dd7462[3]), 3,11},
+ {&(_ZTV6dd7462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static VTBL_ENTRY alt_thunk_names1196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7462 = { "dd7462", // class name
+ bases_dd7462, 3,
+ &(vtc_dd7462[0]), // expected_vtbl_contents
+ &(vtt_dd7462[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7462),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07462 : dd7462 {
+ int e;
+ ~ee07462(); // tgen
+ ee07462(); // tgen
+};
+//SIG(1 ee07462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07462 ::~ee07462(){ note_dtor("ee07462", this);} // tgen
+ee07462 ::ee07462(){ note_ctor("ee07462", this);} // tgen
+
+static void Test_ee07462()
+{
+ extern Class_Descriptor cd_ee07462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07462, buf);
+ ee07462 *dp, &lv = *(dp=new (buf) ee07462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee07462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee07462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(16,12), "ee07462");
+ check_base_class_offset(lv, (dd7462*), 0, "ee07462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07462.e");
+ test_class_info(&lv, &cd_ee07462);
+ dp->~ee07462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07462(Test_ee07462, "ee07462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07462C1Ev();
+extern void _ZN7ee07462D1Ev();
+Name_Map name_map_ee07462[] = {
+ NSPAIR(_ZN7ee07462C1Ev),
+ NSPAIR(_ZN7ee07462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee07462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee07462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee07462[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee07462[] = {
+ {&(_ZTV7ee07462[3]), 3,11},
+ {&(_tg__ZTV6dd7462__7ee07462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee07462[4]), 4,6},
+ {&(_ZTV7ee07462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07462[];
+extern VTBL_ENTRY _ZTV7ee07462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07462[];
+static VTBL_ENTRY alt_thunk_names1197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07462 = { "ee07462", // class name
+ bases_ee07462, 4,
+ &(vtc_ee07462[0]), // expected_vtbl_contents
+ &(vtt_ee07462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07462),4, //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 ee17462 : virtual dd7462 {
+ int e;
+ ~ee17462(); // tgen
+ ee17462(); // tgen
+};
+//SIG(1 ee17462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17462 ::~ee17462(){ note_dtor("ee17462", this);} // tgen
+ee17462 ::ee17462(){ note_ctor("ee17462", this);} // tgen
+
+static void Test_ee17462()
+{
+ extern Class_Descriptor cd_ee17462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17462, buf);
+ ee17462 *dp, &lv = *(dp=new (buf) ee17462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee17462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee17462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(32,16), "ee17462");
+ check_base_class_offset(lv, (dd7462*), ABISELECT(16,8), "ee17462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17462.e");
+ test_class_info(&lv, &cd_ee17462);
+ dp->~ee17462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17462(Test_ee17462, "ee17462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17462C1Ev();
+extern void _ZN7ee17462D1Ev();
+Name_Map name_map_ee17462[] = {
+ NSPAIR(_ZN7ee17462C1Ev),
+ NSPAIR(_ZN7ee17462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee17462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, 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 _ZTI7ee17462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17462[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee17462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee17462[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee17462[] = {
+ {&(_ZTV7ee17462[4]), 4,17},
+ {&(_ZTV7ee17462[9]), 9,17},
+ {&(_ZTV7ee17462[15]), 15,17},
+ {&(_tg__ZTV6dd7462__7ee17462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee17462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17462[];
+extern VTBL_ENTRY _ZTV7ee17462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17462[];
+static VTBL_ENTRY alt_thunk_names1198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17462 = { "ee17462", // class name
+ bases_ee17462, 4,
+ &(vtc_ee17462[0]), // expected_vtbl_contents
+ &(vtt_ee17462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17462),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17462),5, //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 ee27462 : dd7462 {
+ int e;
+ virtual void foo(); // _ZN7ee274623fooEv
+ ~ee27462(); // tgen
+ ee27462(); // tgen
+};
+//SIG(1 ee27462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27462 ::foo(){vfunc_called(this, "_ZN7ee274623fooEv");}
+ee27462 ::~ee27462(){ note_dtor("ee27462", this);} // tgen
+ee27462 ::ee27462(){ note_ctor("ee27462", this);} // tgen
+
+static void Test_ee27462()
+{
+ extern Class_Descriptor cd_ee27462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27462, buf);
+ ee27462 *dp, &lv = *(dp=new (buf) ee27462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee27462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee27462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(16,12), "ee27462");
+ check_base_class_offset(lv, (dd7462*), 0, "ee27462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27462.e");
+ test_class_info(&lv, &cd_ee27462);
+ dp->~ee27462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27462(Test_ee27462, "ee27462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27462C1Ev();
+extern void _ZN7ee27462D1Ev();
+Name_Map name_map_ee27462[] = {
+ NSPAIR(_ZN7ee27462C1Ev),
+ NSPAIR(_ZN7ee27462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee27462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN7ee274623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274623fooEv,_ZTv0_n12_N7ee274623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274623fooEv,_ZThn12_N7ee274623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN7ee274623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274623fooEv,_ZTv0_n12_N7ee274623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee27462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee27462[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee27462[] = {
+ {&(_ZTV7ee27462[3]), 3,11},
+ {&(_tg__ZTV6dd7462__7ee27462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee27462[4]), 4,6},
+ {&(_ZTV7ee27462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27462[];
+extern VTBL_ENTRY _ZTV7ee27462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27462[];
+static VTBL_ENTRY alt_thunk_names1199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274623fooEv,_ZTv0_n12_N7ee274623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274623fooEv,_ZThn12_N7ee274623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27462 = { "ee27462", // class name
+ bases_ee27462, 4,
+ &(vtc_ee27462[0]), // expected_vtbl_contents
+ &(vtt_ee27462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27462),4, //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 ee37462 : virtual dd7462 {
+ int e;
+ virtual void foo(); // _ZN7ee374623fooEv
+ ~ee37462(); // tgen
+ ee37462(); // tgen
+};
+//SIG(1 ee37462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37462 ::foo(){vfunc_called(this, "_ZN7ee374623fooEv");}
+ee37462 ::~ee37462(){ note_dtor("ee37462", this);} // tgen
+ee37462 ::ee37462(){ note_ctor("ee37462", this);} // tgen
+
+static void Test_ee37462()
+{
+ extern Class_Descriptor cd_ee37462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37462, buf);
+ ee37462 *dp, &lv = *(dp=new (buf) ee37462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee37462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee37462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(32,16), "ee37462");
+ check_base_class_offset(lv, (dd7462*), ABISELECT(16,8), "ee37462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37462.e");
+ test_class_info(&lv, &cd_ee37462);
+ dp->~ee37462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37462(Test_ee37462, "ee37462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37462C1Ev();
+extern void _ZN7ee37462D1Ev();
+Name_Map name_map_ee37462[] = {
+ NSPAIR(_ZN7ee37462C1Ev),
+ NSPAIR(_ZN7ee37462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee37462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, ABISELECT(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 _ZTI7ee37462[];
+extern void _ZN7ee374623fooEv();
+extern void _ZN6dd74623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374623fooEv,_ZTv0_n20_N7ee374623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374623fooEv,_ZThn8_N7ee374623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374623fooEv,_ZTv0_n12_N7ee374623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374623fooEv,_ZThn16_N7ee374623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37462[0]),
+ (VTBL_ENTRY)&_ZN7ee374623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374623fooEv,_ZTv0_n20_N7ee374623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374623fooEv,_ZTv0_n12_N7ee374623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee37462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee37462[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee37462[] = {
+ {&(_ZTV7ee37462[4]), 4,18},
+ {&(_ZTV7ee37462[10]), 10,18},
+ {&(_ZTV7ee37462[16]), 16,18},
+ {&(_tg__ZTV6dd7462__7ee37462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee37462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37462[];
+extern VTBL_ENTRY _ZTV7ee37462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37462[];
+static VTBL_ENTRY alt_thunk_names1200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374623fooEv,_ZTv0_n12_N7ee374623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374623fooEv,_ZThn16_N7ee374623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374623fooEv,_ZTv0_n20_N7ee374623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374623fooEv,_ZThn8_N7ee374623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37462 = { "ee37462", // class name
+ bases_ee37462, 4,
+ &(vtc_ee37462[0]), // expected_vtbl_contents
+ &(vtt_ee37462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37462),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37462),5, //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 ee47462 : dd7462 {
+ int e;
+ virtual void bar(); // _ZN7ee474623barEv
+ ~ee47462(); // tgen
+ ee47462(); // tgen
+};
+//SIG(1 ee47462) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47462 ::bar(){vfunc_called(this, "_ZN7ee474623barEv");}
+ee47462 ::~ee47462(){ note_dtor("ee47462", this);} // tgen
+ee47462 ::ee47462(){ note_ctor("ee47462", this);} // tgen
+
+static void Test_ee47462()
+{
+ extern Class_Descriptor cd_ee47462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47462, buf);
+ ee47462 *dp, &lv = *(dp=new (buf) ee47462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee47462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee47462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(16,12), "ee47462");
+ check_base_class_offset(lv, (dd7462*), 0, "ee47462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47462.e");
+ test_class_info(&lv, &cd_ee47462);
+ dp->~ee47462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47462(Test_ee47462, "ee47462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47462C1Ev();
+extern void _ZN7ee47462D1Ev();
+Name_Map name_map_ee47462[] = {
+ NSPAIR(_ZN7ee47462C1Ev),
+ NSPAIR(_ZN7ee47462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee47462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47462[];
+extern void _ZN7ee474623barEv();
+extern void _ZN6dd74623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474623barEv,_ZTv0_n16_N7ee474623barEv)();
+extern void ABISELECT(_ZThn16_N7ee474623barEv,_ZThn12_N7ee474623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47462[0]),
+ (VTBL_ENTRY)&_ZN7ee474623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474623barEv,_ZTv0_n16_N7ee474623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee47462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee47462[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee47462[] = {
+ {&(_ZTV7ee47462[3]), 3,11},
+ {&(_tg__ZTV6dd7462__7ee47462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee47462[4]), 4,6},
+ {&(_ZTV7ee47462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47462[];
+extern VTBL_ENTRY _ZTV7ee47462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47462[];
+static VTBL_ENTRY alt_thunk_names1201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474623barEv,_ZTv0_n16_N7ee474623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474623barEv,_ZThn12_N7ee474623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47462 = { "ee47462", // class name
+ bases_ee47462, 4,
+ &(vtc_ee47462[0]), // expected_vtbl_contents
+ &(vtt_ee47462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47462),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 ee57462 : virtual dd7462 {
+ int e;
+ virtual void bar(); // _ZN7ee574623barEv
+ ~ee57462(); // tgen
+ ee57462(); // tgen
+};
+//SIG(1 ee57462) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57462 ::bar(){vfunc_called(this, "_ZN7ee574623barEv");}
+ee57462 ::~ee57462(){ note_dtor("ee57462", this);} // tgen
+ee57462 ::ee57462(){ note_ctor("ee57462", this);} // tgen
+
+static void Test_ee57462()
+{
+ extern Class_Descriptor cd_ee57462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57462, buf);
+ ee57462 *dp, &lv = *(dp=new (buf) ee57462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee57462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee57462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(32,16), "ee57462");
+ check_base_class_offset(lv, (dd7462*), ABISELECT(16,8), "ee57462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57462.e");
+ test_class_info(&lv, &cd_ee57462);
+ dp->~ee57462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57462(Test_ee57462, "ee57462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57462C1Ev();
+extern void _ZN7ee57462D1Ev();
+Name_Map name_map_ee57462[] = {
+ NSPAIR(_ZN7ee57462C1Ev),
+ NSPAIR(_ZN7ee57462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee57462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, ABISELECT(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 _ZTI7ee57462[];
+extern void _ZN7ee574623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574623barEv,_ZTv0_n16_N7ee574623barEv)();
+extern void ABISELECT(_ZThn16_N7ee574623barEv,_ZThn8_N7ee574623barEv)() __attribute__((weak));
+extern void _ZN6dd74623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574623barEv,_ZTv0_n16_N7ee574623barEv)();
+extern void ABISELECT(_ZThn32_N7ee574623barEv,_ZThn16_N7ee574623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57462[0]),
+ (VTBL_ENTRY)&_ZN7ee574623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574623barEv,_ZTv0_n16_N7ee574623barEv),
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574623barEv,_ZTv0_n16_N7ee574623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee57462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee57462[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee57462[] = {
+ {&(_ZTV7ee57462[4]), 4,18},
+ {&(_ZTV7ee57462[10]), 10,18},
+ {&(_ZTV7ee57462[16]), 16,18},
+ {&(_tg__ZTV6dd7462__7ee57462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee57462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57462[];
+extern VTBL_ENTRY _ZTV7ee57462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57462[];
+static VTBL_ENTRY alt_thunk_names1202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574623barEv,_ZTv0_n16_N7ee574623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574623barEv,_ZThn16_N7ee574623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574623barEv,_ZThn8_N7ee574623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57462 = { "ee57462", // class name
+ bases_ee57462, 4,
+ &(vtc_ee57462[0]), // expected_vtbl_contents
+ &(vtt_ee57462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57462),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57462),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 ee67462 : dd7462 {
+ int e;
+ virtual void foo(); // _ZN7ee674623fooEv
+ virtual void bar(); // _ZN7ee674623barEv
+ ~ee67462(); // tgen
+ ee67462(); // tgen
+};
+//SIG(1 ee67462) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67462 ::foo(){vfunc_called(this, "_ZN7ee674623fooEv");}
+void ee67462 ::bar(){vfunc_called(this, "_ZN7ee674623barEv");}
+ee67462 ::~ee67462(){ note_dtor("ee67462", this);} // tgen
+ee67462 ::ee67462(){ note_ctor("ee67462", this);} // tgen
+
+static void Test_ee67462()
+{
+ extern Class_Descriptor cd_ee67462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67462, buf);
+ ee67462 *dp, &lv = *(dp=new (buf) ee67462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(16,12), "ee67462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(16,12), "ee67462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(16,12), "ee67462");
+ check_base_class_offset(lv, (dd7462*), 0, "ee67462");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67462.e");
+ test_class_info(&lv, &cd_ee67462);
+ dp->~ee67462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67462(Test_ee67462, "ee67462", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67462C1Ev();
+extern void _ZN7ee67462D1Ev();
+Name_Map name_map_ee67462[] = {
+ NSPAIR(_ZN7ee67462C1Ev),
+ NSPAIR(_ZN7ee67462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee67462[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67462[];
+extern void _ZN7ee674623barEv();
+extern void _ZN7ee674623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674623fooEv,_ZTv0_n12_N7ee674623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674623fooEv,_ZThn12_N7ee674623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674623barEv,_ZTv0_n16_N7ee674623barEv)();
+extern void ABISELECT(_ZThn16_N7ee674623barEv,_ZThn12_N7ee674623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67462[0]),
+ (VTBL_ENTRY)&_ZN7ee674623barEv,
+ (VTBL_ENTRY)&_ZN7ee674623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674623fooEv,_ZTv0_n12_N7ee674623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674623barEv,_ZTv0_n16_N7ee674623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee67462[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee67462[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee67462[] = {
+ {&(_ZTV7ee67462[3]), 3,11},
+ {&(_tg__ZTV6dd7462__7ee67462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee67462[4]), 4,6},
+ {&(_ZTV7ee67462[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67462[];
+extern VTBL_ENTRY _ZTV7ee67462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67462[];
+static VTBL_ENTRY alt_thunk_names1203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn12_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn12_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674623barEv,_ZTv0_n16_N7ee674623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674623barEv,_ZThn12_N7ee674623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674623fooEv,_ZTv0_n12_N7ee674623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674623fooEv,_ZThn12_N7ee674623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67462 = { "ee67462", // class name
+ bases_ee67462, 4,
+ &(vtc_ee67462[0]), // expected_vtbl_contents
+ &(vtt_ee67462[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67462),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67462),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67462),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 ee77462 : virtual dd7462 {
+ int e;
+ virtual void foo(); // _ZN7ee774623fooEv
+ virtual void bar(); // _ZN7ee774623barEv
+ ~ee77462(); // tgen
+ ee77462(); // tgen
+};
+//SIG(1 ee77462) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77462 ::foo(){vfunc_called(this, "_ZN7ee774623fooEv");}
+void ee77462 ::bar(){vfunc_called(this, "_ZN7ee774623barEv");}
+ee77462 ::~ee77462(){ note_dtor("ee77462", this);} // tgen
+ee77462 ::ee77462(){ note_ctor("ee77462", this);} // tgen
+
+static void Test_ee77462()
+{
+ extern Class_Descriptor cd_ee77462;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77462, buf);
+ ee77462 *dp, &lv = *(dp=new (buf) ee77462());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77462)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77462)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc462*), ABISELECT(32,16), "ee77462");
+ check_base_class_offset(lv, (bb62*)(cc462*), ABISELECT(32,16), "ee77462");
+ check_base_class_offset(lv, (cc462*)(dd7462*), ABISELECT(32,16), "ee77462");
+ check_base_class_offset(lv, (dd7462*), ABISELECT(16,8), "ee77462");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77462.e");
+ test_class_info(&lv, &cd_ee77462);
+ dp->~ee77462();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77462(Test_ee77462, "ee77462", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77462C1Ev();
+extern void _ZN7ee77462D1Ev();
+Name_Map name_map_ee77462[] = {
+ NSPAIR(_ZN7ee77462C1Ev),
+ NSPAIR(_ZN7ee77462D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc462;
+extern VTBL_ENTRY _ZTI5cc462[];
+extern VTBL_ENTRY _ZTV5cc462[];
+extern Class_Descriptor cd_dd7462;
+extern VTBL_ENTRY _ZTI6dd7462[];
+extern VTBL_ENTRY _ZTV6dd7462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7462[];
+static Base_Class bases_ee77462[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc462, 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_dd7462, ABISELECT(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 _ZTI7ee77462[];
+extern void _ZN7ee774623fooEv();
+extern void _ZN7ee774623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774623barEv,_ZTv0_n16_N7ee774623barEv)();
+extern void ABISELECT(_ZThn16_N7ee774623barEv,_ZThn8_N7ee774623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774623fooEv,_ZTv0_n20_N7ee774623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774623fooEv,_ZThn8_N7ee774623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774623fooEv,_ZTv0_n12_N7ee774623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774623fooEv,_ZThn16_N7ee774623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774623barEv,_ZTv0_n16_N7ee774623barEv)();
+extern void ABISELECT(_ZThn32_N7ee774623barEv,_ZThn16_N7ee774623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77462[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77462[0]),
+ (VTBL_ENTRY)&_ZN7ee774623fooEv,
+ (VTBL_ENTRY)&_ZN7ee774623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774623barEv,_ZTv0_n16_N7ee774623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774623fooEv,_ZTv0_n20_N7ee774623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774623fooEv,_ZTv0_n12_N7ee774623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774623barEv,_ZTv0_n16_N7ee774623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77462[];
+extern void _ZN6dd74623barEv();
+extern void _ZN6dd74623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7462__7ee77462[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&_ZN6dd74623barEv,
+ (VTBL_ENTRY)&_ZN6dd74623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv)();
+extern void ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc462__6dd7462__7ee77462[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7462[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv),
+};
+static VTT_ENTRY vtt_ee77462[] = {
+ {&(_ZTV7ee77462[4]), 4,19},
+ {&(_ZTV7ee77462[11]), 11,19},
+ {&(_ZTV7ee77462[17]), 17,19},
+ {&(_tg__ZTV6dd7462__7ee77462[3]), 3,5},
+ {&(_tg__ZTV5cc462__6dd7462__7ee77462[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77462[];
+extern VTBL_ENTRY _ZTV7ee77462[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77462[];
+static VTBL_ENTRY alt_thunk_names1204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74623barEv,_ZTv0_n16_N6dd74623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623barEv,_ZThn8_N6dd74623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74623fooEv,_ZTv0_n12_N6dd74623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74623fooEv,_ZThn8_N6dd74623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774623fooEv,_ZTv0_n12_N7ee774623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774623fooEv,_ZThn16_N7ee774623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774623fooEv,_ZTv0_n20_N7ee774623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774623fooEv,_ZThn8_N7ee774623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774623barEv,_ZTv0_n16_N7ee774623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774623barEv,_ZThn16_N7ee774623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774623barEv,_ZThn8_N7ee774623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77462 = { "ee77462", // class name
+ bases_ee77462, 4,
+ &(vtc_ee77462[0]), // expected_vtbl_contents
+ &(vtt_ee77462[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77462),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77462),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77462),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 cc562 : virtual bb62 {
+ int c;
+ virtual void bar(); // _ZN5cc5623barEv
+ ~cc562(); // tgen
+ cc562(); // tgen
+};
+//SIG(-1 cc562) C1{ VBC2{ BC3{ v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void cc562 ::bar(){vfunc_called(this, "_ZN5cc5623barEv");}
+cc562 ::~cc562(){ note_dtor("cc562", this);} // tgen
+cc562 ::cc562(){ note_ctor("cc562", this);} // tgen
+
+static void Test_cc562()
+{
+ extern Class_Descriptor cd_cc562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc562, buf);
+ cc562 *dp, &lv = *(dp=new (buf) cc562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,8), "cc562");
+ check_base_class_offset(lv, (bb62*), ABISELECT(16,8), "cc562");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc562.c");
+ test_class_info(&lv, &cd_cc562);
+ dp->~cc562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc562(Test_cc562, "cc562", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc562C1Ev();
+extern void _ZN5cc562D1Ev();
+Name_Map name_map_cc562[] = {
+ NSPAIR(_ZN5cc562C1Ev),
+ NSPAIR(_ZN5cc562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc562[] = {
+ // 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_bb62, ABISELECT(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 _ZTI5cc562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV5cc562[];
+static VTT_ENTRY vtt_cc562[] = {
+ {&(_ZTV5cc562[3]), 3,10},
+ {&(_ZTV5cc562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static VTBL_ENTRY alt_thunk_names1205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc562 = { "cc562", // class name
+ bases_cc562, 2,
+ &(vtc_cc562[0]), // expected_vtbl_contents
+ &(vtt_cc562[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc562),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0562 : cc562 {
+ int d;
+ ~dd0562(); // tgen
+ dd0562(); // tgen
+};
+//SIG(-1 dd0562) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd0562 ::~dd0562(){ note_dtor("dd0562", this);} // tgen
+dd0562 ::dd0562(){ note_ctor("dd0562", this);} // tgen
+
+static void Test_dd0562()
+{
+ extern Class_Descriptor cd_dd0562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0562, buf);
+ dd0562 *dp, &lv = *(dp=new (buf) dd0562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd0562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(16,12), "dd0562");
+ check_base_class_offset(lv, (cc562*), 0, "dd0562");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0562.d");
+ test_class_info(&lv, &cd_dd0562);
+ dp->~dd0562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0562(Test_dd0562, "dd0562", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0562C1Ev();
+extern void _ZN6dd0562D1Ev();
+Name_Map name_map_dd0562[] = {
+ NSPAIR(_ZN6dd0562C1Ev),
+ NSPAIR(_ZN6dd0562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd0562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd0562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd0562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd0562[] = {
+ {&(_ZTV6dd0562[3]), 3,10},
+ {&(_tg__ZTV5cc562__6dd0562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd0562[4]), 4,6},
+ {&(_ZTV6dd0562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static VTBL_ENTRY alt_thunk_names1206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0562 = { "dd0562", // class name
+ bases_dd0562, 3,
+ &(vtc_dd0562[0]), // expected_vtbl_contents
+ &(vtt_dd0562[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0562),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00562 : dd0562 {
+ int e;
+ ~ee00562(); // tgen
+ ee00562(); // tgen
+};
+//SIG(1 ee00562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00562 ::~ee00562(){ note_dtor("ee00562", this);} // tgen
+ee00562 ::ee00562(){ note_ctor("ee00562", this);} // tgen
+
+static void Test_ee00562()
+{
+ extern Class_Descriptor cd_ee00562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00562, buf);
+ ee00562 *dp, &lv = *(dp=new (buf) ee00562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee00562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(24,16), "ee00562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), 0, "ee00562");
+ check_base_class_offset(lv, (dd0562*), 0, "ee00562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00562.e");
+ test_class_info(&lv, &cd_ee00562);
+ dp->~ee00562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00562(Test_ee00562, "ee00562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00562C1Ev();
+extern void _ZN7ee00562D1Ev();
+Name_Map name_map_ee00562[] = {
+ NSPAIR(_ZN7ee00562C1Ev),
+ NSPAIR(_ZN7ee00562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee00562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee00562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee00562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee00562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee00562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee00562[] = {
+ {&(_ZTV7ee00562[3]), 3,10},
+ {&(_tg__ZTV6dd0562__7ee00562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee00562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee00562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee00562[4]), 4,6},
+ {&(_ZTV7ee00562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00562[];
+extern VTBL_ENTRY _ZTV7ee00562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00562[];
+static VTBL_ENTRY alt_thunk_names1207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00562 = { "ee00562", // class name
+ bases_ee00562, 4,
+ &(vtc_ee00562[0]), // expected_vtbl_contents
+ &(vtt_ee00562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00562),6, //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 ee10562 : virtual dd0562 {
+ int e;
+ ~ee10562(); // tgen
+ ee10562(); // tgen
+};
+//SIG(1 ee10562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10562 ::~ee10562(){ note_dtor("ee10562", this);} // tgen
+ee10562 ::ee10562(){ note_ctor("ee10562", this);} // tgen
+
+static void Test_ee10562()
+{
+ extern Class_Descriptor cd_ee10562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10562, buf);
+ ee10562 *dp, &lv = *(dp=new (buf) ee10562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee10562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(32,20), "ee10562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), ABISELECT(16,8), "ee10562");
+ check_base_class_offset(lv, (dd0562*), ABISELECT(16,8), "ee10562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10562.e");
+ test_class_info(&lv, &cd_ee10562);
+ dp->~ee10562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10562(Test_ee10562, "ee10562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10562C1Ev();
+extern void _ZN7ee10562D1Ev();
+Name_Map name_map_ee10562[] = {
+ NSPAIR(_ZN7ee10562C1Ev),
+ NSPAIR(_ZN7ee10562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee10562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, ABISELECT(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 _ZTI7ee10562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10562[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee10562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee10562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee10562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee10562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee10562[] = {
+ {&(_ZTV7ee10562[4]), 4,15},
+ {&(_ZTV7ee10562[8]), 8,15},
+ {&(_ZTV7ee10562[13]), 13,15},
+ {&(_tg__ZTV6dd0562__7ee10562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee10562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee10562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee10562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10562[];
+extern VTBL_ENTRY _ZTV7ee10562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10562[];
+static VTBL_ENTRY alt_thunk_names1208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10562 = { "ee10562", // class name
+ bases_ee10562, 4,
+ &(vtc_ee10562[0]), // expected_vtbl_contents
+ &(vtt_ee10562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10562),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10562),7, //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 ee20562 : dd0562 {
+ int e;
+ virtual void foo(); // _ZN7ee205623fooEv
+ ~ee20562(); // tgen
+ ee20562(); // tgen
+};
+//SIG(1 ee20562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20562 ::foo(){vfunc_called(this, "_ZN7ee205623fooEv");}
+ee20562 ::~ee20562(){ note_dtor("ee20562", this);} // tgen
+ee20562 ::ee20562(){ note_ctor("ee20562", this);} // tgen
+
+static void Test_ee20562()
+{
+ extern Class_Descriptor cd_ee20562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20562, buf);
+ ee20562 *dp, &lv = *(dp=new (buf) ee20562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee20562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(24,16), "ee20562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), 0, "ee20562");
+ check_base_class_offset(lv, (dd0562*), 0, "ee20562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20562.e");
+ test_class_info(&lv, &cd_ee20562);
+ dp->~ee20562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20562(Test_ee20562, "ee20562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20562C1Ev();
+extern void _ZN7ee20562D1Ev();
+Name_Map name_map_ee20562[] = {
+ NSPAIR(_ZN7ee20562C1Ev),
+ NSPAIR(_ZN7ee20562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee20562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN7ee205623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205623fooEv,_ZTv0_n12_N7ee205623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205623fooEv,_ZThn16_N7ee205623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN7ee205623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205623fooEv,_ZTv0_n12_N7ee205623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee20562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee20562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee20562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee20562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee20562[] = {
+ {&(_ZTV7ee20562[3]), 3,11},
+ {&(_tg__ZTV6dd0562__7ee20562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee20562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee20562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee20562[4]), 4,6},
+ {&(_ZTV7ee20562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20562[];
+extern VTBL_ENTRY _ZTV7ee20562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20562[];
+static VTBL_ENTRY alt_thunk_names1209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205623fooEv,_ZTv0_n12_N7ee205623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205623fooEv,_ZThn16_N7ee205623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20562 = { "ee20562", // class name
+ bases_ee20562, 4,
+ &(vtc_ee20562[0]), // expected_vtbl_contents
+ &(vtt_ee20562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20562),6, //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 ee30562 : virtual dd0562 {
+ int e;
+ virtual void foo(); // _ZN7ee305623fooEv
+ ~ee30562(); // tgen
+ ee30562(); // tgen
+};
+//SIG(1 ee30562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30562 ::foo(){vfunc_called(this, "_ZN7ee305623fooEv");}
+ee30562 ::~ee30562(){ note_dtor("ee30562", this);} // tgen
+ee30562 ::ee30562(){ note_ctor("ee30562", this);} // tgen
+
+static void Test_ee30562()
+{
+ extern Class_Descriptor cd_ee30562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30562, buf);
+ ee30562 *dp, &lv = *(dp=new (buf) ee30562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee30562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(32,20), "ee30562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), ABISELECT(16,8), "ee30562");
+ check_base_class_offset(lv, (dd0562*), ABISELECT(16,8), "ee30562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30562.e");
+ test_class_info(&lv, &cd_ee30562);
+ dp->~ee30562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30562(Test_ee30562, "ee30562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30562C1Ev();
+extern void _ZN7ee30562D1Ev();
+Name_Map name_map_ee30562[] = {
+ NSPAIR(_ZN7ee30562C1Ev),
+ NSPAIR(_ZN7ee30562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee30562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, ABISELECT(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 _ZTI7ee30562[];
+extern void _ZN7ee305623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305623fooEv,_ZTv0_n12_N7ee305623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305623fooEv,_ZThn20_N7ee305623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30562[0]),
+ (VTBL_ENTRY)&_ZN7ee305623fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305623fooEv,_ZTv0_n12_N7ee305623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee30562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee30562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee30562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee30562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee30562[] = {
+ {&(_ZTV7ee30562[4]), 4,16},
+ {&(_ZTV7ee30562[9]), 9,16},
+ {&(_ZTV7ee30562[14]), 14,16},
+ {&(_tg__ZTV6dd0562__7ee30562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee30562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee30562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee30562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30562[];
+extern VTBL_ENTRY _ZTV7ee30562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30562[];
+static VTBL_ENTRY alt_thunk_names1210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305623fooEv,_ZTv0_n12_N7ee305623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305623fooEv,_ZThn20_N7ee305623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30562 = { "ee30562", // class name
+ bases_ee30562, 4,
+ &(vtc_ee30562[0]), // expected_vtbl_contents
+ &(vtt_ee30562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30562),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40562 : dd0562 {
+ int e;
+ virtual void bar(); // _ZN7ee405623barEv
+ ~ee40562(); // tgen
+ ee40562(); // tgen
+};
+//SIG(1 ee40562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40562 ::bar(){vfunc_called(this, "_ZN7ee405623barEv");}
+ee40562 ::~ee40562(){ note_dtor("ee40562", this);} // tgen
+ee40562 ::ee40562(){ note_ctor("ee40562", this);} // tgen
+
+static void Test_ee40562()
+{
+ extern Class_Descriptor cd_ee40562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40562, buf);
+ ee40562 *dp, &lv = *(dp=new (buf) ee40562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee40562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(24,16), "ee40562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), 0, "ee40562");
+ check_base_class_offset(lv, (dd0562*), 0, "ee40562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40562.e");
+ test_class_info(&lv, &cd_ee40562);
+ dp->~ee40562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40562(Test_ee40562, "ee40562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40562C1Ev();
+extern void _ZN7ee40562D1Ev();
+Name_Map name_map_ee40562[] = {
+ NSPAIR(_ZN7ee40562C1Ev),
+ NSPAIR(_ZN7ee40562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee40562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40562[];
+extern void _ZN7ee405623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405623barEv,_ZTv0_n16_N7ee405623barEv)();
+extern void ABISELECT(_ZThn24_N7ee405623barEv,_ZThn16_N7ee405623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40562[0]),
+ (VTBL_ENTRY)&_ZN7ee405623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405623barEv,_ZTv0_n16_N7ee405623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee40562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee40562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee40562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee40562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee40562[] = {
+ {&(_ZTV7ee40562[3]), 3,10},
+ {&(_tg__ZTV6dd0562__7ee40562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee40562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee40562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee40562[4]), 4,6},
+ {&(_ZTV7ee40562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40562[];
+extern VTBL_ENTRY _ZTV7ee40562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40562[];
+static VTBL_ENTRY alt_thunk_names1211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405623barEv,_ZTv0_n16_N7ee405623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405623barEv,_ZThn16_N7ee405623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40562 = { "ee40562", // class name
+ bases_ee40562, 4,
+ &(vtc_ee40562[0]), // expected_vtbl_contents
+ &(vtt_ee40562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40562),6, //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 ee50562 : virtual dd0562 {
+ int e;
+ virtual void bar(); // _ZN7ee505623barEv
+ ~ee50562(); // tgen
+ ee50562(); // tgen
+};
+//SIG(1 ee50562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50562 ::bar(){vfunc_called(this, "_ZN7ee505623barEv");}
+ee50562 ::~ee50562(){ note_dtor("ee50562", this);} // tgen
+ee50562 ::ee50562(){ note_ctor("ee50562", this);} // tgen
+
+static void Test_ee50562()
+{
+ extern Class_Descriptor cd_ee50562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50562, buf);
+ ee50562 *dp, &lv = *(dp=new (buf) ee50562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee50562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(32,20), "ee50562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), ABISELECT(16,8), "ee50562");
+ check_base_class_offset(lv, (dd0562*), ABISELECT(16,8), "ee50562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50562.e");
+ test_class_info(&lv, &cd_ee50562);
+ dp->~ee50562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50562(Test_ee50562, "ee50562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50562C1Ev();
+extern void _ZN7ee50562D1Ev();
+Name_Map name_map_ee50562[] = {
+ NSPAIR(_ZN7ee50562C1Ev),
+ NSPAIR(_ZN7ee50562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee50562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, ABISELECT(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 _ZTI7ee50562[];
+extern void _ZN7ee505623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505623barEv,_ZTv0_n16_N7ee505623barEv)();
+extern void ABISELECT(_ZThn16_N7ee505623barEv,_ZThn8_N7ee505623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505623barEv,_ZTv0_n16_N7ee505623barEv)();
+extern void ABISELECT(_ZThn32_N7ee505623barEv,_ZThn20_N7ee505623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50562[0]),
+ (VTBL_ENTRY)&_ZN7ee505623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505623barEv,_ZTv0_n16_N7ee505623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505623barEv,_ZTv0_n16_N7ee505623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee50562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee50562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee50562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee50562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee50562[] = {
+ {&(_ZTV7ee50562[4]), 4,16},
+ {&(_ZTV7ee50562[9]), 9,16},
+ {&(_ZTV7ee50562[14]), 14,16},
+ {&(_tg__ZTV6dd0562__7ee50562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee50562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee50562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee50562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50562[];
+extern VTBL_ENTRY _ZTV7ee50562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50562[];
+static VTBL_ENTRY alt_thunk_names1212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505623barEv,_ZTv0_n16_N7ee505623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505623barEv,_ZThn20_N7ee505623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505623barEv,_ZThn8_N7ee505623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50562 = { "ee50562", // class name
+ bases_ee50562, 4,
+ &(vtc_ee50562[0]), // expected_vtbl_contents
+ &(vtt_ee50562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50562),7, //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 ee60562 : dd0562 {
+ int e;
+ virtual void foo(); // _ZN7ee605623fooEv
+ virtual void bar(); // _ZN7ee605623barEv
+ ~ee60562(); // tgen
+ ee60562(); // tgen
+};
+//SIG(1 ee60562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60562 ::foo(){vfunc_called(this, "_ZN7ee605623fooEv");}
+void ee60562 ::bar(){vfunc_called(this, "_ZN7ee605623barEv");}
+ee60562 ::~ee60562(){ note_dtor("ee60562", this);} // tgen
+ee60562 ::ee60562(){ note_ctor("ee60562", this);} // tgen
+
+static void Test_ee60562()
+{
+ extern Class_Descriptor cd_ee60562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60562, buf);
+ ee60562 *dp, &lv = *(dp=new (buf) ee60562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee60562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(24,16), "ee60562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), 0, "ee60562");
+ check_base_class_offset(lv, (dd0562*), 0, "ee60562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60562.e");
+ test_class_info(&lv, &cd_ee60562);
+ dp->~ee60562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60562(Test_ee60562, "ee60562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60562C1Ev();
+extern void _ZN7ee60562D1Ev();
+Name_Map name_map_ee60562[] = {
+ NSPAIR(_ZN7ee60562C1Ev),
+ NSPAIR(_ZN7ee60562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee60562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60562[];
+extern void _ZN7ee605623barEv();
+extern void _ZN7ee605623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605623fooEv,_ZTv0_n12_N7ee605623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605623fooEv,_ZThn16_N7ee605623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605623barEv,_ZTv0_n16_N7ee605623barEv)();
+extern void ABISELECT(_ZThn24_N7ee605623barEv,_ZThn16_N7ee605623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60562[0]),
+ (VTBL_ENTRY)&_ZN7ee605623barEv,
+ (VTBL_ENTRY)&_ZN7ee605623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605623fooEv,_ZTv0_n12_N7ee605623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605623barEv,_ZTv0_n16_N7ee605623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee60562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee60562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee60562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee60562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee60562[] = {
+ {&(_ZTV7ee60562[3]), 3,11},
+ {&(_tg__ZTV6dd0562__7ee60562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee60562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee60562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee60562[4]), 4,6},
+ {&(_ZTV7ee60562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60562[];
+extern VTBL_ENTRY _ZTV7ee60562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60562[];
+static VTBL_ENTRY alt_thunk_names1213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605623barEv,_ZTv0_n16_N7ee605623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605623barEv,_ZThn16_N7ee605623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605623fooEv,_ZTv0_n12_N7ee605623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605623fooEv,_ZThn16_N7ee605623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60562 = { "ee60562", // class name
+ bases_ee60562, 4,
+ &(vtc_ee60562[0]), // expected_vtbl_contents
+ &(vtt_ee60562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60562),6, //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 ee70562 : virtual dd0562 {
+ int e;
+ virtual void foo(); // _ZN7ee705623fooEv
+ virtual void bar(); // _ZN7ee705623barEv
+ ~ee70562(); // tgen
+ ee70562(); // tgen
+};
+//SIG(1 ee70562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70562 ::foo(){vfunc_called(this, "_ZN7ee705623fooEv");}
+void ee70562 ::bar(){vfunc_called(this, "_ZN7ee705623barEv");}
+ee70562 ::~ee70562(){ note_dtor("ee70562", this);} // tgen
+ee70562 ::ee70562(){ note_ctor("ee70562", this);} // tgen
+
+static void Test_ee70562()
+{
+ extern Class_Descriptor cd_ee70562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70562, buf);
+ ee70562 *dp, &lv = *(dp=new (buf) ee70562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee70562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd0562*), ABISELECT(32,20), "ee70562");
+ check_base_class_offset(lv, (cc562*)(dd0562*), ABISELECT(16,8), "ee70562");
+ check_base_class_offset(lv, (dd0562*), ABISELECT(16,8), "ee70562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70562.e");
+ test_class_info(&lv, &cd_ee70562);
+ dp->~ee70562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70562(Test_ee70562, "ee70562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70562C1Ev();
+extern void _ZN7ee70562D1Ev();
+Name_Map name_map_ee70562[] = {
+ NSPAIR(_ZN7ee70562C1Ev),
+ NSPAIR(_ZN7ee70562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd0562;
+extern VTBL_ENTRY _ZTI6dd0562[];
+extern VTBL_ENTRY _ZTV6dd0562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0562[];
+static Base_Class bases_ee70562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0562, 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 _ZTI7ee70562[];
+extern void _ZN7ee705623fooEv();
+extern void _ZN7ee705623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705623barEv,_ZTv0_n16_N7ee705623barEv)();
+extern void ABISELECT(_ZThn16_N7ee705623barEv,_ZThn8_N7ee705623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705623fooEv,_ZTv0_n12_N7ee705623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705623fooEv,_ZThn20_N7ee705623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705623barEv,_ZTv0_n16_N7ee705623barEv)();
+extern void ABISELECT(_ZThn32_N7ee705623barEv,_ZThn20_N7ee705623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70562[0]),
+ (VTBL_ENTRY)&_ZN7ee705623fooEv,
+ (VTBL_ENTRY)&_ZN7ee705623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705623barEv,_ZTv0_n16_N7ee705623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705623fooEv,_ZTv0_n12_N7ee705623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705623barEv,_ZTv0_n16_N7ee705623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0562__7ee70562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd0562__7ee70562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd0562__7ee70562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0562__7ee70562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee70562[] = {
+ {&(_ZTV7ee70562[4]), 4,17},
+ {&(_ZTV7ee70562[10]), 10,17},
+ {&(_ZTV7ee70562[15]), 15,17},
+ {&(_tg__ZTV6dd0562__7ee70562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd0562__7ee70562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd0562__7ee70562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0562__7ee70562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70562[];
+extern VTBL_ENTRY _ZTV7ee70562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70562[];
+static VTBL_ENTRY alt_thunk_names1214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705623fooEv,_ZTv0_n12_N7ee705623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705623fooEv,_ZThn20_N7ee705623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705623barEv,_ZTv0_n16_N7ee705623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705623barEv,_ZThn20_N7ee705623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705623barEv,_ZThn8_N7ee705623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70562 = { "ee70562", // class name
+ bases_ee70562, 4,
+ &(vtc_ee70562[0]), // expected_vtbl_contents
+ &(vtt_ee70562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70562),7, //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 dd1562 : virtual cc562 {
+ int d;
+ ~dd1562(); // tgen
+ dd1562(); // tgen
+};
+//SIG(-1 dd1562) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+dd1562 ::~dd1562(){ note_dtor("dd1562", this);} // tgen
+dd1562 ::dd1562(){ note_ctor("dd1562", this);} // tgen
+
+static void Test_dd1562()
+{
+ extern Class_Descriptor cd_dd1562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1562, buf);
+ dd1562 *dp, &lv = *(dp=new (buf) dd1562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd1562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,16), "dd1562");
+ check_base_class_offset(lv, (cc562*), ABISELECT(16,8), "dd1562");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1562.d");
+ test_class_info(&lv, &cd_dd1562);
+ dp->~dd1562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1562(Test_dd1562, "dd1562", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1562C1Ev();
+extern void _ZN6dd1562D1Ev();
+Name_Map name_map_dd1562[] = {
+ NSPAIR(_ZN6dd1562C1Ev),
+ NSPAIR(_ZN6dd1562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd1562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(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 _ZTI6dd1562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd1562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd1562[] = {
+ {&(_ZTV6dd1562[4]), 4,15},
+ {&(_ZTV6dd1562[8]), 8,15},
+ {&(_ZTV6dd1562[13]), 13,15},
+ {&(_tg__ZTV5cc562__6dd1562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd1562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static VTBL_ENTRY alt_thunk_names1215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1562 = { "dd1562", // class name
+ bases_dd1562, 3,
+ &(vtc_dd1562[0]), // expected_vtbl_contents
+ &(vtt_dd1562[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1562),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1562),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01562 : dd1562 {
+ int e;
+ ~ee01562(); // tgen
+ ee01562(); // tgen
+};
+//SIG(1 ee01562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01562 ::~ee01562(){ note_dtor("ee01562", this);} // tgen
+ee01562 ::ee01562(){ note_ctor("ee01562", this);} // tgen
+
+static void Test_ee01562()
+{
+ extern Class_Descriptor cd_ee01562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01562, buf);
+ ee01562 *dp, &lv = *(dp=new (buf) ee01562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee01562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee01562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(16,12), "ee01562");
+ check_base_class_offset(lv, (dd1562*), 0, "ee01562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01562.e");
+ test_class_info(&lv, &cd_ee01562);
+ dp->~ee01562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01562(Test_ee01562, "ee01562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01562C1Ev();
+extern void _ZN7ee01562D1Ev();
+Name_Map name_map_ee01562[] = {
+ NSPAIR(_ZN7ee01562C1Ev),
+ NSPAIR(_ZN7ee01562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee01562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01562[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee01562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee01562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee01562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee01562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee01562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee01562[] = {
+ {&(_ZTV7ee01562[4]), 4,15},
+ {&(_tg__ZTV6dd1562__7ee01562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee01562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee01562[4]), 4,6},
+ {&(_ZTV7ee01562[8]), 8,15},
+ {&(_ZTV7ee01562[13]), 13,15},
+ {&(_tg__ZTV5cc562__7ee01562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee01562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01562[];
+extern VTBL_ENTRY _ZTV7ee01562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01562[];
+static VTBL_ENTRY alt_thunk_names1216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01562 = { "ee01562", // class name
+ bases_ee01562, 4,
+ &(vtc_ee01562[0]), // expected_vtbl_contents
+ &(vtt_ee01562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01562),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01562),8, //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 ee11562 : virtual dd1562 {
+ int e;
+ ~ee11562(); // tgen
+ ee11562(); // tgen
+};
+//SIG(1 ee11562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11562 ::~ee11562(){ note_dtor("ee11562", this);} // tgen
+ee11562 ::ee11562(){ note_ctor("ee11562", this);} // tgen
+
+static void Test_ee11562()
+{
+ extern Class_Descriptor cd_ee11562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11562, buf);
+ ee11562 *dp, &lv = *(dp=new (buf) ee11562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee11562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee11562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(32,16), "ee11562");
+ check_base_class_offset(lv, (dd1562*), ABISELECT(16,8), "ee11562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11562.e");
+ test_class_info(&lv, &cd_ee11562);
+ dp->~ee11562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11562(Test_ee11562, "ee11562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11562C1Ev();
+extern void _ZN7ee11562D1Ev();
+Name_Map name_map_ee11562[] = {
+ NSPAIR(_ZN7ee11562C1Ev),
+ NSPAIR(_ZN7ee11562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee11562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, ABISELECT(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 _ZTI7ee11562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11562[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11562[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee11562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee11562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee11562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee11562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee11562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee11562[] = {
+ {&(_ZTV7ee11562[5]), 5,20},
+ {&(_ZTV7ee11562[9]), 9,20},
+ {&(_ZTV7ee11562[13]), 13,20},
+ {&(_ZTV7ee11562[18]), 18,20},
+ {&(_tg__ZTV6dd1562__7ee11562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee11562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee11562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee11562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee11562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11562[];
+extern VTBL_ENTRY _ZTV7ee11562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11562[];
+static VTBL_ENTRY alt_thunk_names1217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11562 = { "ee11562", // class name
+ bases_ee11562, 4,
+ &(vtc_ee11562[0]), // expected_vtbl_contents
+ &(vtt_ee11562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11562),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11562),9, //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 ee21562 : dd1562 {
+ int e;
+ virtual void foo(); // _ZN7ee215623fooEv
+ ~ee21562(); // tgen
+ ee21562(); // tgen
+};
+//SIG(1 ee21562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21562 ::foo(){vfunc_called(this, "_ZN7ee215623fooEv");}
+ee21562 ::~ee21562(){ note_dtor("ee21562", this);} // tgen
+ee21562 ::ee21562(){ note_ctor("ee21562", this);} // tgen
+
+static void Test_ee21562()
+{
+ extern Class_Descriptor cd_ee21562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21562, buf);
+ ee21562 *dp, &lv = *(dp=new (buf) ee21562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee21562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee21562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(16,12), "ee21562");
+ check_base_class_offset(lv, (dd1562*), 0, "ee21562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21562.e");
+ test_class_info(&lv, &cd_ee21562);
+ dp->~ee21562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21562(Test_ee21562, "ee21562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21562C1Ev();
+extern void _ZN7ee21562D1Ev();
+Name_Map name_map_ee21562[] = {
+ NSPAIR(_ZN7ee21562C1Ev),
+ NSPAIR(_ZN7ee21562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee21562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21562[];
+extern void _ZN7ee215623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215623fooEv,_ZTv0_n12_N7ee215623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215623fooEv,_ZThn20_N7ee215623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21562[0]),
+ (VTBL_ENTRY)&_ZN7ee215623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215623fooEv,_ZTv0_n12_N7ee215623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee21562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee21562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee21562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee21562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee21562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee21562[] = {
+ {&(_ZTV7ee21562[4]), 4,16},
+ {&(_tg__ZTV6dd1562__7ee21562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee21562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee21562[4]), 4,6},
+ {&(_ZTV7ee21562[9]), 9,16},
+ {&(_ZTV7ee21562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee21562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee21562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21562[];
+extern VTBL_ENTRY _ZTV7ee21562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21562[];
+static VTBL_ENTRY alt_thunk_names1218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215623fooEv,_ZTv0_n12_N7ee215623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215623fooEv,_ZThn20_N7ee215623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21562 = { "ee21562", // class name
+ bases_ee21562, 4,
+ &(vtc_ee21562[0]), // expected_vtbl_contents
+ &(vtt_ee21562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21562),8, //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 ee31562 : virtual dd1562 {
+ int e;
+ virtual void foo(); // _ZN7ee315623fooEv
+ ~ee31562(); // tgen
+ ee31562(); // tgen
+};
+//SIG(1 ee31562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31562 ::foo(){vfunc_called(this, "_ZN7ee315623fooEv");}
+ee31562 ::~ee31562(){ note_dtor("ee31562", this);} // tgen
+ee31562 ::ee31562(){ note_ctor("ee31562", this);} // tgen
+
+static void Test_ee31562()
+{
+ extern Class_Descriptor cd_ee31562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31562, buf);
+ ee31562 *dp, &lv = *(dp=new (buf) ee31562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee31562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee31562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(32,16), "ee31562");
+ check_base_class_offset(lv, (dd1562*), ABISELECT(16,8), "ee31562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31562.e");
+ test_class_info(&lv, &cd_ee31562);
+ dp->~ee31562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31562(Test_ee31562, "ee31562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31562C1Ev();
+extern void _ZN7ee31562D1Ev();
+Name_Map name_map_ee31562[] = {
+ NSPAIR(_ZN7ee31562C1Ev),
+ NSPAIR(_ZN7ee31562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee31562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 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 _ZTI7ee31562[];
+extern void _ZN7ee315623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315623fooEv,_ZTv0_n12_N7ee315623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315623fooEv,_ZThn24_N7ee315623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31562[0]),
+ (VTBL_ENTRY)&_ZN7ee315623fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31562[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315623fooEv,_ZTv0_n12_N7ee315623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee31562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee31562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee31562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee31562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee31562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee31562[] = {
+ {&(_ZTV7ee31562[5]), 5,21},
+ {&(_ZTV7ee31562[10]), 10,21},
+ {&(_ZTV7ee31562[14]), 14,21},
+ {&(_ZTV7ee31562[19]), 19,21},
+ {&(_tg__ZTV6dd1562__7ee31562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee31562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee31562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee31562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee31562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31562[];
+extern VTBL_ENTRY _ZTV7ee31562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31562[];
+static VTBL_ENTRY alt_thunk_names1219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315623fooEv,_ZTv0_n12_N7ee315623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315623fooEv,_ZThn24_N7ee315623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31562 = { "ee31562", // class name
+ bases_ee31562, 4,
+ &(vtc_ee31562[0]), // expected_vtbl_contents
+ &(vtt_ee31562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31562),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31562),9, //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 ee41562 : dd1562 {
+ int e;
+ virtual void bar(); // _ZN7ee415623barEv
+ ~ee41562(); // tgen
+ ee41562(); // tgen
+};
+//SIG(1 ee41562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41562 ::bar(){vfunc_called(this, "_ZN7ee415623barEv");}
+ee41562 ::~ee41562(){ note_dtor("ee41562", this);} // tgen
+ee41562 ::ee41562(){ note_ctor("ee41562", this);} // tgen
+
+static void Test_ee41562()
+{
+ extern Class_Descriptor cd_ee41562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41562, buf);
+ ee41562 *dp, &lv = *(dp=new (buf) ee41562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee41562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee41562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(16,12), "ee41562");
+ check_base_class_offset(lv, (dd1562*), 0, "ee41562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41562.e");
+ test_class_info(&lv, &cd_ee41562);
+ dp->~ee41562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41562(Test_ee41562, "ee41562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41562C1Ev();
+extern void _ZN7ee41562D1Ev();
+Name_Map name_map_ee41562[] = {
+ NSPAIR(_ZN7ee41562C1Ev),
+ NSPAIR(_ZN7ee41562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee41562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41562[];
+extern void _ZN7ee415623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415623barEv,_ZTv0_n16_N7ee415623barEv)();
+extern void ABISELECT(_ZThn16_N7ee415623barEv,_ZThn12_N7ee415623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415623barEv,_ZTv0_n16_N7ee415623barEv)();
+extern void ABISELECT(_ZThn32_N7ee415623barEv,_ZThn20_N7ee415623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41562[0]),
+ (VTBL_ENTRY)&_ZN7ee415623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415623barEv,_ZTv0_n16_N7ee415623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415623barEv,_ZTv0_n16_N7ee415623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee41562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee41562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee41562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee41562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee41562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee41562[] = {
+ {&(_ZTV7ee41562[4]), 4,16},
+ {&(_tg__ZTV6dd1562__7ee41562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee41562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee41562[4]), 4,6},
+ {&(_ZTV7ee41562[9]), 9,16},
+ {&(_ZTV7ee41562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee41562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee41562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41562[];
+extern VTBL_ENTRY _ZTV7ee41562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41562[];
+static VTBL_ENTRY alt_thunk_names1220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415623barEv,_ZTv0_n16_N7ee415623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415623barEv,_ZThn20_N7ee415623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415623barEv,_ZThn12_N7ee415623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41562 = { "ee41562", // class name
+ bases_ee41562, 4,
+ &(vtc_ee41562[0]), // expected_vtbl_contents
+ &(vtt_ee41562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41562),8, //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 ee51562 : virtual dd1562 {
+ int e;
+ virtual void bar(); // _ZN7ee515623barEv
+ ~ee51562(); // tgen
+ ee51562(); // tgen
+};
+//SIG(1 ee51562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51562 ::bar(){vfunc_called(this, "_ZN7ee515623barEv");}
+ee51562 ::~ee51562(){ note_dtor("ee51562", this);} // tgen
+ee51562 ::ee51562(){ note_ctor("ee51562", this);} // tgen
+
+static void Test_ee51562()
+{
+ extern Class_Descriptor cd_ee51562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51562, buf);
+ ee51562 *dp, &lv = *(dp=new (buf) ee51562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee51562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee51562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(32,16), "ee51562");
+ check_base_class_offset(lv, (dd1562*), ABISELECT(16,8), "ee51562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51562.e");
+ test_class_info(&lv, &cd_ee51562);
+ dp->~ee51562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51562(Test_ee51562, "ee51562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51562C1Ev();
+extern void _ZN7ee51562D1Ev();
+Name_Map name_map_ee51562[] = {
+ NSPAIR(_ZN7ee51562C1Ev),
+ NSPAIR(_ZN7ee51562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee51562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 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 _ZTI7ee51562[];
+extern void _ZN7ee515623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515623barEv,_ZTv0_n16_N7ee515623barEv)();
+extern void ABISELECT(_ZThn32_N7ee515623barEv,_ZThn16_N7ee515623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515623barEv,_ZTv0_n16_N7ee515623barEv)();
+extern void ABISELECT(_ZThn48_N7ee515623barEv,_ZThn24_N7ee515623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51562[0]),
+ (VTBL_ENTRY)&_ZN7ee515623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51562[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515623barEv,_ZTv0_n16_N7ee515623barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515623barEv,_ZTv0_n16_N7ee515623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee51562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee51562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee51562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee51562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee51562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee51562[] = {
+ {&(_ZTV7ee51562[5]), 5,21},
+ {&(_ZTV7ee51562[10]), 10,21},
+ {&(_ZTV7ee51562[14]), 14,21},
+ {&(_ZTV7ee51562[19]), 19,21},
+ {&(_tg__ZTV6dd1562__7ee51562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee51562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee51562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee51562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee51562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51562[];
+extern VTBL_ENTRY _ZTV7ee51562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51562[];
+static VTBL_ENTRY alt_thunk_names1221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515623barEv,_ZTv0_n16_N7ee515623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515623barEv,_ZThn24_N7ee515623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515623barEv,_ZThn16_N7ee515623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51562 = { "ee51562", // class name
+ bases_ee51562, 4,
+ &(vtc_ee51562[0]), // expected_vtbl_contents
+ &(vtt_ee51562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51562),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51562),9, //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 ee61562 : dd1562 {
+ int e;
+ virtual void foo(); // _ZN7ee615623fooEv
+ virtual void bar(); // _ZN7ee615623barEv
+ ~ee61562(); // tgen
+ ee61562(); // tgen
+};
+//SIG(1 ee61562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61562 ::foo(){vfunc_called(this, "_ZN7ee615623fooEv");}
+void ee61562 ::bar(){vfunc_called(this, "_ZN7ee615623barEv");}
+ee61562 ::~ee61562(){ note_dtor("ee61562", this);} // tgen
+ee61562 ::ee61562(){ note_ctor("ee61562", this);} // tgen
+
+static void Test_ee61562()
+{
+ extern Class_Descriptor cd_ee61562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61562, buf);
+ ee61562 *dp, &lv = *(dp=new (buf) ee61562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee61562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee61562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(16,12), "ee61562");
+ check_base_class_offset(lv, (dd1562*), 0, "ee61562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61562.e");
+ test_class_info(&lv, &cd_ee61562);
+ dp->~ee61562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61562(Test_ee61562, "ee61562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61562C1Ev();
+extern void _ZN7ee61562D1Ev();
+Name_Map name_map_ee61562[] = {
+ NSPAIR(_ZN7ee61562C1Ev),
+ NSPAIR(_ZN7ee61562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee61562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61562[];
+extern void _ZN7ee615623fooEv();
+extern void _ZN7ee615623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615623barEv,_ZTv0_n16_N7ee615623barEv)();
+extern void ABISELECT(_ZThn16_N7ee615623barEv,_ZThn12_N7ee615623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615623fooEv,_ZTv0_n12_N7ee615623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615623fooEv,_ZThn20_N7ee615623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615623barEv,_ZTv0_n16_N7ee615623barEv)();
+extern void ABISELECT(_ZThn32_N7ee615623barEv,_ZThn20_N7ee615623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61562[0]),
+ (VTBL_ENTRY)&_ZN7ee615623fooEv,
+ (VTBL_ENTRY)&_ZN7ee615623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615623barEv,_ZTv0_n16_N7ee615623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615623fooEv,_ZTv0_n12_N7ee615623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615623barEv,_ZTv0_n16_N7ee615623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee61562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee61562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee61562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee61562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee61562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee61562[] = {
+ {&(_ZTV7ee61562[4]), 4,17},
+ {&(_tg__ZTV6dd1562__7ee61562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee61562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee61562[4]), 4,6},
+ {&(_ZTV7ee61562[10]), 10,17},
+ {&(_ZTV7ee61562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee61562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee61562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61562[];
+extern VTBL_ENTRY _ZTV7ee61562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61562[];
+static VTBL_ENTRY alt_thunk_names1222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615623fooEv,_ZTv0_n12_N7ee615623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615623fooEv,_ZThn20_N7ee615623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615623barEv,_ZTv0_n16_N7ee615623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615623barEv,_ZThn20_N7ee615623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615623barEv,_ZThn12_N7ee615623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61562 = { "ee61562", // class name
+ bases_ee61562, 4,
+ &(vtc_ee61562[0]), // expected_vtbl_contents
+ &(vtt_ee61562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61562),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71562 : virtual dd1562 {
+ int e;
+ virtual void foo(); // _ZN7ee715623fooEv
+ virtual void bar(); // _ZN7ee715623barEv
+ ~ee71562(); // tgen
+ ee71562(); // tgen
+};
+//SIG(1 ee71562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71562 ::foo(){vfunc_called(this, "_ZN7ee715623fooEv");}
+void ee71562 ::bar(){vfunc_called(this, "_ZN7ee715623barEv");}
+ee71562 ::~ee71562(){ note_dtor("ee71562", this);} // tgen
+ee71562 ::ee71562(){ note_ctor("ee71562", this);} // tgen
+
+static void Test_ee71562()
+{
+ extern Class_Descriptor cd_ee71562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71562, buf);
+ ee71562 *dp, &lv = *(dp=new (buf) ee71562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee71562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee71562");
+ check_base_class_offset(lv, (cc562*)(dd1562*), ABISELECT(32,16), "ee71562");
+ check_base_class_offset(lv, (dd1562*), ABISELECT(16,8), "ee71562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71562.e");
+ test_class_info(&lv, &cd_ee71562);
+ dp->~ee71562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71562(Test_ee71562, "ee71562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71562C1Ev();
+extern void _ZN7ee71562D1Ev();
+Name_Map name_map_ee71562[] = {
+ NSPAIR(_ZN7ee71562C1Ev),
+ NSPAIR(_ZN7ee71562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd1562;
+extern VTBL_ENTRY _ZTI6dd1562[];
+extern VTBL_ENTRY _ZTV6dd1562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1562[];
+static Base_Class bases_ee71562[] = {
+ // 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_bb62, 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_cc562, 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_dd1562, 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 _ZTI7ee71562[];
+extern void _ZN7ee715623fooEv();
+extern void _ZN7ee715623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715623barEv,_ZTv0_n16_N7ee715623barEv)();
+extern void ABISELECT(_ZThn32_N7ee715623barEv,_ZThn16_N7ee715623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715623fooEv,_ZTv0_n12_N7ee715623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715623fooEv,_ZThn24_N7ee715623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715623barEv,_ZTv0_n16_N7ee715623barEv)();
+extern void ABISELECT(_ZThn48_N7ee715623barEv,_ZThn24_N7ee715623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71562[0]),
+ (VTBL_ENTRY)&_ZN7ee715623fooEv,
+ (VTBL_ENTRY)&_ZN7ee715623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71562[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715623barEv,_ZTv0_n16_N7ee715623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715623fooEv,_ZTv0_n12_N7ee715623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715623barEv,_ZTv0_n16_N7ee715623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71562[];
+static VTBL_ENTRY _tg__ZTV6dd1562__7ee71562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd1562__7ee71562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1562__7ee71562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee71562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee71562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee71562[] = {
+ {&(_ZTV7ee71562[5]), 5,22},
+ {&(_ZTV7ee71562[11]), 11,22},
+ {&(_ZTV7ee71562[15]), 15,22},
+ {&(_ZTV7ee71562[20]), 20,22},
+ {&(_tg__ZTV6dd1562__7ee71562[4]), 4,4},
+ {&(_tg__ZTV5cc562__6dd1562__7ee71562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd1562__7ee71562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee71562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee71562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71562[];
+extern VTBL_ENTRY _ZTV7ee71562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71562[];
+static VTBL_ENTRY alt_thunk_names1223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715623fooEv,_ZTv0_n12_N7ee715623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715623fooEv,_ZThn24_N7ee715623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715623barEv,_ZTv0_n16_N7ee715623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715623barEv,_ZThn24_N7ee715623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715623barEv,_ZThn16_N7ee715623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71562 = { "ee71562", // class name
+ bases_ee71562, 4,
+ &(vtc_ee71562[0]), // expected_vtbl_contents
+ &(vtt_ee71562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71562),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71562),9, //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 dd2562 : cc562 {
+ int d;
+ virtual void foo(); // _ZN6dd25623fooEv
+ ~dd2562(); // tgen
+ dd2562(); // tgen
+};
+//SIG(-1 dd2562) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2562 ::foo(){vfunc_called(this, "_ZN6dd25623fooEv");}
+dd2562 ::~dd2562(){ note_dtor("dd2562", this);} // tgen
+dd2562 ::dd2562(){ note_ctor("dd2562", this);} // tgen
+
+static void Test_dd2562()
+{
+ extern Class_Descriptor cd_dd2562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2562, buf);
+ dd2562 *dp, &lv = *(dp=new (buf) dd2562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd2562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(16,12), "dd2562");
+ check_base_class_offset(lv, (cc562*), 0, "dd2562");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2562.d");
+ test_class_info(&lv, &cd_dd2562);
+ dp->~dd2562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2562(Test_dd2562, "dd2562", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2562C1Ev();
+extern void _ZN6dd2562D1Ev();
+Name_Map name_map_dd2562[] = {
+ NSPAIR(_ZN6dd2562C1Ev),
+ NSPAIR(_ZN6dd2562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd2562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd2562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd2562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd2562[] = {
+ {&(_ZTV6dd2562[3]), 3,11},
+ {&(_tg__ZTV5cc562__6dd2562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd2562[4]), 4,6},
+ {&(_ZTV6dd2562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static VTBL_ENTRY alt_thunk_names1224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2562 = { "dd2562", // class name
+ bases_dd2562, 3,
+ &(vtc_dd2562[0]), // expected_vtbl_contents
+ &(vtt_dd2562[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2562),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02562 : dd2562 {
+ int e;
+ ~ee02562(); // tgen
+ ee02562(); // tgen
+};
+//SIG(1 ee02562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02562 ::~ee02562(){ note_dtor("ee02562", this);} // tgen
+ee02562 ::ee02562(){ note_ctor("ee02562", this);} // tgen
+
+static void Test_ee02562()
+{
+ extern Class_Descriptor cd_ee02562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02562, buf);
+ ee02562 *dp, &lv = *(dp=new (buf) ee02562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee02562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(24,16), "ee02562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), 0, "ee02562");
+ check_base_class_offset(lv, (dd2562*), 0, "ee02562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02562.e");
+ test_class_info(&lv, &cd_ee02562);
+ dp->~ee02562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02562(Test_ee02562, "ee02562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02562C1Ev();
+extern void _ZN7ee02562D1Ev();
+Name_Map name_map_ee02562[] = {
+ NSPAIR(_ZN7ee02562C1Ev),
+ NSPAIR(_ZN7ee02562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee02562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee02562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee02562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee02562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee02562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee02562[] = {
+ {&(_ZTV7ee02562[3]), 3,11},
+ {&(_tg__ZTV6dd2562__7ee02562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee02562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee02562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee02562[4]), 4,6},
+ {&(_ZTV7ee02562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02562[];
+extern VTBL_ENTRY _ZTV7ee02562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02562[];
+static VTBL_ENTRY alt_thunk_names1225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02562 = { "ee02562", // class name
+ bases_ee02562, 4,
+ &(vtc_ee02562[0]), // expected_vtbl_contents
+ &(vtt_ee02562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02562),6, //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 ee12562 : virtual dd2562 {
+ int e;
+ ~ee12562(); // tgen
+ ee12562(); // tgen
+};
+//SIG(1 ee12562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12562 ::~ee12562(){ note_dtor("ee12562", this);} // tgen
+ee12562 ::ee12562(){ note_ctor("ee12562", this);} // tgen
+
+static void Test_ee12562()
+{
+ extern Class_Descriptor cd_ee12562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12562, buf);
+ ee12562 *dp, &lv = *(dp=new (buf) ee12562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee12562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(32,20), "ee12562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), ABISELECT(16,8), "ee12562");
+ check_base_class_offset(lv, (dd2562*), ABISELECT(16,8), "ee12562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12562.e");
+ test_class_info(&lv, &cd_ee12562);
+ dp->~ee12562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12562(Test_ee12562, "ee12562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12562C1Ev();
+extern void _ZN7ee12562D1Ev();
+Name_Map name_map_ee12562[] = {
+ NSPAIR(_ZN7ee12562C1Ev),
+ NSPAIR(_ZN7ee12562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee12562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, 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 _ZTI7ee12562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12562[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee12562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee12562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee12562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee12562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee12562[] = {
+ {&(_ZTV7ee12562[4]), 4,17},
+ {&(_ZTV7ee12562[9]), 9,17},
+ {&(_ZTV7ee12562[15]), 15,17},
+ {&(_tg__ZTV6dd2562__7ee12562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee12562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee12562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee12562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12562[];
+extern VTBL_ENTRY _ZTV7ee12562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12562[];
+static VTBL_ENTRY alt_thunk_names1226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12562 = { "ee12562", // class name
+ bases_ee12562, 4,
+ &(vtc_ee12562[0]), // expected_vtbl_contents
+ &(vtt_ee12562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12562),7, //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 ee22562 : dd2562 {
+ int e;
+ virtual void foo(); // _ZN7ee225623fooEv
+ ~ee22562(); // tgen
+ ee22562(); // tgen
+};
+//SIG(1 ee22562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22562 ::foo(){vfunc_called(this, "_ZN7ee225623fooEv");}
+ee22562 ::~ee22562(){ note_dtor("ee22562", this);} // tgen
+ee22562 ::ee22562(){ note_ctor("ee22562", this);} // tgen
+
+static void Test_ee22562()
+{
+ extern Class_Descriptor cd_ee22562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22562, buf);
+ ee22562 *dp, &lv = *(dp=new (buf) ee22562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee22562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(24,16), "ee22562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), 0, "ee22562");
+ check_base_class_offset(lv, (dd2562*), 0, "ee22562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22562.e");
+ test_class_info(&lv, &cd_ee22562);
+ dp->~ee22562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22562(Test_ee22562, "ee22562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22562C1Ev();
+extern void _ZN7ee22562D1Ev();
+Name_Map name_map_ee22562[] = {
+ NSPAIR(_ZN7ee22562C1Ev),
+ NSPAIR(_ZN7ee22562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee22562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN7ee225623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225623fooEv,_ZTv0_n12_N7ee225623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225623fooEv,_ZThn16_N7ee225623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN7ee225623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225623fooEv,_ZTv0_n12_N7ee225623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee22562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee22562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee22562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee22562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee22562[] = {
+ {&(_ZTV7ee22562[3]), 3,11},
+ {&(_tg__ZTV6dd2562__7ee22562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee22562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee22562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee22562[4]), 4,6},
+ {&(_ZTV7ee22562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22562[];
+extern VTBL_ENTRY _ZTV7ee22562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22562[];
+static VTBL_ENTRY alt_thunk_names1227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225623fooEv,_ZTv0_n12_N7ee225623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225623fooEv,_ZThn16_N7ee225623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22562 = { "ee22562", // class name
+ bases_ee22562, 4,
+ &(vtc_ee22562[0]), // expected_vtbl_contents
+ &(vtt_ee22562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22562),6, //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 ee32562 : virtual dd2562 {
+ int e;
+ virtual void foo(); // _ZN7ee325623fooEv
+ ~ee32562(); // tgen
+ ee32562(); // tgen
+};
+//SIG(1 ee32562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32562 ::foo(){vfunc_called(this, "_ZN7ee325623fooEv");}
+ee32562 ::~ee32562(){ note_dtor("ee32562", this);} // tgen
+ee32562 ::ee32562(){ note_ctor("ee32562", this);} // tgen
+
+static void Test_ee32562()
+{
+ extern Class_Descriptor cd_ee32562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32562, buf);
+ ee32562 *dp, &lv = *(dp=new (buf) ee32562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee32562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(32,20), "ee32562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), ABISELECT(16,8), "ee32562");
+ check_base_class_offset(lv, (dd2562*), ABISELECT(16,8), "ee32562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32562.e");
+ test_class_info(&lv, &cd_ee32562);
+ dp->~ee32562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32562(Test_ee32562, "ee32562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32562C1Ev();
+extern void _ZN7ee32562D1Ev();
+Name_Map name_map_ee32562[] = {
+ NSPAIR(_ZN7ee32562C1Ev),
+ NSPAIR(_ZN7ee32562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee32562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, ABISELECT(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 _ZTI7ee32562[];
+extern void _ZN7ee325623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325623fooEv,_ZTv0_n20_N7ee325623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325623fooEv,_ZThn8_N7ee325623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325623fooEv,_ZTv0_n12_N7ee325623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325623fooEv,_ZThn20_N7ee325623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32562[0]),
+ (VTBL_ENTRY)&_ZN7ee325623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325623fooEv,_ZTv0_n20_N7ee325623fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325623fooEv,_ZTv0_n12_N7ee325623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee32562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee32562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee32562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee32562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee32562[] = {
+ {&(_ZTV7ee32562[4]), 4,18},
+ {&(_ZTV7ee32562[10]), 10,18},
+ {&(_ZTV7ee32562[16]), 16,18},
+ {&(_tg__ZTV6dd2562__7ee32562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee32562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee32562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee32562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32562[];
+extern VTBL_ENTRY _ZTV7ee32562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32562[];
+static VTBL_ENTRY alt_thunk_names1228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325623fooEv,_ZTv0_n12_N7ee325623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325623fooEv,_ZThn20_N7ee325623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325623fooEv,_ZTv0_n20_N7ee325623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325623fooEv,_ZThn8_N7ee325623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32562 = { "ee32562", // class name
+ bases_ee32562, 4,
+ &(vtc_ee32562[0]), // expected_vtbl_contents
+ &(vtt_ee32562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32562),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32562),7, //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 ee42562 : dd2562 {
+ int e;
+ virtual void bar(); // _ZN7ee425623barEv
+ ~ee42562(); // tgen
+ ee42562(); // tgen
+};
+//SIG(1 ee42562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42562 ::bar(){vfunc_called(this, "_ZN7ee425623barEv");}
+ee42562 ::~ee42562(){ note_dtor("ee42562", this);} // tgen
+ee42562 ::ee42562(){ note_ctor("ee42562", this);} // tgen
+
+static void Test_ee42562()
+{
+ extern Class_Descriptor cd_ee42562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42562, buf);
+ ee42562 *dp, &lv = *(dp=new (buf) ee42562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee42562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(24,16), "ee42562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), 0, "ee42562");
+ check_base_class_offset(lv, (dd2562*), 0, "ee42562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42562.e");
+ test_class_info(&lv, &cd_ee42562);
+ dp->~ee42562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42562(Test_ee42562, "ee42562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42562C1Ev();
+extern void _ZN7ee42562D1Ev();
+Name_Map name_map_ee42562[] = {
+ NSPAIR(_ZN7ee42562C1Ev),
+ NSPAIR(_ZN7ee42562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee42562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42562[];
+extern void _ZN7ee425623barEv();
+extern void _ZN6dd25623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee425623barEv,_ZTv0_n16_N7ee425623barEv)();
+extern void ABISELECT(_ZThn24_N7ee425623barEv,_ZThn16_N7ee425623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42562[0]),
+ (VTBL_ENTRY)&_ZN7ee425623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425623barEv,_ZTv0_n16_N7ee425623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee42562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee42562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee42562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee42562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee42562[] = {
+ {&(_ZTV7ee42562[3]), 3,11},
+ {&(_tg__ZTV6dd2562__7ee42562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee42562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee42562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee42562[4]), 4,6},
+ {&(_ZTV7ee42562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42562[];
+extern VTBL_ENTRY _ZTV7ee42562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42562[];
+static VTBL_ENTRY alt_thunk_names1229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425623barEv,_ZTv0_n16_N7ee425623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425623barEv,_ZThn16_N7ee425623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42562 = { "ee42562", // class name
+ bases_ee42562, 4,
+ &(vtc_ee42562[0]), // expected_vtbl_contents
+ &(vtt_ee42562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42562),6, //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 ee52562 : virtual dd2562 {
+ int e;
+ virtual void bar(); // _ZN7ee525623barEv
+ ~ee52562(); // tgen
+ ee52562(); // tgen
+};
+//SIG(1 ee52562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52562 ::bar(){vfunc_called(this, "_ZN7ee525623barEv");}
+ee52562 ::~ee52562(){ note_dtor("ee52562", this);} // tgen
+ee52562 ::ee52562(){ note_ctor("ee52562", this);} // tgen
+
+static void Test_ee52562()
+{
+ extern Class_Descriptor cd_ee52562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52562, buf);
+ ee52562 *dp, &lv = *(dp=new (buf) ee52562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee52562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(32,20), "ee52562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), ABISELECT(16,8), "ee52562");
+ check_base_class_offset(lv, (dd2562*), ABISELECT(16,8), "ee52562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52562.e");
+ test_class_info(&lv, &cd_ee52562);
+ dp->~ee52562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52562(Test_ee52562, "ee52562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52562C1Ev();
+extern void _ZN7ee52562D1Ev();
+Name_Map name_map_ee52562[] = {
+ NSPAIR(_ZN7ee52562C1Ev),
+ NSPAIR(_ZN7ee52562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee52562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, ABISELECT(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 _ZTI7ee52562[];
+extern void _ZN7ee525623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525623barEv,_ZTv0_n16_N7ee525623barEv)();
+extern void ABISELECT(_ZThn16_N7ee525623barEv,_ZThn8_N7ee525623barEv)() __attribute__((weak));
+extern void _ZN6dd25623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee525623barEv,_ZTv0_n16_N7ee525623barEv)();
+extern void ABISELECT(_ZThn32_N7ee525623barEv,_ZThn20_N7ee525623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52562[0]),
+ (VTBL_ENTRY)&_ZN7ee525623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525623barEv,_ZTv0_n16_N7ee525623barEv),
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525623barEv,_ZTv0_n16_N7ee525623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee52562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee52562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee52562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee52562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee52562[] = {
+ {&(_ZTV7ee52562[4]), 4,18},
+ {&(_ZTV7ee52562[10]), 10,18},
+ {&(_ZTV7ee52562[16]), 16,18},
+ {&(_tg__ZTV6dd2562__7ee52562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee52562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee52562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee52562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52562[];
+extern VTBL_ENTRY _ZTV7ee52562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52562[];
+static VTBL_ENTRY alt_thunk_names1230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525623barEv,_ZTv0_n16_N7ee525623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525623barEv,_ZThn20_N7ee525623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525623barEv,_ZThn8_N7ee525623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52562 = { "ee52562", // class name
+ bases_ee52562, 4,
+ &(vtc_ee52562[0]), // expected_vtbl_contents
+ &(vtt_ee52562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52562),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52562),7, //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 ee62562 : dd2562 {
+ int e;
+ virtual void foo(); // _ZN7ee625623fooEv
+ virtual void bar(); // _ZN7ee625623barEv
+ ~ee62562(); // tgen
+ ee62562(); // tgen
+};
+//SIG(1 ee62562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62562 ::foo(){vfunc_called(this, "_ZN7ee625623fooEv");}
+void ee62562 ::bar(){vfunc_called(this, "_ZN7ee625623barEv");}
+ee62562 ::~ee62562(){ note_dtor("ee62562", this);} // tgen
+ee62562 ::ee62562(){ note_ctor("ee62562", this);} // tgen
+
+static void Test_ee62562()
+{
+ extern Class_Descriptor cd_ee62562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62562, buf);
+ ee62562 *dp, &lv = *(dp=new (buf) ee62562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee62562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(24,16), "ee62562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), 0, "ee62562");
+ check_base_class_offset(lv, (dd2562*), 0, "ee62562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62562.e");
+ test_class_info(&lv, &cd_ee62562);
+ dp->~ee62562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62562(Test_ee62562, "ee62562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62562C1Ev();
+extern void _ZN7ee62562D1Ev();
+Name_Map name_map_ee62562[] = {
+ NSPAIR(_ZN7ee62562C1Ev),
+ NSPAIR(_ZN7ee62562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee62562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62562[];
+extern void _ZN7ee625623barEv();
+extern void _ZN7ee625623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625623fooEv,_ZTv0_n12_N7ee625623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625623fooEv,_ZThn16_N7ee625623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625623barEv,_ZTv0_n16_N7ee625623barEv)();
+extern void ABISELECT(_ZThn24_N7ee625623barEv,_ZThn16_N7ee625623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62562[0]),
+ (VTBL_ENTRY)&_ZN7ee625623barEv,
+ (VTBL_ENTRY)&_ZN7ee625623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625623fooEv,_ZTv0_n12_N7ee625623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625623barEv,_ZTv0_n16_N7ee625623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee62562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee62562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee62562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee62562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee62562[] = {
+ {&(_ZTV7ee62562[3]), 3,11},
+ {&(_tg__ZTV6dd2562__7ee62562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee62562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee62562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee62562[4]), 4,6},
+ {&(_ZTV7ee62562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62562[];
+extern VTBL_ENTRY _ZTV7ee62562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62562[];
+static VTBL_ENTRY alt_thunk_names1231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25623fooEv,_ZThn16_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625623barEv,_ZTv0_n16_N7ee625623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625623barEv,_ZThn16_N7ee625623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625623fooEv,_ZTv0_n12_N7ee625623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625623fooEv,_ZThn16_N7ee625623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62562 = { "ee62562", // class name
+ bases_ee62562, 4,
+ &(vtc_ee62562[0]), // expected_vtbl_contents
+ &(vtt_ee62562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62562),6, //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 ee72562 : virtual dd2562 {
+ int e;
+ virtual void foo(); // _ZN7ee725623fooEv
+ virtual void bar(); // _ZN7ee725623barEv
+ ~ee72562(); // tgen
+ ee72562(); // tgen
+};
+//SIG(1 ee72562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72562 ::foo(){vfunc_called(this, "_ZN7ee725623fooEv");}
+void ee72562 ::bar(){vfunc_called(this, "_ZN7ee725623barEv");}
+ee72562 ::~ee72562(){ note_dtor("ee72562", this);} // tgen
+ee72562 ::ee72562(){ note_ctor("ee72562", this);} // tgen
+
+static void Test_ee72562()
+{
+ extern Class_Descriptor cd_ee72562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72562, buf);
+ ee72562 *dp, &lv = *(dp=new (buf) ee72562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee72562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd2562*), ABISELECT(32,20), "ee72562");
+ check_base_class_offset(lv, (cc562*)(dd2562*), ABISELECT(16,8), "ee72562");
+ check_base_class_offset(lv, (dd2562*), ABISELECT(16,8), "ee72562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72562.e");
+ test_class_info(&lv, &cd_ee72562);
+ dp->~ee72562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72562(Test_ee72562, "ee72562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72562C1Ev();
+extern void _ZN7ee72562D1Ev();
+Name_Map name_map_ee72562[] = {
+ NSPAIR(_ZN7ee72562C1Ev),
+ NSPAIR(_ZN7ee72562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd2562;
+extern VTBL_ENTRY _ZTI6dd2562[];
+extern VTBL_ENTRY _ZTV6dd2562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2562[];
+static Base_Class bases_ee72562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2562, ABISELECT(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 _ZTI7ee72562[];
+extern void _ZN7ee725623fooEv();
+extern void _ZN7ee725623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725623barEv,_ZTv0_n16_N7ee725623barEv)();
+extern void ABISELECT(_ZThn16_N7ee725623barEv,_ZThn8_N7ee725623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725623fooEv,_ZTv0_n20_N7ee725623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725623fooEv,_ZThn8_N7ee725623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725623fooEv,_ZTv0_n12_N7ee725623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725623fooEv,_ZThn20_N7ee725623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725623barEv,_ZTv0_n16_N7ee725623barEv)();
+extern void ABISELECT(_ZThn32_N7ee725623barEv,_ZThn20_N7ee725623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72562[0]),
+ (VTBL_ENTRY)&_ZN7ee725623fooEv,
+ (VTBL_ENTRY)&_ZN7ee725623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725623barEv,_ZTv0_n16_N7ee725623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725623fooEv,_ZTv0_n20_N7ee725623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725623fooEv,_ZTv0_n12_N7ee725623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725623barEv,_ZTv0_n16_N7ee725623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72562[];
+extern void _ZN5cc5623barEv();
+extern void _ZN6dd25623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2562__7ee72562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ (VTBL_ENTRY)&_ZN6dd25623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd2562__7ee72562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd2562__7ee72562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2562__7ee72562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee72562[] = {
+ {&(_ZTV7ee72562[4]), 4,19},
+ {&(_ZTV7ee72562[11]), 11,19},
+ {&(_ZTV7ee72562[17]), 17,19},
+ {&(_tg__ZTV6dd2562__7ee72562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd2562__7ee72562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd2562__7ee72562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2562__7ee72562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72562[];
+extern VTBL_ENTRY _ZTV7ee72562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72562[];
+static VTBL_ENTRY alt_thunk_names1232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25623fooEv,_ZTv0_n12_N6dd25623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25623fooEv,_ZThn12_N6dd25623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725623fooEv,_ZTv0_n12_N7ee725623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725623fooEv,_ZThn20_N7ee725623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725623fooEv,_ZTv0_n20_N7ee725623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725623fooEv,_ZThn8_N7ee725623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725623barEv,_ZTv0_n16_N7ee725623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725623barEv,_ZThn20_N7ee725623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725623barEv,_ZThn8_N7ee725623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72562 = { "ee72562", // class name
+ bases_ee72562, 4,
+ &(vtc_ee72562[0]), // expected_vtbl_contents
+ &(vtt_ee72562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72562),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72562),7, //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 dd3562 : virtual cc562 {
+ int d;
+ virtual void foo(); // _ZN6dd35623fooEv
+ ~dd3562(); // tgen
+ dd3562(); // tgen
+};
+//SIG(-1 dd3562) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3562 ::foo(){vfunc_called(this, "_ZN6dd35623fooEv");}
+dd3562 ::~dd3562(){ note_dtor("dd3562", this);} // tgen
+dd3562 ::dd3562(){ note_ctor("dd3562", this);} // tgen
+
+static void Test_dd3562()
+{
+ extern Class_Descriptor cd_dd3562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3562, buf);
+ dd3562 *dp, &lv = *(dp=new (buf) dd3562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd3562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,16), "dd3562");
+ check_base_class_offset(lv, (cc562*), ABISELECT(16,8), "dd3562");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3562.d");
+ test_class_info(&lv, &cd_dd3562);
+ dp->~dd3562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3562(Test_dd3562, "dd3562", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3562C1Ev();
+extern void _ZN6dd3562D1Ev();
+Name_Map name_map_dd3562[] = {
+ NSPAIR(_ZN6dd3562C1Ev),
+ NSPAIR(_ZN6dd3562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd3562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(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 _ZTI6dd3562[];
+extern void _ZN6dd35623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd3562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd3562[] = {
+ {&(_ZTV6dd3562[4]), 4,16},
+ {&(_ZTV6dd3562[9]), 9,16},
+ {&(_ZTV6dd3562[14]), 14,16},
+ {&(_tg__ZTV5cc562__6dd3562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd3562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static VTBL_ENTRY alt_thunk_names1233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3562 = { "dd3562", // class name
+ bases_dd3562, 3,
+ &(vtc_dd3562[0]), // expected_vtbl_contents
+ &(vtt_dd3562[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3562),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03562 : dd3562 {
+ int e;
+ ~ee03562(); // tgen
+ ee03562(); // tgen
+};
+//SIG(1 ee03562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03562 ::~ee03562(){ note_dtor("ee03562", this);} // tgen
+ee03562 ::ee03562(){ note_ctor("ee03562", this);} // tgen
+
+static void Test_ee03562()
+{
+ extern Class_Descriptor cd_ee03562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03562, buf);
+ ee03562 *dp, &lv = *(dp=new (buf) ee03562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee03562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee03562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(16,12), "ee03562");
+ check_base_class_offset(lv, (dd3562*), 0, "ee03562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03562.e");
+ test_class_info(&lv, &cd_ee03562);
+ dp->~ee03562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03562(Test_ee03562, "ee03562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03562C1Ev();
+extern void _ZN7ee03562D1Ev();
+Name_Map name_map_ee03562[] = {
+ NSPAIR(_ZN7ee03562C1Ev),
+ NSPAIR(_ZN7ee03562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee03562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03562[];
+extern void _ZN6dd35623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee03562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee03562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee03562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee03562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee03562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee03562[] = {
+ {&(_ZTV7ee03562[4]), 4,16},
+ {&(_tg__ZTV6dd3562__7ee03562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee03562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee03562[4]), 4,6},
+ {&(_ZTV7ee03562[9]), 9,16},
+ {&(_ZTV7ee03562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee03562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee03562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03562[];
+extern VTBL_ENTRY _ZTV7ee03562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03562[];
+static VTBL_ENTRY alt_thunk_names1234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03562 = { "ee03562", // class name
+ bases_ee03562, 4,
+ &(vtc_ee03562[0]), // expected_vtbl_contents
+ &(vtt_ee03562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03562),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13562 : virtual dd3562 {
+ int e;
+ ~ee13562(); // tgen
+ ee13562(); // tgen
+};
+//SIG(1 ee13562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13562 ::~ee13562(){ note_dtor("ee13562", this);} // tgen
+ee13562 ::ee13562(){ note_ctor("ee13562", this);} // tgen
+
+static void Test_ee13562()
+{
+ extern Class_Descriptor cd_ee13562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13562, buf);
+ ee13562 *dp, &lv = *(dp=new (buf) ee13562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee13562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee13562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(32,16), "ee13562");
+ check_base_class_offset(lv, (dd3562*), ABISELECT(16,8), "ee13562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13562.e");
+ test_class_info(&lv, &cd_ee13562);
+ dp->~ee13562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13562(Test_ee13562, "ee13562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13562C1Ev();
+extern void _ZN7ee13562D1Ev();
+Name_Map name_map_ee13562[] = {
+ NSPAIR(_ZN7ee13562C1Ev),
+ NSPAIR(_ZN7ee13562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee13562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, ABISELECT(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 _ZTI7ee13562[];
+extern void _ZN6dd35623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13562[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee13562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee13562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee13562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee13562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee13562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee13562[] = {
+ {&(_ZTV7ee13562[5]), 5,22},
+ {&(_ZTV7ee13562[10]), 10,22},
+ {&(_ZTV7ee13562[15]), 15,22},
+ {&(_ZTV7ee13562[20]), 20,22},
+ {&(_tg__ZTV6dd3562__7ee13562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee13562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee13562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee13562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee13562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13562[];
+extern VTBL_ENTRY _ZTV7ee13562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13562[];
+static VTBL_ENTRY alt_thunk_names1235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13562 = { "ee13562", // class name
+ bases_ee13562, 4,
+ &(vtc_ee13562[0]), // expected_vtbl_contents
+ &(vtt_ee13562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13562),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13562),9, //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 ee23562 : dd3562 {
+ int e;
+ virtual void foo(); // _ZN7ee235623fooEv
+ ~ee23562(); // tgen
+ ee23562(); // tgen
+};
+//SIG(1 ee23562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23562 ::foo(){vfunc_called(this, "_ZN7ee235623fooEv");}
+ee23562 ::~ee23562(){ note_dtor("ee23562", this);} // tgen
+ee23562 ::ee23562(){ note_ctor("ee23562", this);} // tgen
+
+static void Test_ee23562()
+{
+ extern Class_Descriptor cd_ee23562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23562, buf);
+ ee23562 *dp, &lv = *(dp=new (buf) ee23562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee23562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee23562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(16,12), "ee23562");
+ check_base_class_offset(lv, (dd3562*), 0, "ee23562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23562.e");
+ test_class_info(&lv, &cd_ee23562);
+ dp->~ee23562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23562(Test_ee23562, "ee23562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23562C1Ev();
+extern void _ZN7ee23562D1Ev();
+Name_Map name_map_ee23562[] = {
+ NSPAIR(_ZN7ee23562C1Ev),
+ NSPAIR(_ZN7ee23562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee23562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23562[];
+extern void _ZN7ee235623fooEv();
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235623fooEv,_ZTv0_n12_N7ee235623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235623fooEv,_ZThn20_N7ee235623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23562[0]),
+ (VTBL_ENTRY)&_ZN7ee235623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235623fooEv,_ZTv0_n12_N7ee235623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee23562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee23562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee23562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee23562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee23562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee23562[] = {
+ {&(_ZTV7ee23562[4]), 4,16},
+ {&(_tg__ZTV6dd3562__7ee23562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee23562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee23562[4]), 4,6},
+ {&(_ZTV7ee23562[9]), 9,16},
+ {&(_ZTV7ee23562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee23562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee23562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23562[];
+extern VTBL_ENTRY _ZTV7ee23562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23562[];
+static VTBL_ENTRY alt_thunk_names1236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235623fooEv,_ZTv0_n12_N7ee235623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235623fooEv,_ZThn20_N7ee235623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23562 = { "ee23562", // class name
+ bases_ee23562, 4,
+ &(vtc_ee23562[0]), // expected_vtbl_contents
+ &(vtt_ee23562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23562),8, //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 ee33562 : virtual dd3562 {
+ int e;
+ virtual void foo(); // _ZN7ee335623fooEv
+ ~ee33562(); // tgen
+ ee33562(); // tgen
+};
+//SIG(1 ee33562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33562 ::foo(){vfunc_called(this, "_ZN7ee335623fooEv");}
+ee33562 ::~ee33562(){ note_dtor("ee33562", this);} // tgen
+ee33562 ::ee33562(){ note_ctor("ee33562", this);} // tgen
+
+static void Test_ee33562()
+{
+ extern Class_Descriptor cd_ee33562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33562, buf);
+ ee33562 *dp, &lv = *(dp=new (buf) ee33562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee33562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee33562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(32,16), "ee33562");
+ check_base_class_offset(lv, (dd3562*), ABISELECT(16,8), "ee33562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33562.e");
+ test_class_info(&lv, &cd_ee33562);
+ dp->~ee33562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33562(Test_ee33562, "ee33562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33562C1Ev();
+extern void _ZN7ee33562D1Ev();
+Name_Map name_map_ee33562[] = {
+ NSPAIR(_ZN7ee33562C1Ev),
+ NSPAIR(_ZN7ee33562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee33562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, ABISELECT(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 _ZTI7ee33562[];
+extern void _ZN7ee335623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335623fooEv,_ZTv0_n20_N7ee335623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335623fooEv,_ZThn8_N7ee335623fooEv)() __attribute__((weak));
+extern void _ZN5cc5623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335623fooEv,_ZTv0_n12_N7ee335623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335623fooEv,_ZThn24_N7ee335623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33562[0]),
+ (VTBL_ENTRY)&_ZN7ee335623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335623fooEv,_ZTv0_n20_N7ee335623fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335623fooEv,_ZTv0_n12_N7ee335623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee33562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee33562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee33562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee33562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee33562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee33562[] = {
+ {&(_ZTV7ee33562[5]), 5,23},
+ {&(_ZTV7ee33562[11]), 11,23},
+ {&(_ZTV7ee33562[16]), 16,23},
+ {&(_ZTV7ee33562[21]), 21,23},
+ {&(_tg__ZTV6dd3562__7ee33562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee33562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee33562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee33562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee33562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33562[];
+extern VTBL_ENTRY _ZTV7ee33562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33562[];
+static VTBL_ENTRY alt_thunk_names1237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335623fooEv,_ZTv0_n12_N7ee335623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335623fooEv,_ZThn24_N7ee335623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335623fooEv,_ZTv0_n20_N7ee335623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335623fooEv,_ZThn8_N7ee335623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33562 = { "ee33562", // class name
+ bases_ee33562, 4,
+ &(vtc_ee33562[0]), // expected_vtbl_contents
+ &(vtt_ee33562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33562),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33562),9, //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 ee43562 : dd3562 {
+ int e;
+ virtual void bar(); // _ZN7ee435623barEv
+ ~ee43562(); // tgen
+ ee43562(); // tgen
+};
+//SIG(1 ee43562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43562 ::bar(){vfunc_called(this, "_ZN7ee435623barEv");}
+ee43562 ::~ee43562(){ note_dtor("ee43562", this);} // tgen
+ee43562 ::ee43562(){ note_ctor("ee43562", this);} // tgen
+
+static void Test_ee43562()
+{
+ extern Class_Descriptor cd_ee43562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43562, buf);
+ ee43562 *dp, &lv = *(dp=new (buf) ee43562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee43562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee43562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(16,12), "ee43562");
+ check_base_class_offset(lv, (dd3562*), 0, "ee43562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43562.e");
+ test_class_info(&lv, &cd_ee43562);
+ dp->~ee43562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43562(Test_ee43562, "ee43562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43562C1Ev();
+extern void _ZN7ee43562D1Ev();
+Name_Map name_map_ee43562[] = {
+ NSPAIR(_ZN7ee43562C1Ev),
+ NSPAIR(_ZN7ee43562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee43562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43562[];
+extern void _ZN6dd35623fooEv();
+extern void _ZN7ee435623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435623barEv,_ZTv0_n16_N7ee435623barEv)();
+extern void ABISELECT(_ZThn16_N7ee435623barEv,_ZThn12_N7ee435623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435623barEv,_ZTv0_n16_N7ee435623barEv)();
+extern void ABISELECT(_ZThn32_N7ee435623barEv,_ZThn20_N7ee435623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+ (VTBL_ENTRY)&_ZN7ee435623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435623barEv,_ZTv0_n16_N7ee435623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435623barEv,_ZTv0_n16_N7ee435623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee43562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee43562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee43562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee43562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee43562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee43562[] = {
+ {&(_ZTV7ee43562[4]), 4,17},
+ {&(_tg__ZTV6dd3562__7ee43562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee43562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee43562[4]), 4,6},
+ {&(_ZTV7ee43562[10]), 10,17},
+ {&(_ZTV7ee43562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee43562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee43562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43562[];
+extern VTBL_ENTRY _ZTV7ee43562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43562[];
+static VTBL_ENTRY alt_thunk_names1238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435623barEv,_ZTv0_n16_N7ee435623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435623barEv,_ZThn20_N7ee435623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435623barEv,_ZThn12_N7ee435623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43562 = { "ee43562", // class name
+ bases_ee43562, 4,
+ &(vtc_ee43562[0]), // expected_vtbl_contents
+ &(vtt_ee43562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43562),8, //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 ee53562 : virtual dd3562 {
+ int e;
+ virtual void bar(); // _ZN7ee535623barEv
+ ~ee53562(); // tgen
+ ee53562(); // tgen
+};
+//SIG(1 ee53562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53562 ::bar(){vfunc_called(this, "_ZN7ee535623barEv");}
+ee53562 ::~ee53562(){ note_dtor("ee53562", this);} // tgen
+ee53562 ::ee53562(){ note_ctor("ee53562", this);} // tgen
+
+static void Test_ee53562()
+{
+ extern Class_Descriptor cd_ee53562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53562, buf);
+ ee53562 *dp, &lv = *(dp=new (buf) ee53562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee53562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee53562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(32,16), "ee53562");
+ check_base_class_offset(lv, (dd3562*), ABISELECT(16,8), "ee53562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53562.e");
+ test_class_info(&lv, &cd_ee53562);
+ dp->~ee53562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53562(Test_ee53562, "ee53562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53562C1Ev();
+extern void _ZN7ee53562D1Ev();
+Name_Map name_map_ee53562[] = {
+ NSPAIR(_ZN7ee53562C1Ev),
+ NSPAIR(_ZN7ee53562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee53562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, ABISELECT(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 _ZTI7ee53562[];
+extern void _ZN7ee535623barEv();
+extern void _ZN6dd35623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535623barEv,_ZTv0_n16_N7ee535623barEv)();
+extern void ABISELECT(_ZThn32_N7ee535623barEv,_ZThn16_N7ee535623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535623barEv,_ZTv0_n16_N7ee535623barEv)();
+extern void ABISELECT(_ZThn48_N7ee535623barEv,_ZThn24_N7ee535623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53562[0]),
+ (VTBL_ENTRY)&_ZN7ee535623barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535623barEv,_ZTv0_n16_N7ee535623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535623barEv,_ZTv0_n16_N7ee535623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee53562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee53562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee53562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee53562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee53562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee53562[] = {
+ {&(_ZTV7ee53562[5]), 5,23},
+ {&(_ZTV7ee53562[11]), 11,23},
+ {&(_ZTV7ee53562[16]), 16,23},
+ {&(_ZTV7ee53562[21]), 21,23},
+ {&(_tg__ZTV6dd3562__7ee53562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee53562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee53562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee53562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee53562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53562[];
+extern VTBL_ENTRY _ZTV7ee53562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53562[];
+static VTBL_ENTRY alt_thunk_names1239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535623barEv,_ZTv0_n16_N7ee535623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535623barEv,_ZThn24_N7ee535623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535623barEv,_ZThn16_N7ee535623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53562 = { "ee53562", // class name
+ bases_ee53562, 4,
+ &(vtc_ee53562[0]), // expected_vtbl_contents
+ &(vtt_ee53562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53562),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53562),9, //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 ee63562 : dd3562 {
+ int e;
+ virtual void foo(); // _ZN7ee635623fooEv
+ virtual void bar(); // _ZN7ee635623barEv
+ ~ee63562(); // tgen
+ ee63562(); // tgen
+};
+//SIG(1 ee63562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63562 ::foo(){vfunc_called(this, "_ZN7ee635623fooEv");}
+void ee63562 ::bar(){vfunc_called(this, "_ZN7ee635623barEv");}
+ee63562 ::~ee63562(){ note_dtor("ee63562", this);} // tgen
+ee63562 ::ee63562(){ note_ctor("ee63562", this);} // tgen
+
+static void Test_ee63562()
+{
+ extern Class_Descriptor cd_ee63562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63562, buf);
+ ee63562 *dp, &lv = *(dp=new (buf) ee63562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee63562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee63562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(16,12), "ee63562");
+ check_base_class_offset(lv, (dd3562*), 0, "ee63562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63562.e");
+ test_class_info(&lv, &cd_ee63562);
+ dp->~ee63562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63562(Test_ee63562, "ee63562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63562C1Ev();
+extern void _ZN7ee63562D1Ev();
+Name_Map name_map_ee63562[] = {
+ NSPAIR(_ZN7ee63562C1Ev),
+ NSPAIR(_ZN7ee63562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee63562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63562[];
+extern void _ZN7ee635623fooEv();
+extern void _ZN7ee635623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635623barEv,_ZTv0_n16_N7ee635623barEv)();
+extern void ABISELECT(_ZThn16_N7ee635623barEv,_ZThn12_N7ee635623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635623fooEv,_ZTv0_n12_N7ee635623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635623fooEv,_ZThn20_N7ee635623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635623barEv,_ZTv0_n16_N7ee635623barEv)();
+extern void ABISELECT(_ZThn32_N7ee635623barEv,_ZThn20_N7ee635623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63562[0]),
+ (VTBL_ENTRY)&_ZN7ee635623fooEv,
+ (VTBL_ENTRY)&_ZN7ee635623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635623barEv,_ZTv0_n16_N7ee635623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635623fooEv,_ZTv0_n12_N7ee635623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635623barEv,_ZTv0_n16_N7ee635623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee63562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee63562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee63562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee63562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee63562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee63562[] = {
+ {&(_ZTV7ee63562[4]), 4,17},
+ {&(_tg__ZTV6dd3562__7ee63562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee63562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee63562[4]), 4,6},
+ {&(_ZTV7ee63562[10]), 10,17},
+ {&(_ZTV7ee63562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee63562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee63562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63562[];
+extern VTBL_ENTRY _ZTV7ee63562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63562[];
+static VTBL_ENTRY alt_thunk_names1240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn20_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635623fooEv,_ZTv0_n12_N7ee635623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635623fooEv,_ZThn20_N7ee635623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635623barEv,_ZTv0_n16_N7ee635623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635623barEv,_ZThn20_N7ee635623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635623barEv,_ZThn12_N7ee635623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63562 = { "ee63562", // class name
+ bases_ee63562, 4,
+ &(vtc_ee63562[0]), // expected_vtbl_contents
+ &(vtt_ee63562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63562),8, //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 ee73562 : virtual dd3562 {
+ int e;
+ virtual void foo(); // _ZN7ee735623fooEv
+ virtual void bar(); // _ZN7ee735623barEv
+ ~ee73562(); // tgen
+ ee73562(); // tgen
+};
+//SIG(1 ee73562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73562 ::foo(){vfunc_called(this, "_ZN7ee735623fooEv");}
+void ee73562 ::bar(){vfunc_called(this, "_ZN7ee735623barEv");}
+ee73562 ::~ee73562(){ note_dtor("ee73562", this);} // tgen
+ee73562 ::ee73562(){ note_ctor("ee73562", this);} // tgen
+
+static void Test_ee73562()
+{
+ extern Class_Descriptor cd_ee73562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73562, buf);
+ ee73562 *dp, &lv = *(dp=new (buf) ee73562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee73562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee73562");
+ check_base_class_offset(lv, (cc562*)(dd3562*), ABISELECT(32,16), "ee73562");
+ check_base_class_offset(lv, (dd3562*), ABISELECT(16,8), "ee73562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73562.e");
+ test_class_info(&lv, &cd_ee73562);
+ dp->~ee73562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73562(Test_ee73562, "ee73562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73562C1Ev();
+extern void _ZN7ee73562D1Ev();
+Name_Map name_map_ee73562[] = {
+ NSPAIR(_ZN7ee73562C1Ev),
+ NSPAIR(_ZN7ee73562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd3562;
+extern VTBL_ENTRY _ZTI6dd3562[];
+extern VTBL_ENTRY _ZTV6dd3562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3562[];
+static Base_Class bases_ee73562[] = {
+ // 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_bb62, 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_cc562, 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_dd3562, 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 _ZTI7ee73562[];
+extern void _ZN7ee735623fooEv();
+extern void _ZN7ee735623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735623fooEv,_ZTv0_n20_N7ee735623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735623fooEv,_ZThn8_N7ee735623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735623barEv,_ZTv0_n16_N7ee735623barEv)();
+extern void ABISELECT(_ZThn32_N7ee735623barEv,_ZThn16_N7ee735623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735623fooEv,_ZTv0_n12_N7ee735623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735623fooEv,_ZThn24_N7ee735623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735623barEv,_ZTv0_n16_N7ee735623barEv)();
+extern void ABISELECT(_ZThn48_N7ee735623barEv,_ZThn24_N7ee735623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73562[0]),
+ (VTBL_ENTRY)&_ZN7ee735623fooEv,
+ (VTBL_ENTRY)&_ZN7ee735623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735623fooEv,_ZTv0_n20_N7ee735623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735623barEv,_ZTv0_n16_N7ee735623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735623fooEv,_ZTv0_n12_N7ee735623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735623barEv,_ZTv0_n16_N7ee735623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73562[];
+extern void _ZN6dd35623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3562__7ee73562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN6dd35623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd3562__7ee73562[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3562__7ee73562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee73562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee73562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee73562[] = {
+ {&(_ZTV7ee73562[5]), 5,24},
+ {&(_ZTV7ee73562[12]), 12,24},
+ {&(_ZTV7ee73562[17]), 17,24},
+ {&(_ZTV7ee73562[22]), 22,24},
+ {&(_tg__ZTV6dd3562__7ee73562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd3562__7ee73562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd3562__7ee73562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee73562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee73562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73562[];
+extern VTBL_ENTRY _ZTV7ee73562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73562[];
+static VTBL_ENTRY alt_thunk_names1241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35623fooEv,_ZTv0_n12_N6dd35623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35623fooEv,_ZThn16_N6dd35623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735623fooEv,_ZTv0_n12_N7ee735623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735623fooEv,_ZThn24_N7ee735623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735623barEv,_ZTv0_n16_N7ee735623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735623barEv,_ZThn24_N7ee735623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735623barEv,_ZThn16_N7ee735623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735623fooEv,_ZTv0_n20_N7ee735623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735623fooEv,_ZThn8_N7ee735623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73562 = { "ee73562", // class name
+ bases_ee73562, 4,
+ &(vtc_ee73562[0]), // expected_vtbl_contents
+ &(vtt_ee73562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73562),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73562),9, //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 dd4562 : cc562 {
+ int d;
+ virtual void bar(); // _ZN6dd45623barEv
+ ~dd4562(); // tgen
+ dd4562(); // tgen
+};
+//SIG(-1 dd4562) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4562 ::bar(){vfunc_called(this, "_ZN6dd45623barEv");}
+dd4562 ::~dd4562(){ note_dtor("dd4562", this);} // tgen
+dd4562 ::dd4562(){ note_ctor("dd4562", this);} // tgen
+
+static void Test_dd4562()
+{
+ extern Class_Descriptor cd_dd4562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4562, buf);
+ dd4562 *dp, &lv = *(dp=new (buf) dd4562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd4562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(16,12), "dd4562");
+ check_base_class_offset(lv, (cc562*), 0, "dd4562");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4562.d");
+ test_class_info(&lv, &cd_dd4562);
+ dp->~dd4562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4562(Test_dd4562, "dd4562", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4562C1Ev();
+extern void _ZN6dd4562D1Ev();
+Name_Map name_map_dd4562[] = {
+ NSPAIR(_ZN6dd4562C1Ev),
+ NSPAIR(_ZN6dd4562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd4562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern void _ZN6dd45623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd4562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd4562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd4562[] = {
+ {&(_ZTV6dd4562[3]), 3,10},
+ {&(_tg__ZTV5cc562__6dd4562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd4562[4]), 4,6},
+ {&(_ZTV6dd4562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static VTBL_ENTRY alt_thunk_names1242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4562 = { "dd4562", // class name
+ bases_dd4562, 3,
+ &(vtc_dd4562[0]), // expected_vtbl_contents
+ &(vtt_dd4562[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4562),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04562 : dd4562 {
+ int e;
+ ~ee04562(); // tgen
+ ee04562(); // tgen
+};
+//SIG(1 ee04562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04562 ::~ee04562(){ note_dtor("ee04562", this);} // tgen
+ee04562 ::ee04562(){ note_ctor("ee04562", this);} // tgen
+
+static void Test_ee04562()
+{
+ extern Class_Descriptor cd_ee04562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04562, buf);
+ ee04562 *dp, &lv = *(dp=new (buf) ee04562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee04562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(24,16), "ee04562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), 0, "ee04562");
+ check_base_class_offset(lv, (dd4562*), 0, "ee04562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04562.e");
+ test_class_info(&lv, &cd_ee04562);
+ dp->~ee04562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04562(Test_ee04562, "ee04562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04562C1Ev();
+extern void _ZN7ee04562D1Ev();
+Name_Map name_map_ee04562[] = {
+ NSPAIR(_ZN7ee04562C1Ev),
+ NSPAIR(_ZN7ee04562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee04562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04562[];
+extern void _ZN6dd45623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee04562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee04562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee04562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee04562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee04562[] = {
+ {&(_ZTV7ee04562[3]), 3,10},
+ {&(_tg__ZTV6dd4562__7ee04562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee04562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee04562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee04562[4]), 4,6},
+ {&(_ZTV7ee04562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04562[];
+extern VTBL_ENTRY _ZTV7ee04562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04562[];
+static VTBL_ENTRY alt_thunk_names1243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04562 = { "ee04562", // class name
+ bases_ee04562, 4,
+ &(vtc_ee04562[0]), // expected_vtbl_contents
+ &(vtt_ee04562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04562),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14562 : virtual dd4562 {
+ int e;
+ ~ee14562(); // tgen
+ ee14562(); // tgen
+};
+//SIG(1 ee14562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14562 ::~ee14562(){ note_dtor("ee14562", this);} // tgen
+ee14562 ::ee14562(){ note_ctor("ee14562", this);} // tgen
+
+static void Test_ee14562()
+{
+ extern Class_Descriptor cd_ee14562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14562, buf);
+ ee14562 *dp, &lv = *(dp=new (buf) ee14562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee14562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(32,20), "ee14562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), ABISELECT(16,8), "ee14562");
+ check_base_class_offset(lv, (dd4562*), ABISELECT(16,8), "ee14562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14562.e");
+ test_class_info(&lv, &cd_ee14562);
+ dp->~ee14562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14562(Test_ee14562, "ee14562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14562C1Ev();
+extern void _ZN7ee14562D1Ev();
+Name_Map name_map_ee14562[] = {
+ NSPAIR(_ZN7ee14562C1Ev),
+ NSPAIR(_ZN7ee14562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee14562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, ABISELECT(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 _ZTI7ee14562[];
+extern void _ZN6dd45623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14562[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee14562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee14562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee14562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee14562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee14562[] = {
+ {&(_ZTV7ee14562[4]), 4,15},
+ {&(_ZTV7ee14562[8]), 8,15},
+ {&(_ZTV7ee14562[13]), 13,15},
+ {&(_tg__ZTV6dd4562__7ee14562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee14562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee14562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee14562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14562[];
+extern VTBL_ENTRY _ZTV7ee14562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14562[];
+static VTBL_ENTRY alt_thunk_names1244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14562 = { "ee14562", // class name
+ bases_ee14562, 4,
+ &(vtc_ee14562[0]), // expected_vtbl_contents
+ &(vtt_ee14562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14562),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14562),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24562 : dd4562 {
+ int e;
+ virtual void foo(); // _ZN7ee245623fooEv
+ ~ee24562(); // tgen
+ ee24562(); // tgen
+};
+//SIG(1 ee24562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24562 ::foo(){vfunc_called(this, "_ZN7ee245623fooEv");}
+ee24562 ::~ee24562(){ note_dtor("ee24562", this);} // tgen
+ee24562 ::ee24562(){ note_ctor("ee24562", this);} // tgen
+
+static void Test_ee24562()
+{
+ extern Class_Descriptor cd_ee24562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24562, buf);
+ ee24562 *dp, &lv = *(dp=new (buf) ee24562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee24562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(24,16), "ee24562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), 0, "ee24562");
+ check_base_class_offset(lv, (dd4562*), 0, "ee24562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24562.e");
+ test_class_info(&lv, &cd_ee24562);
+ dp->~ee24562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24562(Test_ee24562, "ee24562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24562C1Ev();
+extern void _ZN7ee24562D1Ev();
+Name_Map name_map_ee24562[] = {
+ NSPAIR(_ZN7ee24562C1Ev),
+ NSPAIR(_ZN7ee24562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee24562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24562[];
+extern void _ZN6dd45623barEv();
+extern void _ZN7ee245623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245623fooEv,_ZTv0_n12_N7ee245623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245623fooEv,_ZThn16_N7ee245623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+ (VTBL_ENTRY)&_ZN7ee245623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245623fooEv,_ZTv0_n12_N7ee245623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee24562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee24562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee24562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee24562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee24562[] = {
+ {&(_ZTV7ee24562[3]), 3,11},
+ {&(_tg__ZTV6dd4562__7ee24562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee24562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee24562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee24562[4]), 4,6},
+ {&(_ZTV7ee24562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24562[];
+extern VTBL_ENTRY _ZTV7ee24562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24562[];
+static VTBL_ENTRY alt_thunk_names1245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245623fooEv,_ZTv0_n12_N7ee245623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245623fooEv,_ZThn16_N7ee245623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24562 = { "ee24562", // class name
+ bases_ee24562, 4,
+ &(vtc_ee24562[0]), // expected_vtbl_contents
+ &(vtt_ee24562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24562),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 ee34562 : virtual dd4562 {
+ int e;
+ virtual void foo(); // _ZN7ee345623fooEv
+ ~ee34562(); // tgen
+ ee34562(); // tgen
+};
+//SIG(1 ee34562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34562 ::foo(){vfunc_called(this, "_ZN7ee345623fooEv");}
+ee34562 ::~ee34562(){ note_dtor("ee34562", this);} // tgen
+ee34562 ::ee34562(){ note_ctor("ee34562", this);} // tgen
+
+static void Test_ee34562()
+{
+ extern Class_Descriptor cd_ee34562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34562, buf);
+ ee34562 *dp, &lv = *(dp=new (buf) ee34562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee34562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(32,20), "ee34562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), ABISELECT(16,8), "ee34562");
+ check_base_class_offset(lv, (dd4562*), ABISELECT(16,8), "ee34562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34562.e");
+ test_class_info(&lv, &cd_ee34562);
+ dp->~ee34562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34562(Test_ee34562, "ee34562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34562C1Ev();
+extern void _ZN7ee34562D1Ev();
+Name_Map name_map_ee34562[] = {
+ NSPAIR(_ZN7ee34562C1Ev),
+ NSPAIR(_ZN7ee34562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee34562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, ABISELECT(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 _ZTI7ee34562[];
+extern void _ZN7ee345623fooEv();
+extern void _ZN6dd45623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345623fooEv,_ZTv0_n12_N7ee345623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345623fooEv,_ZThn20_N7ee345623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34562[0]),
+ (VTBL_ENTRY)&_ZN7ee345623fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345623fooEv,_ZTv0_n12_N7ee345623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee34562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee34562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee34562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee34562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee34562[] = {
+ {&(_ZTV7ee34562[4]), 4,16},
+ {&(_ZTV7ee34562[9]), 9,16},
+ {&(_ZTV7ee34562[14]), 14,16},
+ {&(_tg__ZTV6dd4562__7ee34562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee34562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee34562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee34562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34562[];
+extern VTBL_ENTRY _ZTV7ee34562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34562[];
+static VTBL_ENTRY alt_thunk_names1246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345623fooEv,_ZTv0_n12_N7ee345623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345623fooEv,_ZThn20_N7ee345623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34562 = { "ee34562", // class name
+ bases_ee34562, 4,
+ &(vtc_ee34562[0]), // expected_vtbl_contents
+ &(vtt_ee34562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34562),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 ee44562 : dd4562 {
+ int e;
+ virtual void bar(); // _ZN7ee445623barEv
+ ~ee44562(); // tgen
+ ee44562(); // tgen
+};
+//SIG(1 ee44562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44562 ::bar(){vfunc_called(this, "_ZN7ee445623barEv");}
+ee44562 ::~ee44562(){ note_dtor("ee44562", this);} // tgen
+ee44562 ::ee44562(){ note_ctor("ee44562", this);} // tgen
+
+static void Test_ee44562()
+{
+ extern Class_Descriptor cd_ee44562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44562, buf);
+ ee44562 *dp, &lv = *(dp=new (buf) ee44562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee44562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(24,16), "ee44562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), 0, "ee44562");
+ check_base_class_offset(lv, (dd4562*), 0, "ee44562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44562.e");
+ test_class_info(&lv, &cd_ee44562);
+ dp->~ee44562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44562(Test_ee44562, "ee44562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44562C1Ev();
+extern void _ZN7ee44562D1Ev();
+Name_Map name_map_ee44562[] = {
+ NSPAIR(_ZN7ee44562C1Ev),
+ NSPAIR(_ZN7ee44562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee44562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44562[];
+extern void _ZN7ee445623barEv();
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445623barEv,_ZTv0_n16_N7ee445623barEv)();
+extern void ABISELECT(_ZThn24_N7ee445623barEv,_ZThn16_N7ee445623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44562[0]),
+ (VTBL_ENTRY)&_ZN7ee445623barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445623barEv,_ZTv0_n16_N7ee445623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee44562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee44562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee44562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee44562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee44562[] = {
+ {&(_ZTV7ee44562[3]), 3,10},
+ {&(_tg__ZTV6dd4562__7ee44562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee44562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee44562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee44562[4]), 4,6},
+ {&(_ZTV7ee44562[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44562[];
+extern VTBL_ENTRY _ZTV7ee44562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44562[];
+static VTBL_ENTRY alt_thunk_names1247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445623barEv,_ZTv0_n16_N7ee445623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445623barEv,_ZThn16_N7ee445623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44562 = { "ee44562", // class name
+ bases_ee44562, 4,
+ &(vtc_ee44562[0]), // expected_vtbl_contents
+ &(vtt_ee44562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44562),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44562),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 ee54562 : virtual dd4562 {
+ int e;
+ virtual void bar(); // _ZN7ee545623barEv
+ ~ee54562(); // tgen
+ ee54562(); // tgen
+};
+//SIG(1 ee54562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54562 ::bar(){vfunc_called(this, "_ZN7ee545623barEv");}
+ee54562 ::~ee54562(){ note_dtor("ee54562", this);} // tgen
+ee54562 ::ee54562(){ note_ctor("ee54562", this);} // tgen
+
+static void Test_ee54562()
+{
+ extern Class_Descriptor cd_ee54562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54562, buf);
+ ee54562 *dp, &lv = *(dp=new (buf) ee54562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee54562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(32,20), "ee54562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), ABISELECT(16,8), "ee54562");
+ check_base_class_offset(lv, (dd4562*), ABISELECT(16,8), "ee54562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54562.e");
+ test_class_info(&lv, &cd_ee54562);
+ dp->~ee54562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54562(Test_ee54562, "ee54562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54562C1Ev();
+extern void _ZN7ee54562D1Ev();
+Name_Map name_map_ee54562[] = {
+ NSPAIR(_ZN7ee54562C1Ev),
+ NSPAIR(_ZN7ee54562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee54562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, ABISELECT(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 _ZTI7ee54562[];
+extern void _ZN7ee545623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545623barEv,_ZTv0_n16_N7ee545623barEv)();
+extern void ABISELECT(_ZThn16_N7ee545623barEv,_ZThn8_N7ee545623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545623barEv,_ZTv0_n16_N7ee545623barEv)();
+extern void ABISELECT(_ZThn32_N7ee545623barEv,_ZThn20_N7ee545623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54562[0]),
+ (VTBL_ENTRY)&_ZN7ee545623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545623barEv,_ZTv0_n16_N7ee545623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545623barEv,_ZTv0_n16_N7ee545623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee54562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee54562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee54562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee54562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee54562[] = {
+ {&(_ZTV7ee54562[4]), 4,16},
+ {&(_ZTV7ee54562[9]), 9,16},
+ {&(_ZTV7ee54562[14]), 14,16},
+ {&(_tg__ZTV6dd4562__7ee54562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee54562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee54562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee54562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54562[];
+extern VTBL_ENTRY _ZTV7ee54562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54562[];
+static VTBL_ENTRY alt_thunk_names1248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545623barEv,_ZTv0_n16_N7ee545623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545623barEv,_ZThn20_N7ee545623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545623barEv,_ZThn8_N7ee545623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54562 = { "ee54562", // class name
+ bases_ee54562, 4,
+ &(vtc_ee54562[0]), // expected_vtbl_contents
+ &(vtt_ee54562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54562),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 ee64562 : dd4562 {
+ int e;
+ virtual void foo(); // _ZN7ee645623fooEv
+ virtual void bar(); // _ZN7ee645623barEv
+ ~ee64562(); // tgen
+ ee64562(); // tgen
+};
+//SIG(1 ee64562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64562 ::foo(){vfunc_called(this, "_ZN7ee645623fooEv");}
+void ee64562 ::bar(){vfunc_called(this, "_ZN7ee645623barEv");}
+ee64562 ::~ee64562(){ note_dtor("ee64562", this);} // tgen
+ee64562 ::ee64562(){ note_ctor("ee64562", this);} // tgen
+
+static void Test_ee64562()
+{
+ extern Class_Descriptor cd_ee64562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64562, buf);
+ ee64562 *dp, &lv = *(dp=new (buf) ee64562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee64562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(24,16), "ee64562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), 0, "ee64562");
+ check_base_class_offset(lv, (dd4562*), 0, "ee64562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64562.e");
+ test_class_info(&lv, &cd_ee64562);
+ dp->~ee64562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64562(Test_ee64562, "ee64562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64562C1Ev();
+extern void _ZN7ee64562D1Ev();
+Name_Map name_map_ee64562[] = {
+ NSPAIR(_ZN7ee64562C1Ev),
+ NSPAIR(_ZN7ee64562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee64562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64562[];
+extern void _ZN7ee645623barEv();
+extern void _ZN7ee645623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645623fooEv,_ZTv0_n12_N7ee645623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645623fooEv,_ZThn16_N7ee645623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645623barEv,_ZTv0_n16_N7ee645623barEv)();
+extern void ABISELECT(_ZThn24_N7ee645623barEv,_ZThn16_N7ee645623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64562[0]),
+ (VTBL_ENTRY)&_ZN7ee645623barEv,
+ (VTBL_ENTRY)&_ZN7ee645623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645623fooEv,_ZTv0_n12_N7ee645623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645623barEv,_ZTv0_n16_N7ee645623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee64562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee64562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee64562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee64562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee64562[] = {
+ {&(_ZTV7ee64562[3]), 3,11},
+ {&(_tg__ZTV6dd4562__7ee64562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee64562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee64562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee64562[4]), 4,6},
+ {&(_ZTV7ee64562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64562[];
+extern VTBL_ENTRY _ZTV7ee64562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64562[];
+static VTBL_ENTRY alt_thunk_names1249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45623barEv,_ZThn16_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645623barEv,_ZTv0_n16_N7ee645623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645623barEv,_ZThn16_N7ee645623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645623fooEv,_ZTv0_n12_N7ee645623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645623fooEv,_ZThn16_N7ee645623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64562 = { "ee64562", // class name
+ bases_ee64562, 4,
+ &(vtc_ee64562[0]), // expected_vtbl_contents
+ &(vtt_ee64562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64562),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 ee74562 : virtual dd4562 {
+ int e;
+ virtual void foo(); // _ZN7ee745623fooEv
+ virtual void bar(); // _ZN7ee745623barEv
+ ~ee74562(); // tgen
+ ee74562(); // tgen
+};
+//SIG(1 ee74562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74562 ::foo(){vfunc_called(this, "_ZN7ee745623fooEv");}
+void ee74562 ::bar(){vfunc_called(this, "_ZN7ee745623barEv");}
+ee74562 ::~ee74562(){ note_dtor("ee74562", this);} // tgen
+ee74562 ::ee74562(){ note_ctor("ee74562", this);} // tgen
+
+static void Test_ee74562()
+{
+ extern Class_Descriptor cd_ee74562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74562, buf);
+ ee74562 *dp, &lv = *(dp=new (buf) ee74562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee74562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd4562*), ABISELECT(32,20), "ee74562");
+ check_base_class_offset(lv, (cc562*)(dd4562*), ABISELECT(16,8), "ee74562");
+ check_base_class_offset(lv, (dd4562*), ABISELECT(16,8), "ee74562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74562.e");
+ test_class_info(&lv, &cd_ee74562);
+ dp->~ee74562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74562(Test_ee74562, "ee74562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74562C1Ev();
+extern void _ZN7ee74562D1Ev();
+Name_Map name_map_ee74562[] = {
+ NSPAIR(_ZN7ee74562C1Ev),
+ NSPAIR(_ZN7ee74562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd4562;
+extern VTBL_ENTRY _ZTI6dd4562[];
+extern VTBL_ENTRY _ZTV6dd4562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4562[];
+static Base_Class bases_ee74562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4562, 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 _ZTI7ee74562[];
+extern void _ZN7ee745623fooEv();
+extern void _ZN7ee745623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745623barEv,_ZTv0_n16_N7ee745623barEv)();
+extern void ABISELECT(_ZThn16_N7ee745623barEv,_ZThn8_N7ee745623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745623fooEv,_ZTv0_n12_N7ee745623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745623fooEv,_ZThn20_N7ee745623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745623barEv,_ZTv0_n16_N7ee745623barEv)();
+extern void ABISELECT(_ZThn32_N7ee745623barEv,_ZThn20_N7ee745623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74562[0]),
+ (VTBL_ENTRY)&_ZN7ee745623fooEv,
+ (VTBL_ENTRY)&_ZN7ee745623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745623barEv,_ZTv0_n16_N7ee745623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745623fooEv,_ZTv0_n12_N7ee745623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745623barEv,_ZTv0_n16_N7ee745623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74562[];
+extern void _ZN6dd45623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4562__7ee74562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN6dd45623barEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd4562__7ee74562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd4562__7ee74562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv)();
+extern void ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4562__7ee74562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv),
+};
+static VTT_ENTRY vtt_ee74562[] = {
+ {&(_ZTV7ee74562[4]), 4,17},
+ {&(_ZTV7ee74562[10]), 10,17},
+ {&(_ZTV7ee74562[15]), 15,17},
+ {&(_tg__ZTV6dd4562__7ee74562[3]), 3,4},
+ {&(_tg__ZTV5cc5626dd4562__7ee74562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd4562__7ee74562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4562__7ee74562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74562[];
+extern VTBL_ENTRY _ZTV7ee74562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74562[];
+static VTBL_ENTRY alt_thunk_names1250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45623barEv,_ZTv0_n16_N6dd45623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45623barEv,_ZThn12_N6dd45623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745623fooEv,_ZTv0_n12_N7ee745623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745623fooEv,_ZThn20_N7ee745623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745623barEv,_ZTv0_n16_N7ee745623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745623barEv,_ZThn20_N7ee745623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745623barEv,_ZThn8_N7ee745623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74562 = { "ee74562", // class name
+ bases_ee74562, 4,
+ &(vtc_ee74562[0]), // expected_vtbl_contents
+ &(vtt_ee74562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74562),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 dd5562 : virtual cc562 {
+ int d;
+ virtual void bar(); // _ZN6dd55623barEv
+ ~dd5562(); // tgen
+ dd5562(); // tgen
+};
+//SIG(-1 dd5562) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5562 ::bar(){vfunc_called(this, "_ZN6dd55623barEv");}
+dd5562 ::~dd5562(){ note_dtor("dd5562", this);} // tgen
+dd5562 ::dd5562(){ note_ctor("dd5562", this);} // tgen
+
+static void Test_dd5562()
+{
+ extern Class_Descriptor cd_dd5562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5562, buf);
+ dd5562 *dp, &lv = *(dp=new (buf) dd5562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd5562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,16), "dd5562");
+ check_base_class_offset(lv, (cc562*), ABISELECT(16,8), "dd5562");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5562.d");
+ test_class_info(&lv, &cd_dd5562);
+ dp->~dd5562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5562(Test_dd5562, "dd5562", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5562C1Ev();
+extern void _ZN6dd5562D1Ev();
+Name_Map name_map_dd5562[] = {
+ NSPAIR(_ZN6dd5562C1Ev),
+ NSPAIR(_ZN6dd5562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd5562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(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 _ZTI6dd5562[];
+extern void _ZN6dd55623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd5562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd5562[] = {
+ {&(_ZTV6dd5562[4]), 4,16},
+ {&(_ZTV6dd5562[9]), 9,16},
+ {&(_ZTV6dd5562[14]), 14,16},
+ {&(_tg__ZTV5cc562__6dd5562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd5562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static VTBL_ENTRY alt_thunk_names1251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5562 = { "dd5562", // class name
+ bases_dd5562, 3,
+ &(vtc_dd5562[0]), // expected_vtbl_contents
+ &(vtt_dd5562[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5562),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05562 : dd5562 {
+ int e;
+ ~ee05562(); // tgen
+ ee05562(); // tgen
+};
+//SIG(1 ee05562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05562 ::~ee05562(){ note_dtor("ee05562", this);} // tgen
+ee05562 ::ee05562(){ note_ctor("ee05562", this);} // tgen
+
+static void Test_ee05562()
+{
+ extern Class_Descriptor cd_ee05562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05562, buf);
+ ee05562 *dp, &lv = *(dp=new (buf) ee05562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee05562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee05562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(16,12), "ee05562");
+ check_base_class_offset(lv, (dd5562*), 0, "ee05562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05562.e");
+ test_class_info(&lv, &cd_ee05562);
+ dp->~ee05562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05562(Test_ee05562, "ee05562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05562C1Ev();
+extern void _ZN7ee05562D1Ev();
+Name_Map name_map_ee05562[] = {
+ NSPAIR(_ZN7ee05562C1Ev),
+ NSPAIR(_ZN7ee05562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee05562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05562[];
+extern void _ZN6dd55623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee05562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee05562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee05562[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee05562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee05562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee05562[] = {
+ {&(_ZTV7ee05562[4]), 4,16},
+ {&(_tg__ZTV6dd5562__7ee05562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee05562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee05562[4]), 4,6},
+ {&(_ZTV7ee05562[9]), 9,16},
+ {&(_ZTV7ee05562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee05562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee05562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05562[];
+extern VTBL_ENTRY _ZTV7ee05562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05562[];
+static VTBL_ENTRY alt_thunk_names1252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05562 = { "ee05562", // class name
+ bases_ee05562, 4,
+ &(vtc_ee05562[0]), // expected_vtbl_contents
+ &(vtt_ee05562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05562),8, //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 ee15562 : virtual dd5562 {
+ int e;
+ ~ee15562(); // tgen
+ ee15562(); // tgen
+};
+//SIG(1 ee15562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15562 ::~ee15562(){ note_dtor("ee15562", this);} // tgen
+ee15562 ::ee15562(){ note_ctor("ee15562", this);} // tgen
+
+static void Test_ee15562()
+{
+ extern Class_Descriptor cd_ee15562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15562, buf);
+ ee15562 *dp, &lv = *(dp=new (buf) ee15562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee15562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee15562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(32,16), "ee15562");
+ check_base_class_offset(lv, (dd5562*), ABISELECT(16,8), "ee15562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15562.e");
+ test_class_info(&lv, &cd_ee15562);
+ dp->~ee15562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15562(Test_ee15562, "ee15562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15562C1Ev();
+extern void _ZN7ee15562D1Ev();
+Name_Map name_map_ee15562[] = {
+ NSPAIR(_ZN7ee15562C1Ev),
+ NSPAIR(_ZN7ee15562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee15562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, ABISELECT(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 _ZTI7ee15562[];
+extern void _ZN6dd55623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15562[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee15562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee15562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee15562[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee15562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee15562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee15562[] = {
+ {&(_ZTV7ee15562[5]), 5,22},
+ {&(_ZTV7ee15562[10]), 10,22},
+ {&(_ZTV7ee15562[15]), 15,22},
+ {&(_ZTV7ee15562[20]), 20,22},
+ {&(_tg__ZTV6dd5562__7ee15562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee15562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee15562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee15562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee15562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15562[];
+extern VTBL_ENTRY _ZTV7ee15562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15562[];
+static VTBL_ENTRY alt_thunk_names1253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15562 = { "ee15562", // class name
+ bases_ee15562, 4,
+ &(vtc_ee15562[0]), // expected_vtbl_contents
+ &(vtt_ee15562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15562),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15562),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25562 : dd5562 {
+ int e;
+ virtual void foo(); // _ZN7ee255623fooEv
+ ~ee25562(); // tgen
+ ee25562(); // tgen
+};
+//SIG(1 ee25562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25562 ::foo(){vfunc_called(this, "_ZN7ee255623fooEv");}
+ee25562 ::~ee25562(){ note_dtor("ee25562", this);} // tgen
+ee25562 ::ee25562(){ note_ctor("ee25562", this);} // tgen
+
+static void Test_ee25562()
+{
+ extern Class_Descriptor cd_ee25562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25562, buf);
+ ee25562 *dp, &lv = *(dp=new (buf) ee25562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee25562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee25562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(16,12), "ee25562");
+ check_base_class_offset(lv, (dd5562*), 0, "ee25562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25562.e");
+ test_class_info(&lv, &cd_ee25562);
+ dp->~ee25562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25562(Test_ee25562, "ee25562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25562C1Ev();
+extern void _ZN7ee25562D1Ev();
+Name_Map name_map_ee25562[] = {
+ NSPAIR(_ZN7ee25562C1Ev),
+ NSPAIR(_ZN7ee25562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee25562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25562[];
+extern void _ZN6dd55623barEv();
+extern void _ZN7ee255623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255623fooEv,_ZTv0_n12_N7ee255623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255623fooEv,_ZThn20_N7ee255623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+ (VTBL_ENTRY)&_ZN7ee255623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255623fooEv,_ZTv0_n12_N7ee255623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee25562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee25562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee25562[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee25562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee25562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee25562[] = {
+ {&(_ZTV7ee25562[4]), 4,17},
+ {&(_tg__ZTV6dd5562__7ee25562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee25562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee25562[4]), 4,6},
+ {&(_ZTV7ee25562[10]), 10,17},
+ {&(_ZTV7ee25562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee25562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee25562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25562[];
+extern VTBL_ENTRY _ZTV7ee25562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25562[];
+static VTBL_ENTRY alt_thunk_names1254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255623fooEv,_ZTv0_n12_N7ee255623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255623fooEv,_ZThn20_N7ee255623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25562 = { "ee25562", // class name
+ bases_ee25562, 4,
+ &(vtc_ee25562[0]), // expected_vtbl_contents
+ &(vtt_ee25562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25562),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 ee35562 : virtual dd5562 {
+ int e;
+ virtual void foo(); // _ZN7ee355623fooEv
+ ~ee35562(); // tgen
+ ee35562(); // tgen
+};
+//SIG(1 ee35562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35562 ::foo(){vfunc_called(this, "_ZN7ee355623fooEv");}
+ee35562 ::~ee35562(){ note_dtor("ee35562", this);} // tgen
+ee35562 ::ee35562(){ note_ctor("ee35562", this);} // tgen
+
+static void Test_ee35562()
+{
+ extern Class_Descriptor cd_ee35562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35562, buf);
+ ee35562 *dp, &lv = *(dp=new (buf) ee35562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee35562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee35562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(32,16), "ee35562");
+ check_base_class_offset(lv, (dd5562*), ABISELECT(16,8), "ee35562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35562.e");
+ test_class_info(&lv, &cd_ee35562);
+ dp->~ee35562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35562(Test_ee35562, "ee35562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35562C1Ev();
+extern void _ZN7ee35562D1Ev();
+Name_Map name_map_ee35562[] = {
+ NSPAIR(_ZN7ee35562C1Ev),
+ NSPAIR(_ZN7ee35562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee35562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, ABISELECT(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 _ZTI7ee35562[];
+extern void _ZN7ee355623fooEv();
+extern void _ZN6dd55623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355623fooEv,_ZTv0_n12_N7ee355623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355623fooEv,_ZThn24_N7ee355623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35562[0]),
+ (VTBL_ENTRY)&_ZN7ee355623fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355623fooEv,_ZTv0_n12_N7ee355623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee35562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee35562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee35562[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee35562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee35562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee35562[] = {
+ {&(_ZTV7ee35562[5]), 5,23},
+ {&(_ZTV7ee35562[11]), 11,23},
+ {&(_ZTV7ee35562[16]), 16,23},
+ {&(_ZTV7ee35562[21]), 21,23},
+ {&(_tg__ZTV6dd5562__7ee35562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee35562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee35562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee35562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee35562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35562[];
+extern VTBL_ENTRY _ZTV7ee35562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35562[];
+static VTBL_ENTRY alt_thunk_names1255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355623fooEv,_ZTv0_n12_N7ee355623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355623fooEv,_ZThn24_N7ee355623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35562 = { "ee35562", // class name
+ bases_ee35562, 4,
+ &(vtc_ee35562[0]), // expected_vtbl_contents
+ &(vtt_ee35562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35562),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35562),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 ee45562 : dd5562 {
+ int e;
+ virtual void bar(); // _ZN7ee455623barEv
+ ~ee45562(); // tgen
+ ee45562(); // tgen
+};
+//SIG(1 ee45562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45562 ::bar(){vfunc_called(this, "_ZN7ee455623barEv");}
+ee45562 ::~ee45562(){ note_dtor("ee45562", this);} // tgen
+ee45562 ::ee45562(){ note_ctor("ee45562", this);} // tgen
+
+static void Test_ee45562()
+{
+ extern Class_Descriptor cd_ee45562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45562, buf);
+ ee45562 *dp, &lv = *(dp=new (buf) ee45562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee45562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee45562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(16,12), "ee45562");
+ check_base_class_offset(lv, (dd5562*), 0, "ee45562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45562.e");
+ test_class_info(&lv, &cd_ee45562);
+ dp->~ee45562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45562(Test_ee45562, "ee45562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45562C1Ev();
+extern void _ZN7ee45562D1Ev();
+Name_Map name_map_ee45562[] = {
+ NSPAIR(_ZN7ee45562C1Ev),
+ NSPAIR(_ZN7ee45562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee45562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45562[];
+extern void _ZN7ee455623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455623barEv,_ZTv0_n16_N7ee455623barEv)();
+extern void ABISELECT(_ZThn16_N7ee455623barEv,_ZThn12_N7ee455623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455623barEv,_ZTv0_n16_N7ee455623barEv)();
+extern void ABISELECT(_ZThn32_N7ee455623barEv,_ZThn20_N7ee455623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45562[0]),
+ (VTBL_ENTRY)&_ZN7ee455623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455623barEv,_ZTv0_n16_N7ee455623barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455623barEv,_ZTv0_n16_N7ee455623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee45562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee45562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee45562[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee45562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee45562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee45562[] = {
+ {&(_ZTV7ee45562[4]), 4,16},
+ {&(_tg__ZTV6dd5562__7ee45562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee45562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee45562[4]), 4,6},
+ {&(_ZTV7ee45562[9]), 9,16},
+ {&(_ZTV7ee45562[14]), 14,16},
+ {&(_tg__ZTV5cc562__7ee45562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee45562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45562[];
+extern VTBL_ENTRY _ZTV7ee45562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45562[];
+static VTBL_ENTRY alt_thunk_names1256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455623barEv,_ZTv0_n16_N7ee455623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455623barEv,_ZThn20_N7ee455623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455623barEv,_ZThn12_N7ee455623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45562 = { "ee45562", // class name
+ bases_ee45562, 4,
+ &(vtc_ee45562[0]), // expected_vtbl_contents
+ &(vtt_ee45562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45562),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45562),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 ee55562 : virtual dd5562 {
+ int e;
+ virtual void bar(); // _ZN7ee555623barEv
+ ~ee55562(); // tgen
+ ee55562(); // tgen
+};
+//SIG(1 ee55562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55562 ::bar(){vfunc_called(this, "_ZN7ee555623barEv");}
+ee55562 ::~ee55562(){ note_dtor("ee55562", this);} // tgen
+ee55562 ::ee55562(){ note_ctor("ee55562", this);} // tgen
+
+static void Test_ee55562()
+{
+ extern Class_Descriptor cd_ee55562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55562, buf);
+ ee55562 *dp, &lv = *(dp=new (buf) ee55562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee55562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee55562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(32,16), "ee55562");
+ check_base_class_offset(lv, (dd5562*), ABISELECT(16,8), "ee55562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55562.e");
+ test_class_info(&lv, &cd_ee55562);
+ dp->~ee55562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55562(Test_ee55562, "ee55562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55562C1Ev();
+extern void _ZN7ee55562D1Ev();
+Name_Map name_map_ee55562[] = {
+ NSPAIR(_ZN7ee55562C1Ev),
+ NSPAIR(_ZN7ee55562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee55562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, ABISELECT(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 _ZTI7ee55562[];
+extern void _ZN7ee555623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555623barEv,_ZTv0_n20_N7ee555623barEv)();
+extern void ABISELECT(_ZThn16_N7ee555623barEv,_ZThn8_N7ee555623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555623barEv,_ZTv0_n16_N7ee555623barEv)();
+extern void ABISELECT(_ZThn32_N7ee555623barEv,_ZThn16_N7ee555623barEv)() __attribute__((weak));
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee555623barEv,_ZTv0_n16_N7ee555623barEv)();
+extern void ABISELECT(_ZThn48_N7ee555623barEv,_ZThn24_N7ee555623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55562[0]),
+ (VTBL_ENTRY)&_ZN7ee555623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555623barEv,_ZTv0_n20_N7ee555623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555623barEv,_ZTv0_n16_N7ee555623barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555623barEv,_ZTv0_n16_N7ee555623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee55562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee55562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee55562[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee55562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee55562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee55562[] = {
+ {&(_ZTV7ee55562[5]), 5,23},
+ {&(_ZTV7ee55562[11]), 11,23},
+ {&(_ZTV7ee55562[16]), 16,23},
+ {&(_ZTV7ee55562[21]), 21,23},
+ {&(_tg__ZTV6dd5562__7ee55562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee55562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee55562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee55562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee55562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55562[];
+extern VTBL_ENTRY _ZTV7ee55562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55562[];
+static VTBL_ENTRY alt_thunk_names1257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555623barEv,_ZTv0_n16_N7ee555623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555623barEv,_ZThn24_N7ee555623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555623barEv,_ZThn16_N7ee555623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555623barEv,_ZTv0_n20_N7ee555623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555623barEv,_ZThn8_N7ee555623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55562 = { "ee55562", // class name
+ bases_ee55562, 4,
+ &(vtc_ee55562[0]), // expected_vtbl_contents
+ &(vtt_ee55562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55562),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55562),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 ee65562 : dd5562 {
+ int e;
+ virtual void foo(); // _ZN7ee655623fooEv
+ virtual void bar(); // _ZN7ee655623barEv
+ ~ee65562(); // tgen
+ ee65562(); // tgen
+};
+//SIG(1 ee65562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65562 ::foo(){vfunc_called(this, "_ZN7ee655623fooEv");}
+void ee65562 ::bar(){vfunc_called(this, "_ZN7ee655623barEv");}
+ee65562 ::~ee65562(){ note_dtor("ee65562", this);} // tgen
+ee65562 ::ee65562(){ note_ctor("ee65562", this);} // tgen
+
+static void Test_ee65562()
+{
+ extern Class_Descriptor cd_ee65562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65562, buf);
+ ee65562 *dp, &lv = *(dp=new (buf) ee65562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee65562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee65562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(16,12), "ee65562");
+ check_base_class_offset(lv, (dd5562*), 0, "ee65562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65562.e");
+ test_class_info(&lv, &cd_ee65562);
+ dp->~ee65562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65562(Test_ee65562, "ee65562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65562C1Ev();
+extern void _ZN7ee65562D1Ev();
+Name_Map name_map_ee65562[] = {
+ NSPAIR(_ZN7ee65562C1Ev),
+ NSPAIR(_ZN7ee65562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee65562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65562[];
+extern void _ZN7ee655623barEv();
+extern void _ZN7ee655623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655623barEv,_ZTv0_n16_N7ee655623barEv)();
+extern void ABISELECT(_ZThn16_N7ee655623barEv,_ZThn12_N7ee655623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655623fooEv,_ZTv0_n12_N7ee655623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655623fooEv,_ZThn20_N7ee655623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655623barEv,_ZTv0_n16_N7ee655623barEv)();
+extern void ABISELECT(_ZThn32_N7ee655623barEv,_ZThn20_N7ee655623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65562[0]),
+ (VTBL_ENTRY)&_ZN7ee655623barEv,
+ (VTBL_ENTRY)&_ZN7ee655623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655623barEv,_ZTv0_n16_N7ee655623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655623fooEv,_ZTv0_n12_N7ee655623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655623barEv,_ZTv0_n16_N7ee655623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee65562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee65562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee65562[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee65562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee65562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee65562[] = {
+ {&(_ZTV7ee65562[4]), 4,17},
+ {&(_tg__ZTV6dd5562__7ee65562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee65562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee65562[4]), 4,6},
+ {&(_ZTV7ee65562[10]), 10,17},
+ {&(_ZTV7ee65562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee65562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee65562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65562[];
+extern VTBL_ENTRY _ZTV7ee65562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65562[];
+static VTBL_ENTRY alt_thunk_names1258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn20_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn12_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655623fooEv,_ZTv0_n12_N7ee655623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655623fooEv,_ZThn20_N7ee655623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655623barEv,_ZTv0_n16_N7ee655623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655623barEv,_ZThn20_N7ee655623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655623barEv,_ZThn12_N7ee655623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65562 = { "ee65562", // class name
+ bases_ee65562, 4,
+ &(vtc_ee65562[0]), // expected_vtbl_contents
+ &(vtt_ee65562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65562),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 ee75562 : virtual dd5562 {
+ int e;
+ virtual void foo(); // _ZN7ee755623fooEv
+ virtual void bar(); // _ZN7ee755623barEv
+ ~ee75562(); // tgen
+ ee75562(); // tgen
+};
+//SIG(1 ee75562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75562 ::foo(){vfunc_called(this, "_ZN7ee755623fooEv");}
+void ee75562 ::bar(){vfunc_called(this, "_ZN7ee755623barEv");}
+ee75562 ::~ee75562(){ note_dtor("ee75562", this);} // tgen
+ee75562 ::ee75562(){ note_ctor("ee75562", this);} // tgen
+
+static void Test_ee75562()
+{
+ extern Class_Descriptor cd_ee75562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75562, buf);
+ ee75562 *dp, &lv = *(dp=new (buf) ee75562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee75562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee75562");
+ check_base_class_offset(lv, (cc562*)(dd5562*), ABISELECT(32,16), "ee75562");
+ check_base_class_offset(lv, (dd5562*), ABISELECT(16,8), "ee75562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75562.e");
+ test_class_info(&lv, &cd_ee75562);
+ dp->~ee75562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75562(Test_ee75562, "ee75562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75562C1Ev();
+extern void _ZN7ee75562D1Ev();
+Name_Map name_map_ee75562[] = {
+ NSPAIR(_ZN7ee75562C1Ev),
+ NSPAIR(_ZN7ee75562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd5562;
+extern VTBL_ENTRY _ZTI6dd5562[];
+extern VTBL_ENTRY _ZTV6dd5562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5562[];
+static Base_Class bases_ee75562[] = {
+ // 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_bb62, 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_cc562, 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_dd5562, 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 _ZTI7ee75562[];
+extern void _ZN7ee755623fooEv();
+extern void _ZN7ee755623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755623barEv,_ZTv0_n20_N7ee755623barEv)();
+extern void ABISELECT(_ZThn16_N7ee755623barEv,_ZThn8_N7ee755623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755623barEv,_ZTv0_n16_N7ee755623barEv)();
+extern void ABISELECT(_ZThn32_N7ee755623barEv,_ZThn16_N7ee755623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755623fooEv,_ZTv0_n12_N7ee755623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755623fooEv,_ZThn24_N7ee755623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755623barEv,_ZTv0_n16_N7ee755623barEv)();
+extern void ABISELECT(_ZThn48_N7ee755623barEv,_ZThn24_N7ee755623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75562[0]),
+ (VTBL_ENTRY)&_ZN7ee755623fooEv,
+ (VTBL_ENTRY)&_ZN7ee755623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755623barEv,_ZTv0_n20_N7ee755623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755623barEv,_ZTv0_n16_N7ee755623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755623fooEv,_ZTv0_n12_N7ee755623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755623barEv,_ZTv0_n16_N7ee755623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75562[];
+extern void _ZN6dd55623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5562__7ee75562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN6dd55623barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd5562__7ee75562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv)();
+extern void ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5562__7ee75562[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee75562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee75562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee75562[] = {
+ {&(_ZTV7ee75562[5]), 5,24},
+ {&(_ZTV7ee75562[12]), 12,24},
+ {&(_ZTV7ee75562[17]), 17,24},
+ {&(_ZTV7ee75562[22]), 22,24},
+ {&(_tg__ZTV6dd5562__7ee75562[4]), 4,5},
+ {&(_tg__ZTV5cc562__6dd5562__7ee75562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd5562__7ee75562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee75562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee75562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75562[];
+extern VTBL_ENTRY _ZTV7ee75562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75562[];
+static VTBL_ENTRY alt_thunk_names1259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55623barEv,_ZTv0_n16_N6dd55623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55623barEv,_ZThn16_N6dd55623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55623barEv,_ZThn8_N6dd55623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755623fooEv,_ZTv0_n12_N7ee755623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755623fooEv,_ZThn24_N7ee755623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755623barEv,_ZTv0_n16_N7ee755623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755623barEv,_ZThn24_N7ee755623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755623barEv,_ZThn16_N7ee755623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755623barEv,_ZTv0_n20_N7ee755623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755623barEv,_ZThn8_N7ee755623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75562 = { "ee75562", // class name
+ bases_ee75562, 4,
+ &(vtc_ee75562[0]), // expected_vtbl_contents
+ &(vtt_ee75562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75562),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75562),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 dd6562 : cc562 {
+ int d;
+ virtual void bar(); // _ZN6dd65623barEv
+ virtual void foo(); // _ZN6dd65623fooEv
+ ~dd6562(); // tgen
+ dd6562(); // tgen
+};
+//SIG(-1 dd6562) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6562 ::bar(){vfunc_called(this, "_ZN6dd65623barEv");}
+void dd6562 ::foo(){vfunc_called(this, "_ZN6dd65623fooEv");}
+dd6562 ::~dd6562(){ note_dtor("dd6562", this);} // tgen
+dd6562 ::dd6562(){ note_ctor("dd6562", this);} // tgen
+
+static void Test_dd6562()
+{
+ extern Class_Descriptor cd_dd6562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6562, buf);
+ dd6562 *dp, &lv = *(dp=new (buf) dd6562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd6562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(16,12), "dd6562");
+ check_base_class_offset(lv, (cc562*), 0, "dd6562");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6562.d");
+ test_class_info(&lv, &cd_dd6562);
+ dp->~dd6562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6562(Test_dd6562, "dd6562", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6562C1Ev();
+extern void _ZN6dd6562D1Ev();
+Name_Map name_map_dd6562[] = {
+ NSPAIR(_ZN6dd6562C1Ev),
+ NSPAIR(_ZN6dd6562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd6562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd6562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd6562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd6562[] = {
+ {&(_ZTV6dd6562[3]), 3,11},
+ {&(_tg__ZTV5cc562__6dd6562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd6562[4]), 4,6},
+ {&(_ZTV6dd6562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static VTBL_ENTRY alt_thunk_names1260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6562 = { "dd6562", // class name
+ bases_dd6562, 3,
+ &(vtc_dd6562[0]), // expected_vtbl_contents
+ &(vtt_dd6562[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6562),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06562 : dd6562 {
+ int e;
+ ~ee06562(); // tgen
+ ee06562(); // tgen
+};
+//SIG(1 ee06562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06562 ::~ee06562(){ note_dtor("ee06562", this);} // tgen
+ee06562 ::ee06562(){ note_ctor("ee06562", this);} // tgen
+
+static void Test_ee06562()
+{
+ extern Class_Descriptor cd_ee06562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06562, buf);
+ ee06562 *dp, &lv = *(dp=new (buf) ee06562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee06562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(24,16), "ee06562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), 0, "ee06562");
+ check_base_class_offset(lv, (dd6562*), 0, "ee06562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06562.e");
+ test_class_info(&lv, &cd_ee06562);
+ dp->~ee06562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06562(Test_ee06562, "ee06562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06562C1Ev();
+extern void _ZN7ee06562D1Ev();
+Name_Map name_map_ee06562[] = {
+ NSPAIR(_ZN7ee06562C1Ev),
+ NSPAIR(_ZN7ee06562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee06562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee06562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee06562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee06562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee06562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee06562[] = {
+ {&(_ZTV7ee06562[3]), 3,11},
+ {&(_tg__ZTV6dd6562__7ee06562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee06562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee06562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee06562[4]), 4,6},
+ {&(_ZTV7ee06562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06562[];
+extern VTBL_ENTRY _ZTV7ee06562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06562[];
+static VTBL_ENTRY alt_thunk_names1261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06562 = { "ee06562", // class name
+ bases_ee06562, 4,
+ &(vtc_ee06562[0]), // expected_vtbl_contents
+ &(vtt_ee06562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06562),6, //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 ee16562 : virtual dd6562 {
+ int e;
+ ~ee16562(); // tgen
+ ee16562(); // tgen
+};
+//SIG(1 ee16562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16562 ::~ee16562(){ note_dtor("ee16562", this);} // tgen
+ee16562 ::ee16562(){ note_ctor("ee16562", this);} // tgen
+
+static void Test_ee16562()
+{
+ extern Class_Descriptor cd_ee16562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16562, buf);
+ ee16562 *dp, &lv = *(dp=new (buf) ee16562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee16562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(32,20), "ee16562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), ABISELECT(16,8), "ee16562");
+ check_base_class_offset(lv, (dd6562*), ABISELECT(16,8), "ee16562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16562.e");
+ test_class_info(&lv, &cd_ee16562);
+ dp->~ee16562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16562(Test_ee16562, "ee16562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16562C1Ev();
+extern void _ZN7ee16562D1Ev();
+Name_Map name_map_ee16562[] = {
+ NSPAIR(_ZN7ee16562C1Ev),
+ NSPAIR(_ZN7ee16562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee16562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, 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 _ZTI7ee16562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16562[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee16562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee16562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee16562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee16562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee16562[] = {
+ {&(_ZTV7ee16562[4]), 4,17},
+ {&(_ZTV7ee16562[9]), 9,17},
+ {&(_ZTV7ee16562[15]), 15,17},
+ {&(_tg__ZTV6dd6562__7ee16562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee16562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee16562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee16562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16562[];
+extern VTBL_ENTRY _ZTV7ee16562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16562[];
+static VTBL_ENTRY alt_thunk_names1262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16562 = { "ee16562", // class name
+ bases_ee16562, 4,
+ &(vtc_ee16562[0]), // expected_vtbl_contents
+ &(vtt_ee16562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16562),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26562 : dd6562 {
+ int e;
+ virtual void foo(); // _ZN7ee265623fooEv
+ ~ee26562(); // tgen
+ ee26562(); // tgen
+};
+//SIG(1 ee26562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26562 ::foo(){vfunc_called(this, "_ZN7ee265623fooEv");}
+ee26562 ::~ee26562(){ note_dtor("ee26562", this);} // tgen
+ee26562 ::ee26562(){ note_ctor("ee26562", this);} // tgen
+
+static void Test_ee26562()
+{
+ extern Class_Descriptor cd_ee26562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26562, buf);
+ ee26562 *dp, &lv = *(dp=new (buf) ee26562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee26562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(24,16), "ee26562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), 0, "ee26562");
+ check_base_class_offset(lv, (dd6562*), 0, "ee26562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26562.e");
+ test_class_info(&lv, &cd_ee26562);
+ dp->~ee26562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26562(Test_ee26562, "ee26562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26562C1Ev();
+extern void _ZN7ee26562D1Ev();
+Name_Map name_map_ee26562[] = {
+ NSPAIR(_ZN7ee26562C1Ev),
+ NSPAIR(_ZN7ee26562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee26562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN7ee265623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265623fooEv,_ZTv0_n12_N7ee265623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265623fooEv,_ZThn16_N7ee265623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN7ee265623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265623fooEv,_ZTv0_n12_N7ee265623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee26562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee26562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee26562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee26562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee26562[] = {
+ {&(_ZTV7ee26562[3]), 3,11},
+ {&(_tg__ZTV6dd6562__7ee26562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee26562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee26562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee26562[4]), 4,6},
+ {&(_ZTV7ee26562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26562[];
+extern VTBL_ENTRY _ZTV7ee26562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26562[];
+static VTBL_ENTRY alt_thunk_names1263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265623fooEv,_ZTv0_n12_N7ee265623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265623fooEv,_ZThn16_N7ee265623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26562 = { "ee26562", // class name
+ bases_ee26562, 4,
+ &(vtc_ee26562[0]), // expected_vtbl_contents
+ &(vtt_ee26562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26562),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 ee36562 : virtual dd6562 {
+ int e;
+ virtual void foo(); // _ZN7ee365623fooEv
+ ~ee36562(); // tgen
+ ee36562(); // tgen
+};
+//SIG(1 ee36562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36562 ::foo(){vfunc_called(this, "_ZN7ee365623fooEv");}
+ee36562 ::~ee36562(){ note_dtor("ee36562", this);} // tgen
+ee36562 ::ee36562(){ note_ctor("ee36562", this);} // tgen
+
+static void Test_ee36562()
+{
+ extern Class_Descriptor cd_ee36562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36562, buf);
+ ee36562 *dp, &lv = *(dp=new (buf) ee36562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee36562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(32,20), "ee36562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), ABISELECT(16,8), "ee36562");
+ check_base_class_offset(lv, (dd6562*), ABISELECT(16,8), "ee36562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36562.e");
+ test_class_info(&lv, &cd_ee36562);
+ dp->~ee36562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36562(Test_ee36562, "ee36562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36562C1Ev();
+extern void _ZN7ee36562D1Ev();
+Name_Map name_map_ee36562[] = {
+ NSPAIR(_ZN7ee36562C1Ev),
+ NSPAIR(_ZN7ee36562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee36562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, ABISELECT(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 _ZTI7ee36562[];
+extern void _ZN7ee365623fooEv();
+extern void _ZN6dd65623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365623fooEv,_ZTv0_n20_N7ee365623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365623fooEv,_ZThn8_N7ee365623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365623fooEv,_ZTv0_n12_N7ee365623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365623fooEv,_ZThn20_N7ee365623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36562[0]),
+ (VTBL_ENTRY)&_ZN7ee365623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365623fooEv,_ZTv0_n20_N7ee365623fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365623fooEv,_ZTv0_n12_N7ee365623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee36562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee36562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee36562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee36562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee36562[] = {
+ {&(_ZTV7ee36562[4]), 4,18},
+ {&(_ZTV7ee36562[10]), 10,18},
+ {&(_ZTV7ee36562[16]), 16,18},
+ {&(_tg__ZTV6dd6562__7ee36562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee36562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee36562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee36562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36562[];
+extern VTBL_ENTRY _ZTV7ee36562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36562[];
+static VTBL_ENTRY alt_thunk_names1264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365623fooEv,_ZTv0_n12_N7ee365623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365623fooEv,_ZThn20_N7ee365623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365623fooEv,_ZTv0_n20_N7ee365623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365623fooEv,_ZThn8_N7ee365623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36562 = { "ee36562", // class name
+ bases_ee36562, 4,
+ &(vtc_ee36562[0]), // expected_vtbl_contents
+ &(vtt_ee36562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36562),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36562),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 ee46562 : dd6562 {
+ int e;
+ virtual void bar(); // _ZN7ee465623barEv
+ ~ee46562(); // tgen
+ ee46562(); // tgen
+};
+//SIG(1 ee46562) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46562 ::bar(){vfunc_called(this, "_ZN7ee465623barEv");}
+ee46562 ::~ee46562(){ note_dtor("ee46562", this);} // tgen
+ee46562 ::ee46562(){ note_ctor("ee46562", this);} // tgen
+
+static void Test_ee46562()
+{
+ extern Class_Descriptor cd_ee46562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46562, buf);
+ ee46562 *dp, &lv = *(dp=new (buf) ee46562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee46562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(24,16), "ee46562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), 0, "ee46562");
+ check_base_class_offset(lv, (dd6562*), 0, "ee46562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46562.e");
+ test_class_info(&lv, &cd_ee46562);
+ dp->~ee46562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46562(Test_ee46562, "ee46562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46562C1Ev();
+extern void _ZN7ee46562D1Ev();
+Name_Map name_map_ee46562[] = {
+ NSPAIR(_ZN7ee46562C1Ev),
+ NSPAIR(_ZN7ee46562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee46562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46562[];
+extern void _ZN7ee465623barEv();
+extern void _ZN6dd65623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee465623barEv,_ZTv0_n16_N7ee465623barEv)();
+extern void ABISELECT(_ZThn24_N7ee465623barEv,_ZThn16_N7ee465623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46562[0]),
+ (VTBL_ENTRY)&_ZN7ee465623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465623barEv,_ZTv0_n16_N7ee465623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee46562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee46562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee46562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee46562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee46562[] = {
+ {&(_ZTV7ee46562[3]), 3,11},
+ {&(_tg__ZTV6dd6562__7ee46562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee46562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee46562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee46562[4]), 4,6},
+ {&(_ZTV7ee46562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46562[];
+extern VTBL_ENTRY _ZTV7ee46562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46562[];
+static VTBL_ENTRY alt_thunk_names1265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465623barEv,_ZTv0_n16_N7ee465623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465623barEv,_ZThn16_N7ee465623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46562 = { "ee46562", // class name
+ bases_ee46562, 4,
+ &(vtc_ee46562[0]), // expected_vtbl_contents
+ &(vtt_ee46562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46562),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 ee56562 : virtual dd6562 {
+ int e;
+ virtual void bar(); // _ZN7ee565623barEv
+ ~ee56562(); // tgen
+ ee56562(); // tgen
+};
+//SIG(1 ee56562) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56562 ::bar(){vfunc_called(this, "_ZN7ee565623barEv");}
+ee56562 ::~ee56562(){ note_dtor("ee56562", this);} // tgen
+ee56562 ::ee56562(){ note_ctor("ee56562", this);} // tgen
+
+static void Test_ee56562()
+{
+ extern Class_Descriptor cd_ee56562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56562, buf);
+ ee56562 *dp, &lv = *(dp=new (buf) ee56562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee56562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(32,20), "ee56562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), ABISELECT(16,8), "ee56562");
+ check_base_class_offset(lv, (dd6562*), ABISELECT(16,8), "ee56562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56562.e");
+ test_class_info(&lv, &cd_ee56562);
+ dp->~ee56562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56562(Test_ee56562, "ee56562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56562C1Ev();
+extern void _ZN7ee56562D1Ev();
+Name_Map name_map_ee56562[] = {
+ NSPAIR(_ZN7ee56562C1Ev),
+ NSPAIR(_ZN7ee56562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee56562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, ABISELECT(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 _ZTI7ee56562[];
+extern void _ZN7ee565623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565623barEv,_ZTv0_n16_N7ee565623barEv)();
+extern void ABISELECT(_ZThn16_N7ee565623barEv,_ZThn8_N7ee565623barEv)() __attribute__((weak));
+extern void _ZN6dd65623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee565623barEv,_ZTv0_n16_N7ee565623barEv)();
+extern void ABISELECT(_ZThn32_N7ee565623barEv,_ZThn20_N7ee565623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56562[0]),
+ (VTBL_ENTRY)&_ZN7ee565623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565623barEv,_ZTv0_n16_N7ee565623barEv),
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565623barEv,_ZTv0_n16_N7ee565623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee56562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee56562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee56562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee56562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee56562[] = {
+ {&(_ZTV7ee56562[4]), 4,18},
+ {&(_ZTV7ee56562[10]), 10,18},
+ {&(_ZTV7ee56562[16]), 16,18},
+ {&(_tg__ZTV6dd6562__7ee56562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee56562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee56562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee56562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56562[];
+extern VTBL_ENTRY _ZTV7ee56562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56562[];
+static VTBL_ENTRY alt_thunk_names1266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565623barEv,_ZTv0_n16_N7ee565623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565623barEv,_ZThn20_N7ee565623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565623barEv,_ZThn8_N7ee565623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56562 = { "ee56562", // class name
+ bases_ee56562, 4,
+ &(vtc_ee56562[0]), // expected_vtbl_contents
+ &(vtt_ee56562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56562),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56562),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 ee66562 : dd6562 {
+ int e;
+ virtual void foo(); // _ZN7ee665623fooEv
+ virtual void bar(); // _ZN7ee665623barEv
+ ~ee66562(); // tgen
+ ee66562(); // tgen
+};
+//SIG(1 ee66562) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66562 ::foo(){vfunc_called(this, "_ZN7ee665623fooEv");}
+void ee66562 ::bar(){vfunc_called(this, "_ZN7ee665623barEv");}
+ee66562 ::~ee66562(){ note_dtor("ee66562", this);} // tgen
+ee66562 ::ee66562(){ note_ctor("ee66562", this);} // tgen
+
+static void Test_ee66562()
+{
+ extern Class_Descriptor cd_ee66562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66562, buf);
+ ee66562 *dp, &lv = *(dp=new (buf) ee66562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee66562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(24,16), "ee66562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), 0, "ee66562");
+ check_base_class_offset(lv, (dd6562*), 0, "ee66562");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66562.e");
+ test_class_info(&lv, &cd_ee66562);
+ dp->~ee66562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66562(Test_ee66562, "ee66562", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66562C1Ev();
+extern void _ZN7ee66562D1Ev();
+Name_Map name_map_ee66562[] = {
+ NSPAIR(_ZN7ee66562C1Ev),
+ NSPAIR(_ZN7ee66562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee66562[] = {
+ // 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_bb62, 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_cc562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66562[];
+extern void _ZN7ee665623barEv();
+extern void _ZN7ee665623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665623fooEv,_ZTv0_n12_N7ee665623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665623fooEv,_ZThn16_N7ee665623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665623barEv,_ZTv0_n16_N7ee665623barEv)();
+extern void ABISELECT(_ZThn24_N7ee665623barEv,_ZThn16_N7ee665623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66562[0]),
+ (VTBL_ENTRY)&_ZN7ee665623barEv,
+ (VTBL_ENTRY)&_ZN7ee665623fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665623fooEv,_ZTv0_n12_N7ee665623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665623barEv,_ZTv0_n16_N7ee665623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee66562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee66562[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee66562[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee66562[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee66562[] = {
+ {&(_ZTV7ee66562[3]), 3,11},
+ {&(_tg__ZTV6dd6562__7ee66562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee66562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee66562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee66562[4]), 4,6},
+ {&(_ZTV7ee66562[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66562[];
+extern VTBL_ENTRY _ZTV7ee66562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66562[];
+static VTBL_ENTRY alt_thunk_names1267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623barEv,_ZThn16_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65623fooEv,_ZThn16_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5623barEv,_ZThn16_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665623barEv,_ZTv0_n16_N7ee665623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665623barEv,_ZThn16_N7ee665623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665623fooEv,_ZTv0_n12_N7ee665623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665623fooEv,_ZThn16_N7ee665623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66562 = { "ee66562", // class name
+ bases_ee66562, 4,
+ &(vtc_ee66562[0]), // expected_vtbl_contents
+ &(vtt_ee66562[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66562),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66562),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 ee76562 : virtual dd6562 {
+ int e;
+ virtual void foo(); // _ZN7ee765623fooEv
+ virtual void bar(); // _ZN7ee765623barEv
+ ~ee76562(); // tgen
+ ee76562(); // tgen
+};
+//SIG(1 ee76562) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76562 ::foo(){vfunc_called(this, "_ZN7ee765623fooEv");}
+void ee76562 ::bar(){vfunc_called(this, "_ZN7ee765623barEv");}
+ee76562 ::~ee76562(){ note_dtor("ee76562", this);} // tgen
+ee76562 ::ee76562(){ note_ctor("ee76562", this);} // tgen
+
+static void Test_ee76562()
+{
+ extern Class_Descriptor cd_ee76562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76562, buf);
+ ee76562 *dp, &lv = *(dp=new (buf) ee76562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee76562");
+ check_base_class_offset(lv, (bb62*)(cc562*)(dd6562*), ABISELECT(32,20), "ee76562");
+ check_base_class_offset(lv, (cc562*)(dd6562*), ABISELECT(16,8), "ee76562");
+ check_base_class_offset(lv, (dd6562*), ABISELECT(16,8), "ee76562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76562.e");
+ test_class_info(&lv, &cd_ee76562);
+ dp->~ee76562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76562(Test_ee76562, "ee76562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76562C1Ev();
+extern void _ZN7ee76562D1Ev();
+Name_Map name_map_ee76562[] = {
+ NSPAIR(_ZN7ee76562C1Ev),
+ NSPAIR(_ZN7ee76562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd6562;
+extern VTBL_ENTRY _ZTI6dd6562[];
+extern VTBL_ENTRY _ZTV6dd6562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6562[];
+static Base_Class bases_ee76562[] = {
+ // 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_bb62, 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_cc562, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6562, ABISELECT(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 _ZTI7ee76562[];
+extern void _ZN7ee765623fooEv();
+extern void _ZN7ee765623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765623barEv,_ZTv0_n16_N7ee765623barEv)();
+extern void ABISELECT(_ZThn16_N7ee765623barEv,_ZThn8_N7ee765623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765623fooEv,_ZTv0_n20_N7ee765623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765623fooEv,_ZThn8_N7ee765623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765623fooEv,_ZTv0_n12_N7ee765623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765623fooEv,_ZThn20_N7ee765623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765623barEv,_ZTv0_n16_N7ee765623barEv)();
+extern void ABISELECT(_ZThn32_N7ee765623barEv,_ZThn20_N7ee765623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76562[0]),
+ (VTBL_ENTRY)&_ZN7ee765623fooEv,
+ (VTBL_ENTRY)&_ZN7ee765623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765623barEv,_ZTv0_n16_N7ee765623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765623fooEv,_ZTv0_n20_N7ee765623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765623fooEv,_ZTv0_n12_N7ee765623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765623barEv,_ZTv0_n16_N7ee765623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76562[];
+extern void _ZN6dd65623barEv();
+extern void _ZN6dd65623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6562__7ee76562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&_ZN6dd65623barEv,
+ (VTBL_ENTRY)&_ZN6dd65623fooEv,
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc5626dd6562__7ee76562[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc5626dd6562__7ee76562[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv)();
+extern void ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6562__7ee76562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv),
+};
+static VTT_ENTRY vtt_ee76562[] = {
+ {&(_ZTV7ee76562[4]), 4,19},
+ {&(_ZTV7ee76562[11]), 11,19},
+ {&(_ZTV7ee76562[17]), 17,19},
+ {&(_tg__ZTV6dd6562__7ee76562[3]), 3,5},
+ {&(_tg__ZTV5cc5626dd6562__7ee76562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc5626dd6562__7ee76562[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6562__7ee76562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76562[];
+extern VTBL_ENTRY _ZTV7ee76562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76562[];
+static VTBL_ENTRY alt_thunk_names1268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65623barEv,_ZTv0_n16_N6dd65623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623barEv,_ZThn12_N6dd65623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65623fooEv,_ZTv0_n12_N6dd65623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65623fooEv,_ZThn12_N6dd65623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn12_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765623fooEv,_ZTv0_n12_N7ee765623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765623fooEv,_ZThn20_N7ee765623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765623fooEv,_ZTv0_n20_N7ee765623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765623fooEv,_ZThn8_N7ee765623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765623barEv,_ZTv0_n16_N7ee765623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765623barEv,_ZThn20_N7ee765623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765623barEv,_ZThn8_N7ee765623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76562 = { "ee76562", // class name
+ bases_ee76562, 4,
+ &(vtc_ee76562[0]), // expected_vtbl_contents
+ &(vtt_ee76562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76562),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76562),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 dd7562 : virtual cc562 {
+ int d;
+ virtual void bar(); // _ZN6dd75623barEv
+ virtual void foo(); // _ZN6dd75623fooEv
+ ~dd7562(); // tgen
+ dd7562(); // tgen
+};
+//SIG(-1 dd7562) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7562 ::bar(){vfunc_called(this, "_ZN6dd75623barEv");}
+void dd7562 ::foo(){vfunc_called(this, "_ZN6dd75623fooEv");}
+dd7562 ::~dd7562(){ note_dtor("dd7562", this);} // tgen
+dd7562 ::dd7562(){ note_ctor("dd7562", this);} // tgen
+
+static void Test_dd7562()
+{
+ extern Class_Descriptor cd_dd7562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7562, buf);
+ dd7562 *dp, &lv = *(dp=new (buf) dd7562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd7562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,16), "dd7562");
+ check_base_class_offset(lv, (cc562*), ABISELECT(16,8), "dd7562");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7562.d");
+ test_class_info(&lv, &cd_dd7562);
+ dp->~dd7562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7562(Test_dd7562, "dd7562", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7562C1Ev();
+extern void _ZN6dd7562D1Ev();
+Name_Map name_map_dd7562[] = {
+ NSPAIR(_ZN6dd7562C1Ev),
+ NSPAIR(_ZN6dd7562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+static Base_Class bases_dd7562[] = {
+ // 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_bb62, 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_cc562, 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 _ZTI6dd7562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__6dd7562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_dd7562[] = {
+ {&(_ZTV6dd7562[4]), 4,17},
+ {&(_ZTV6dd7562[10]), 10,17},
+ {&(_ZTV6dd7562[15]), 15,17},
+ {&(_tg__ZTV5cc562__6dd7562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__6dd7562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static VTBL_ENTRY alt_thunk_names1269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7562 = { "dd7562", // class name
+ bases_dd7562, 3,
+ &(vtc_dd7562[0]), // expected_vtbl_contents
+ &(vtt_dd7562[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7562),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07562 : dd7562 {
+ int e;
+ ~ee07562(); // tgen
+ ee07562(); // tgen
+};
+//SIG(1 ee07562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07562 ::~ee07562(){ note_dtor("ee07562", this);} // tgen
+ee07562 ::ee07562(){ note_ctor("ee07562", this);} // tgen
+
+static void Test_ee07562()
+{
+ extern Class_Descriptor cd_ee07562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07562, buf);
+ ee07562 *dp, &lv = *(dp=new (buf) ee07562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee07562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee07562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(16,12), "ee07562");
+ check_base_class_offset(lv, (dd7562*), 0, "ee07562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07562.e");
+ test_class_info(&lv, &cd_ee07562);
+ dp->~ee07562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07562(Test_ee07562, "ee07562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07562C1Ev();
+extern void _ZN7ee07562D1Ev();
+Name_Map name_map_ee07562[] = {
+ NSPAIR(_ZN7ee07562C1Ev),
+ NSPAIR(_ZN7ee07562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee07562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee07562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee07562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee07562[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee07562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee07562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee07562[] = {
+ {&(_ZTV7ee07562[4]), 4,17},
+ {&(_tg__ZTV6dd7562__7ee07562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee07562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee07562[4]), 4,6},
+ {&(_ZTV7ee07562[10]), 10,17},
+ {&(_ZTV7ee07562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee07562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee07562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07562[];
+extern VTBL_ENTRY _ZTV7ee07562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07562[];
+static VTBL_ENTRY alt_thunk_names1270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07562 = { "ee07562", // class name
+ bases_ee07562, 4,
+ &(vtc_ee07562[0]), // expected_vtbl_contents
+ &(vtt_ee07562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07562),8, //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 ee17562 : virtual dd7562 {
+ int e;
+ ~ee17562(); // tgen
+ ee17562(); // tgen
+};
+//SIG(1 ee17562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17562 ::~ee17562(){ note_dtor("ee17562", this);} // tgen
+ee17562 ::ee17562(){ note_ctor("ee17562", this);} // tgen
+
+static void Test_ee17562()
+{
+ extern Class_Descriptor cd_ee17562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17562, buf);
+ ee17562 *dp, &lv = *(dp=new (buf) ee17562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee17562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee17562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(32,16), "ee17562");
+ check_base_class_offset(lv, (dd7562*), ABISELECT(16,8), "ee17562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17562.e");
+ test_class_info(&lv, &cd_ee17562);
+ dp->~ee17562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17562(Test_ee17562, "ee17562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17562C1Ev();
+extern void _ZN7ee17562D1Ev();
+Name_Map name_map_ee17562[] = {
+ NSPAIR(_ZN7ee17562C1Ev),
+ NSPAIR(_ZN7ee17562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee17562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 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 _ZTI7ee17562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17562[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee17562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee17562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee17562[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee17562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee17562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee17562[] = {
+ {&(_ZTV7ee17562[5]), 5,24},
+ {&(_ZTV7ee17562[11]), 11,24},
+ {&(_ZTV7ee17562[17]), 17,24},
+ {&(_ZTV7ee17562[22]), 22,24},
+ {&(_tg__ZTV6dd7562__7ee17562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee17562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee17562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee17562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee17562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17562[];
+extern VTBL_ENTRY _ZTV7ee17562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17562[];
+static VTBL_ENTRY alt_thunk_names1271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17562 = { "ee17562", // class name
+ bases_ee17562, 4,
+ &(vtc_ee17562[0]), // expected_vtbl_contents
+ &(vtt_ee17562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17562),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17562),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27562 : dd7562 {
+ int e;
+ virtual void foo(); // _ZN7ee275623fooEv
+ ~ee27562(); // tgen
+ ee27562(); // tgen
+};
+//SIG(1 ee27562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27562 ::foo(){vfunc_called(this, "_ZN7ee275623fooEv");}
+ee27562 ::~ee27562(){ note_dtor("ee27562", this);} // tgen
+ee27562 ::ee27562(){ note_ctor("ee27562", this);} // tgen
+
+static void Test_ee27562()
+{
+ extern Class_Descriptor cd_ee27562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27562, buf);
+ ee27562 *dp, &lv = *(dp=new (buf) ee27562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee27562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee27562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(16,12), "ee27562");
+ check_base_class_offset(lv, (dd7562*), 0, "ee27562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27562.e");
+ test_class_info(&lv, &cd_ee27562);
+ dp->~ee27562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27562(Test_ee27562, "ee27562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27562C1Ev();
+extern void _ZN7ee27562D1Ev();
+Name_Map name_map_ee27562[] = {
+ NSPAIR(_ZN7ee27562C1Ev),
+ NSPAIR(_ZN7ee27562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee27562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN7ee275623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275623fooEv,_ZTv0_n12_N7ee275623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275623fooEv,_ZThn20_N7ee275623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN7ee275623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275623fooEv,_ZTv0_n12_N7ee275623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee27562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee27562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee27562[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee27562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee27562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee27562[] = {
+ {&(_ZTV7ee27562[4]), 4,17},
+ {&(_tg__ZTV6dd7562__7ee27562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee27562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee27562[4]), 4,6},
+ {&(_ZTV7ee27562[10]), 10,17},
+ {&(_ZTV7ee27562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee27562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee27562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27562[];
+extern VTBL_ENTRY _ZTV7ee27562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27562[];
+static VTBL_ENTRY alt_thunk_names1272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275623fooEv,_ZTv0_n12_N7ee275623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275623fooEv,_ZThn20_N7ee275623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27562 = { "ee27562", // class name
+ bases_ee27562, 4,
+ &(vtc_ee27562[0]), // expected_vtbl_contents
+ &(vtt_ee27562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27562),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 ee37562 : virtual dd7562 {
+ int e;
+ virtual void foo(); // _ZN7ee375623fooEv
+ ~ee37562(); // tgen
+ ee37562(); // tgen
+};
+//SIG(1 ee37562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37562 ::foo(){vfunc_called(this, "_ZN7ee375623fooEv");}
+ee37562 ::~ee37562(){ note_dtor("ee37562", this);} // tgen
+ee37562 ::ee37562(){ note_ctor("ee37562", this);} // tgen
+
+static void Test_ee37562()
+{
+ extern Class_Descriptor cd_ee37562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37562, buf);
+ ee37562 *dp, &lv = *(dp=new (buf) ee37562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee37562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee37562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(32,16), "ee37562");
+ check_base_class_offset(lv, (dd7562*), ABISELECT(16,8), "ee37562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37562.e");
+ test_class_info(&lv, &cd_ee37562);
+ dp->~ee37562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37562(Test_ee37562, "ee37562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37562C1Ev();
+extern void _ZN7ee37562D1Ev();
+Name_Map name_map_ee37562[] = {
+ NSPAIR(_ZN7ee37562C1Ev),
+ NSPAIR(_ZN7ee37562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee37562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 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 _ZTI7ee37562[];
+extern void _ZN7ee375623fooEv();
+extern void _ZN6dd75623barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375623fooEv,_ZTv0_n24_N7ee375623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375623fooEv,_ZThn8_N7ee375623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375623fooEv,_ZTv0_n12_N7ee375623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375623fooEv,_ZThn24_N7ee375623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37562[0]),
+ (VTBL_ENTRY)&_ZN7ee375623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375623fooEv,_ZTv0_n24_N7ee375623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375623fooEv,_ZTv0_n12_N7ee375623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee37562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee37562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee37562[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee37562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee37562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee37562[] = {
+ {&(_ZTV7ee37562[5]), 5,25},
+ {&(_ZTV7ee37562[12]), 12,25},
+ {&(_ZTV7ee37562[18]), 18,25},
+ {&(_ZTV7ee37562[23]), 23,25},
+ {&(_tg__ZTV6dd7562__7ee37562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee37562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee37562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee37562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee37562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37562[];
+extern VTBL_ENTRY _ZTV7ee37562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37562[];
+static VTBL_ENTRY alt_thunk_names1273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375623fooEv,_ZTv0_n12_N7ee375623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375623fooEv,_ZThn24_N7ee375623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375623fooEv,_ZTv0_n24_N7ee375623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375623fooEv,_ZThn8_N7ee375623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37562 = { "ee37562", // class name
+ bases_ee37562, 4,
+ &(vtc_ee37562[0]), // expected_vtbl_contents
+ &(vtt_ee37562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37562),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37562),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 ee47562 : dd7562 {
+ int e;
+ virtual void bar(); // _ZN7ee475623barEv
+ ~ee47562(); // tgen
+ ee47562(); // tgen
+};
+//SIG(1 ee47562) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47562 ::bar(){vfunc_called(this, "_ZN7ee475623barEv");}
+ee47562 ::~ee47562(){ note_dtor("ee47562", this);} // tgen
+ee47562 ::ee47562(){ note_ctor("ee47562", this);} // tgen
+
+static void Test_ee47562()
+{
+ extern Class_Descriptor cd_ee47562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47562, buf);
+ ee47562 *dp, &lv = *(dp=new (buf) ee47562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee47562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee47562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(16,12), "ee47562");
+ check_base_class_offset(lv, (dd7562*), 0, "ee47562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47562.e");
+ test_class_info(&lv, &cd_ee47562);
+ dp->~ee47562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47562(Test_ee47562, "ee47562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47562C1Ev();
+extern void _ZN7ee47562D1Ev();
+Name_Map name_map_ee47562[] = {
+ NSPAIR(_ZN7ee47562C1Ev),
+ NSPAIR(_ZN7ee47562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee47562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47562[];
+extern void _ZN7ee475623barEv();
+extern void _ZN6dd75623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475623barEv,_ZTv0_n16_N7ee475623barEv)();
+extern void ABISELECT(_ZThn16_N7ee475623barEv,_ZThn12_N7ee475623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475623barEv,_ZTv0_n16_N7ee475623barEv)();
+extern void ABISELECT(_ZThn32_N7ee475623barEv,_ZThn20_N7ee475623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47562[0]),
+ (VTBL_ENTRY)&_ZN7ee475623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475623barEv,_ZTv0_n16_N7ee475623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475623barEv,_ZTv0_n16_N7ee475623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee47562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee47562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee47562[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee47562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee47562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee47562[] = {
+ {&(_ZTV7ee47562[4]), 4,17},
+ {&(_tg__ZTV6dd7562__7ee47562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee47562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee47562[4]), 4,6},
+ {&(_ZTV7ee47562[10]), 10,17},
+ {&(_ZTV7ee47562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee47562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee47562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47562[];
+extern VTBL_ENTRY _ZTV7ee47562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47562[];
+static VTBL_ENTRY alt_thunk_names1274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475623barEv,_ZTv0_n16_N7ee475623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475623barEv,_ZThn20_N7ee475623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475623barEv,_ZThn12_N7ee475623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47562 = { "ee47562", // class name
+ bases_ee47562, 4,
+ &(vtc_ee47562[0]), // expected_vtbl_contents
+ &(vtt_ee47562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47562),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 ee57562 : virtual dd7562 {
+ int e;
+ virtual void bar(); // _ZN7ee575623barEv
+ ~ee57562(); // tgen
+ ee57562(); // tgen
+};
+//SIG(1 ee57562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57562 ::bar(){vfunc_called(this, "_ZN7ee575623barEv");}
+ee57562 ::~ee57562(){ note_dtor("ee57562", this);} // tgen
+ee57562 ::ee57562(){ note_ctor("ee57562", this);} // tgen
+
+static void Test_ee57562()
+{
+ extern Class_Descriptor cd_ee57562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57562, buf);
+ ee57562 *dp, &lv = *(dp=new (buf) ee57562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee57562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee57562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(32,16), "ee57562");
+ check_base_class_offset(lv, (dd7562*), ABISELECT(16,8), "ee57562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57562.e");
+ test_class_info(&lv, &cd_ee57562);
+ dp->~ee57562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57562(Test_ee57562, "ee57562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57562C1Ev();
+extern void _ZN7ee57562D1Ev();
+Name_Map name_map_ee57562[] = {
+ NSPAIR(_ZN7ee57562C1Ev),
+ NSPAIR(_ZN7ee57562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee57562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 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 _ZTI7ee57562[];
+extern void _ZN7ee575623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575623barEv,_ZTv0_n20_N7ee575623barEv)();
+extern void ABISELECT(_ZThn16_N7ee575623barEv,_ZThn8_N7ee575623barEv)() __attribute__((weak));
+extern void _ZN6dd75623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575623barEv,_ZTv0_n16_N7ee575623barEv)();
+extern void ABISELECT(_ZThn32_N7ee575623barEv,_ZThn16_N7ee575623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575623barEv,_ZTv0_n16_N7ee575623barEv)();
+extern void ABISELECT(_ZThn48_N7ee575623barEv,_ZThn24_N7ee575623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57562[0]),
+ (VTBL_ENTRY)&_ZN7ee575623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575623barEv,_ZTv0_n20_N7ee575623barEv),
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575623barEv,_ZTv0_n16_N7ee575623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575623barEv,_ZTv0_n16_N7ee575623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee57562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee57562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee57562[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee57562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee57562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee57562[] = {
+ {&(_ZTV7ee57562[5]), 5,25},
+ {&(_ZTV7ee57562[12]), 12,25},
+ {&(_ZTV7ee57562[18]), 18,25},
+ {&(_ZTV7ee57562[23]), 23,25},
+ {&(_tg__ZTV6dd7562__7ee57562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee57562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee57562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee57562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee57562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57562[];
+extern VTBL_ENTRY _ZTV7ee57562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57562[];
+static VTBL_ENTRY alt_thunk_names1275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575623barEv,_ZTv0_n16_N7ee575623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575623barEv,_ZThn24_N7ee575623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575623barEv,_ZThn16_N7ee575623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575623barEv,_ZTv0_n20_N7ee575623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575623barEv,_ZThn8_N7ee575623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57562 = { "ee57562", // class name
+ bases_ee57562, 4,
+ &(vtc_ee57562[0]), // expected_vtbl_contents
+ &(vtt_ee57562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57562),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57562),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 ee67562 : dd7562 {
+ int e;
+ virtual void foo(); // _ZN7ee675623fooEv
+ virtual void bar(); // _ZN7ee675623barEv
+ ~ee67562(); // tgen
+ ee67562(); // tgen
+};
+//SIG(1 ee67562) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67562 ::foo(){vfunc_called(this, "_ZN7ee675623fooEv");}
+void ee67562 ::bar(){vfunc_called(this, "_ZN7ee675623barEv");}
+ee67562 ::~ee67562(){ note_dtor("ee67562", this);} // tgen
+ee67562 ::ee67562(){ note_ctor("ee67562", this);} // tgen
+
+static void Test_ee67562()
+{
+ extern Class_Descriptor cd_ee67562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67562, buf);
+ ee67562 *dp, &lv = *(dp=new (buf) ee67562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee67562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(32,20), "ee67562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(16,12), "ee67562");
+ check_base_class_offset(lv, (dd7562*), 0, "ee67562");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67562.e");
+ test_class_info(&lv, &cd_ee67562);
+ dp->~ee67562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67562(Test_ee67562, "ee67562", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67562C1Ev();
+extern void _ZN7ee67562D1Ev();
+Name_Map name_map_ee67562[] = {
+ NSPAIR(_ZN7ee67562C1Ev),
+ NSPAIR(_ZN7ee67562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee67562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67562[];
+extern void _ZN7ee675623barEv();
+extern void _ZN7ee675623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675623barEv,_ZTv0_n16_N7ee675623barEv)();
+extern void ABISELECT(_ZThn16_N7ee675623barEv,_ZThn12_N7ee675623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675623fooEv,_ZTv0_n12_N7ee675623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675623fooEv,_ZThn20_N7ee675623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675623barEv,_ZTv0_n16_N7ee675623barEv)();
+extern void ABISELECT(_ZThn32_N7ee675623barEv,_ZThn20_N7ee675623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67562[0]),
+ (VTBL_ENTRY)&_ZN7ee675623barEv,
+ (VTBL_ENTRY)&_ZN7ee675623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675623barEv,_ZTv0_n16_N7ee675623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675623fooEv,_ZTv0_n12_N7ee675623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675623barEv,_ZTv0_n16_N7ee675623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee67562[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee67562[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee67562[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee67562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee67562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee67562[] = {
+ {&(_ZTV7ee67562[4]), 4,17},
+ {&(_tg__ZTV6dd7562__7ee67562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee67562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee67562[4]), 4,6},
+ {&(_ZTV7ee67562[10]), 10,17},
+ {&(_ZTV7ee67562[15]), 15,17},
+ {&(_tg__ZTV5cc562__7ee67562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee67562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67562[];
+extern VTBL_ENTRY _ZTV7ee67562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67562[];
+static VTBL_ENTRY alt_thunk_names1276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn20_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn20_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn12_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675623fooEv,_ZTv0_n12_N7ee675623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675623fooEv,_ZThn20_N7ee675623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675623barEv,_ZTv0_n16_N7ee675623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675623barEv,_ZThn20_N7ee675623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675623barEv,_ZThn12_N7ee675623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67562 = { "ee67562", // class name
+ bases_ee67562, 4,
+ &(vtc_ee67562[0]), // expected_vtbl_contents
+ &(vtt_ee67562[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67562),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67562),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67562),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 ee77562 : virtual dd7562 {
+ int e;
+ virtual void foo(); // _ZN7ee775623fooEv
+ virtual void bar(); // _ZN7ee775623barEv
+ ~ee77562(); // tgen
+ ee77562(); // tgen
+};
+//SIG(1 ee77562) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77562 ::foo(){vfunc_called(this, "_ZN7ee775623fooEv");}
+void ee77562 ::bar(){vfunc_called(this, "_ZN7ee775623barEv");}
+ee77562 ::~ee77562(){ note_dtor("ee77562", this);} // tgen
+ee77562 ::ee77562(){ note_ctor("ee77562", this);} // tgen
+
+static void Test_ee77562()
+{
+ extern Class_Descriptor cd_ee77562;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77562, buf);
+ ee77562 *dp, &lv = *(dp=new (buf) ee77562());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77562)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77562)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee77562");
+ check_base_class_offset(lv, (bb62*)(cc562*), ABISELECT(48,24), "ee77562");
+ check_base_class_offset(lv, (cc562*)(dd7562*), ABISELECT(32,16), "ee77562");
+ check_base_class_offset(lv, (dd7562*), ABISELECT(16,8), "ee77562");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77562.e");
+ test_class_info(&lv, &cd_ee77562);
+ dp->~ee77562();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77562(Test_ee77562, "ee77562", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77562C1Ev();
+extern void _ZN7ee77562D1Ev();
+Name_Map name_map_ee77562[] = {
+ NSPAIR(_ZN7ee77562C1Ev),
+ NSPAIR(_ZN7ee77562D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc562;
+extern VTBL_ENTRY _ZTI5cc562[];
+extern VTBL_ENTRY _ZTV5cc562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc562[];
+extern Class_Descriptor cd_dd7562;
+extern VTBL_ENTRY _ZTI6dd7562[];
+extern VTBL_ENTRY _ZTV6dd7562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7562[];
+static Base_Class bases_ee77562[] = {
+ // 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_bb62, 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_cc562, 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_dd7562, 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 _ZTI7ee77562[];
+extern void _ZN7ee775623fooEv();
+extern void _ZN7ee775623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775623barEv,_ZTv0_n20_N7ee775623barEv)();
+extern void ABISELECT(_ZThn16_N7ee775623barEv,_ZThn8_N7ee775623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775623fooEv,_ZTv0_n24_N7ee775623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775623fooEv,_ZThn8_N7ee775623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775623barEv,_ZTv0_n16_N7ee775623barEv)();
+extern void ABISELECT(_ZThn32_N7ee775623barEv,_ZThn16_N7ee775623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775623fooEv,_ZTv0_n12_N7ee775623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775623fooEv,_ZThn24_N7ee775623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775623barEv,_ZTv0_n16_N7ee775623barEv)();
+extern void ABISELECT(_ZThn48_N7ee775623barEv,_ZThn24_N7ee775623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77562[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77562[0]),
+ (VTBL_ENTRY)&_ZN7ee775623fooEv,
+ (VTBL_ENTRY)&_ZN7ee775623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775623barEv,_ZTv0_n20_N7ee775623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775623fooEv,_ZTv0_n24_N7ee775623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775623barEv,_ZTv0_n16_N7ee775623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775623fooEv,_ZTv0_n12_N7ee775623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775623barEv,_ZTv0_n16_N7ee775623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77562[];
+extern void _ZN6dd75623barEv();
+extern void _ZN6dd75623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7562__7ee77562[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&_ZN6dd75623barEv,
+ (VTBL_ENTRY)&_ZN6dd75623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc562__6dd7562__7ee77562[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv)();
+extern void ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7562__7ee77562[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7562[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv),
+};
+extern void _ZN5cc5623barEv();
+static VTBL_ENTRY _tg__ZTV5cc562__7ee77562[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN5cc5623barEv,
+};
+extern void _ZN4bb623fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv)();
+extern void ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc562__7ee77562[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc562[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv),
+};
+static VTT_ENTRY vtt_ee77562[] = {
+ {&(_ZTV7ee77562[5]), 5,26},
+ {&(_ZTV7ee77562[13]), 13,26},
+ {&(_ZTV7ee77562[19]), 19,26},
+ {&(_ZTV7ee77562[24]), 24,26},
+ {&(_tg__ZTV6dd7562__7ee77562[4]), 4,6},
+ {&(_tg__ZTV5cc562__6dd7562__7ee77562[4]), 4,5},
+ {&(_tg__ZTV4bb62__6dd7562__7ee77562[4]), 4,6},
+ {&(_tg__ZTV5cc562__7ee77562[3]), 3,4},
+ {&(_tg__ZTV4bb62__5cc562__7ee77562[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77562[];
+extern VTBL_ENTRY _ZTV7ee77562[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77562[];
+static VTBL_ENTRY alt_thunk_names1277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5623barEv,_ZTv0_n16_N5cc5623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5623barEv,_ZThn8_N5cc5623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75623fooEv,_ZTv0_n12_N6dd75623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623fooEv,_ZThn16_N6dd75623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75623barEv,_ZTv0_n16_N6dd75623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75623barEv,_ZThn16_N6dd75623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75623barEv,_ZThn8_N6dd75623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775623fooEv,_ZTv0_n12_N7ee775623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775623fooEv,_ZThn24_N7ee775623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775623barEv,_ZTv0_n16_N7ee775623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775623barEv,_ZThn24_N7ee775623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775623barEv,_ZThn16_N7ee775623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775623fooEv,_ZTv0_n24_N7ee775623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775623fooEv,_ZThn8_N7ee775623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775623barEv,_ZTv0_n20_N7ee775623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775623barEv,_ZThn8_N7ee775623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77562 = { "ee77562", // class name
+ bases_ee77562, 4,
+ &(vtc_ee77562[0]), // expected_vtbl_contents
+ &(vtt_ee77562[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77562),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77562),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77562),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 cc662 : bb62 {
+ int c;
+ virtual void foo(); // _ZN5cc6623fooEv
+ virtual void bar(); // _ZN5cc6623barEv
+ ~cc662(); // tgen
+ cc662(); // tgen
+};
+//SIG(-1 cc662) C1{ BC2{ BC3{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc662 ::foo(){vfunc_called(this, "_ZN5cc6623fooEv");}
+void cc662 ::bar(){vfunc_called(this, "_ZN5cc6623barEv");}
+cc662 ::~cc662(){ note_dtor("cc662", this);} // tgen
+cc662 ::cc662(){ note_ctor("cc662", this);} // tgen
+
+static void Test_cc662()
+{
+ extern Class_Descriptor cd_cc662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc662, buf);
+ cc662 *dp, &lv = *(dp=new (buf) cc662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc662)");
+ check_base_class_offset(lv, (aa2*)(bb62*), 0, "cc662");
+ check_base_class_offset(lv, (bb62*), 0, "cc662");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc662.c");
+ test_class_info(&lv, &cd_cc662);
+ dp->~cc662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc662(Test_cc662, "cc662", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc662C1Ev();
+extern void _ZN5cc662D1Ev();
+Name_Map name_map_cc662[] = {
+ NSPAIR(_ZN5cc662C1Ev),
+ NSPAIR(_ZN5cc662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_cc662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+Class_Descriptor cd_cc662 = { "cc662", // class name
+ bases_cc662, 2,
+ &(vtc_cc662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc662),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 dd0662 : cc662 {
+ int d;
+ ~dd0662(); // tgen
+ dd0662(); // tgen
+};
+//SIG(-1 dd0662) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0662 ::~dd0662(){ note_dtor("dd0662", this);} // tgen
+dd0662 ::dd0662(){ note_ctor("dd0662", this);} // tgen
+
+static void Test_dd0662()
+{
+ extern Class_Descriptor cd_dd0662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0662, buf);
+ dd0662 *dp, &lv = *(dp=new (buf) dd0662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), 0, "dd0662");
+ check_base_class_offset(lv, (bb62*)(cc662*), 0, "dd0662");
+ check_base_class_offset(lv, (cc662*), 0, "dd0662");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0662.d");
+ test_class_info(&lv, &cd_dd0662);
+ dp->~dd0662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0662(Test_dd0662, "dd0662", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0662C1Ev();
+extern void _ZN6dd0662D1Ev();
+Name_Map name_map_dd0662[] = {
+ NSPAIR(_ZN6dd0662C1Ev),
+ NSPAIR(_ZN6dd0662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd0662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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 _ZTI6dd0662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_dd0662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+Class_Descriptor cd_dd0662 = { "dd0662", // class name
+ bases_dd0662, 3,
+ &(vtc_dd0662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0662),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 ee00662 : dd0662 {
+ int e;
+ ~ee00662(); // tgen
+ ee00662(); // tgen
+};
+//SIG(1 ee00662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00662 ::~ee00662(){ note_dtor("ee00662", this);} // tgen
+ee00662 ::ee00662(){ note_ctor("ee00662", this);} // tgen
+
+static void Test_ee00662()
+{
+ extern Class_Descriptor cd_ee00662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00662, buf);
+ ee00662 *dp, &lv = *(dp=new (buf) ee00662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), 0, "ee00662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), 0, "ee00662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), 0, "ee00662");
+ check_base_class_offset(lv, (dd0662*), 0, "ee00662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00662.e");
+ test_class_info(&lv, &cd_ee00662);
+ dp->~ee00662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00662(Test_ee00662, "ee00662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00662C1Ev();
+extern void _ZN7ee00662D1Ev();
+Name_Map name_map_ee00662[] = {
+ NSPAIR(_ZN7ee00662C1Ev),
+ NSPAIR(_ZN7ee00662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee00662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd0662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee00662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00662[];
+extern VTBL_ENTRY _ZTV7ee00662[];
+Class_Descriptor cd_ee00662 = { "ee00662", // class name
+ bases_ee00662, 4,
+ &(vtc_ee00662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00662),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 ee10662 : virtual dd0662 {
+ int e;
+ ~ee10662(); // tgen
+ ee10662(); // tgen
+};
+//SIG(1 ee10662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10662 ::~ee10662(){ note_dtor("ee10662", this);} // tgen
+ee10662 ::ee10662(){ note_ctor("ee10662", this);} // tgen
+
+static void Test_ee10662()
+{
+ extern Class_Descriptor cd_ee10662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10662, buf);
+ ee10662 *dp, &lv = *(dp=new (buf) ee10662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee10662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee10662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), ABISELECT(16,8), "ee10662");
+ check_base_class_offset(lv, (dd0662*), ABISELECT(16,8), "ee10662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10662.e");
+ test_class_info(&lv, &cd_ee10662);
+ dp->~ee10662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10662(Test_ee10662, "ee10662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10662C1Ev();
+extern void _ZN7ee10662D1Ev();
+Name_Map name_map_ee10662[] = {
+ NSPAIR(_ZN7ee10662C1Ev),
+ NSPAIR(_ZN7ee10662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee10662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd0662, 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 _ZTI7ee10662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee10662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10662[];
+static VTT_ENTRY vtt_ee10662[] = {
+ {&(_ZTV7ee10662[3]), 3,9},
+ {&(_ZTV7ee10662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10662[];
+extern VTBL_ENTRY _ZTV7ee10662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10662[];
+Class_Descriptor cd_ee10662 = { "ee10662", // class name
+ bases_ee10662, 4,
+ &(vtc_ee10662[0]), // expected_vtbl_contents
+ &(vtt_ee10662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10662),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 ee20662 : dd0662 {
+ int e;
+ virtual void foo(); // _ZN7ee206623fooEv
+ ~ee20662(); // tgen
+ ee20662(); // tgen
+};
+//SIG(1 ee20662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20662 ::foo(){vfunc_called(this, "_ZN7ee206623fooEv");}
+ee20662 ::~ee20662(){ note_dtor("ee20662", this);} // tgen
+ee20662 ::ee20662(){ note_ctor("ee20662", this);} // tgen
+
+static void Test_ee20662()
+{
+ extern Class_Descriptor cd_ee20662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20662, buf);
+ ee20662 *dp, &lv = *(dp=new (buf) ee20662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), 0, "ee20662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), 0, "ee20662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), 0, "ee20662");
+ check_base_class_offset(lv, (dd0662*), 0, "ee20662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20662.e");
+ test_class_info(&lv, &cd_ee20662);
+ dp->~ee20662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20662(Test_ee20662, "ee20662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20662C1Ev();
+extern void _ZN7ee20662D1Ev();
+Name_Map name_map_ee20662[] = {
+ NSPAIR(_ZN7ee20662C1Ev),
+ NSPAIR(_ZN7ee20662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee20662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20662[];
+extern void _ZN7ee206623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee20662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20662[0]),
+ (VTBL_ENTRY)&_ZN7ee206623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20662[];
+extern VTBL_ENTRY _ZTV7ee20662[];
+Class_Descriptor cd_ee20662 = { "ee20662", // class name
+ bases_ee20662, 4,
+ &(vtc_ee20662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20662),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 ee30662 : virtual dd0662 {
+ int e;
+ virtual void foo(); // _ZN7ee306623fooEv
+ ~ee30662(); // tgen
+ ee30662(); // tgen
+};
+//SIG(1 ee30662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30662 ::foo(){vfunc_called(this, "_ZN7ee306623fooEv");}
+ee30662 ::~ee30662(){ note_dtor("ee30662", this);} // tgen
+ee30662 ::ee30662(){ note_ctor("ee30662", this);} // tgen
+
+static void Test_ee30662()
+{
+ extern Class_Descriptor cd_ee30662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30662, buf);
+ ee30662 *dp, &lv = *(dp=new (buf) ee30662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee30662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee30662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), ABISELECT(16,8), "ee30662");
+ check_base_class_offset(lv, (dd0662*), ABISELECT(16,8), "ee30662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30662.e");
+ test_class_info(&lv, &cd_ee30662);
+ dp->~ee30662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30662(Test_ee30662, "ee30662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30662C1Ev();
+extern void _ZN7ee30662D1Ev();
+Name_Map name_map_ee30662[] = {
+ NSPAIR(_ZN7ee30662C1Ev),
+ NSPAIR(_ZN7ee30662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee30662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd0662, 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 _ZTI7ee30662[];
+extern void _ZN7ee306623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306623fooEv,_ZTv0_n12_N7ee306623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306623fooEv,_ZThn8_N7ee306623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee30662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30662[0]),
+ (VTBL_ENTRY)&_ZN7ee306623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306623fooEv,_ZTv0_n12_N7ee306623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30662[];
+static VTT_ENTRY vtt_ee30662[] = {
+ {&(_ZTV7ee30662[3]), 3,10},
+ {&(_ZTV7ee30662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30662[];
+extern VTBL_ENTRY _ZTV7ee30662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30662[];
+static VTBL_ENTRY alt_thunk_names1278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306623fooEv,_ZTv0_n12_N7ee306623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306623fooEv,_ZThn8_N7ee306623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30662 = { "ee30662", // class name
+ bases_ee30662, 4,
+ &(vtc_ee30662[0]), // expected_vtbl_contents
+ &(vtt_ee30662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30662),2, //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 ee40662 : dd0662 {
+ int e;
+ virtual void bar(); // _ZN7ee406623barEv
+ ~ee40662(); // tgen
+ ee40662(); // tgen
+};
+//SIG(1 ee40662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40662 ::bar(){vfunc_called(this, "_ZN7ee406623barEv");}
+ee40662 ::~ee40662(){ note_dtor("ee40662", this);} // tgen
+ee40662 ::ee40662(){ note_ctor("ee40662", this);} // tgen
+
+static void Test_ee40662()
+{
+ extern Class_Descriptor cd_ee40662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40662, buf);
+ ee40662 *dp, &lv = *(dp=new (buf) ee40662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), 0, "ee40662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), 0, "ee40662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), 0, "ee40662");
+ check_base_class_offset(lv, (dd0662*), 0, "ee40662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40662.e");
+ test_class_info(&lv, &cd_ee40662);
+ dp->~ee40662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40662(Test_ee40662, "ee40662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40662C1Ev();
+extern void _ZN7ee40662D1Ev();
+Name_Map name_map_ee40662[] = {
+ NSPAIR(_ZN7ee40662C1Ev),
+ NSPAIR(_ZN7ee40662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee40662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN7ee406623barEv();
+static VTBL_ENTRY vtc_ee40662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN7ee406623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40662[];
+extern VTBL_ENTRY _ZTV7ee40662[];
+Class_Descriptor cd_ee40662 = { "ee40662", // class name
+ bases_ee40662, 4,
+ &(vtc_ee40662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40662),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 ee50662 : virtual dd0662 {
+ int e;
+ virtual void bar(); // _ZN7ee506623barEv
+ ~ee50662(); // tgen
+ ee50662(); // tgen
+};
+//SIG(1 ee50662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50662 ::bar(){vfunc_called(this, "_ZN7ee506623barEv");}
+ee50662 ::~ee50662(){ note_dtor("ee50662", this);} // tgen
+ee50662 ::ee50662(){ note_ctor("ee50662", this);} // tgen
+
+static void Test_ee50662()
+{
+ extern Class_Descriptor cd_ee50662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50662, buf);
+ ee50662 *dp, &lv = *(dp=new (buf) ee50662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee50662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee50662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), ABISELECT(16,8), "ee50662");
+ check_base_class_offset(lv, (dd0662*), ABISELECT(16,8), "ee50662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50662.e");
+ test_class_info(&lv, &cd_ee50662);
+ dp->~ee50662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50662(Test_ee50662, "ee50662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50662C1Ev();
+extern void _ZN7ee50662D1Ev();
+Name_Map name_map_ee50662[] = {
+ NSPAIR(_ZN7ee50662C1Ev),
+ NSPAIR(_ZN7ee50662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee50662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd0662, 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 _ZTI7ee50662[];
+extern void _ZN7ee506623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506623barEv,_ZTv0_n16_N7ee506623barEv)();
+extern void ABISELECT(_ZThn16_N7ee506623barEv,_ZThn8_N7ee506623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50662[0]),
+ (VTBL_ENTRY)&_ZN7ee506623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506623barEv,_ZTv0_n16_N7ee506623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50662[];
+static VTT_ENTRY vtt_ee50662[] = {
+ {&(_ZTV7ee50662[3]), 3,10},
+ {&(_ZTV7ee50662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50662[];
+extern VTBL_ENTRY _ZTV7ee50662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50662[];
+static VTBL_ENTRY alt_thunk_names1279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506623barEv,_ZTv0_n16_N7ee506623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506623barEv,_ZThn8_N7ee506623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50662 = { "ee50662", // class name
+ bases_ee50662, 4,
+ &(vtc_ee50662[0]), // expected_vtbl_contents
+ &(vtt_ee50662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50662),2, //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 ee60662 : dd0662 {
+ int e;
+ virtual void foo(); // _ZN7ee606623fooEv
+ virtual void bar(); // _ZN7ee606623barEv
+ ~ee60662(); // tgen
+ ee60662(); // tgen
+};
+//SIG(1 ee60662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60662 ::foo(){vfunc_called(this, "_ZN7ee606623fooEv");}
+void ee60662 ::bar(){vfunc_called(this, "_ZN7ee606623barEv");}
+ee60662 ::~ee60662(){ note_dtor("ee60662", this);} // tgen
+ee60662 ::ee60662(){ note_ctor("ee60662", this);} // tgen
+
+static void Test_ee60662()
+{
+ extern Class_Descriptor cd_ee60662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60662, buf);
+ ee60662 *dp, &lv = *(dp=new (buf) ee60662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), 0, "ee60662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), 0, "ee60662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), 0, "ee60662");
+ check_base_class_offset(lv, (dd0662*), 0, "ee60662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60662.e");
+ test_class_info(&lv, &cd_ee60662);
+ dp->~ee60662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60662(Test_ee60662, "ee60662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60662C1Ev();
+extern void _ZN7ee60662D1Ev();
+Name_Map name_map_ee60662[] = {
+ NSPAIR(_ZN7ee60662C1Ev),
+ NSPAIR(_ZN7ee60662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee60662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60662[];
+extern void _ZN7ee606623fooEv();
+extern void _ZN7ee606623barEv();
+static VTBL_ENTRY vtc_ee60662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60662[0]),
+ (VTBL_ENTRY)&_ZN7ee606623fooEv,
+ (VTBL_ENTRY)&_ZN7ee606623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60662[];
+extern VTBL_ENTRY _ZTV7ee60662[];
+Class_Descriptor cd_ee60662 = { "ee60662", // class name
+ bases_ee60662, 4,
+ &(vtc_ee60662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60662),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 ee70662 : virtual dd0662 {
+ int e;
+ virtual void foo(); // _ZN7ee706623fooEv
+ virtual void bar(); // _ZN7ee706623barEv
+ ~ee70662(); // tgen
+ ee70662(); // tgen
+};
+//SIG(1 ee70662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70662 ::foo(){vfunc_called(this, "_ZN7ee706623fooEv");}
+void ee70662 ::bar(){vfunc_called(this, "_ZN7ee706623barEv");}
+ee70662 ::~ee70662(){ note_dtor("ee70662", this);} // tgen
+ee70662 ::ee70662(){ note_ctor("ee70662", this);} // tgen
+
+static void Test_ee70662()
+{
+ extern Class_Descriptor cd_ee70662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70662, buf);
+ ee70662 *dp, &lv = *(dp=new (buf) ee70662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee70662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd0662*), ABISELECT(16,8), "ee70662");
+ check_base_class_offset(lv, (cc662*)(dd0662*), ABISELECT(16,8), "ee70662");
+ check_base_class_offset(lv, (dd0662*), ABISELECT(16,8), "ee70662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70662.e");
+ test_class_info(&lv, &cd_ee70662);
+ dp->~ee70662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70662(Test_ee70662, "ee70662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70662C1Ev();
+extern void _ZN7ee70662D1Ev();
+Name_Map name_map_ee70662[] = {
+ NSPAIR(_ZN7ee70662C1Ev),
+ NSPAIR(_ZN7ee70662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd0662;
+extern VTBL_ENTRY _ZTI6dd0662[];
+extern VTBL_ENTRY _ZTV6dd0662[];
+static Base_Class bases_ee70662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd0662, 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 _ZTI7ee70662[];
+extern void _ZN7ee706623fooEv();
+extern void _ZN7ee706623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706623fooEv,_ZTv0_n12_N7ee706623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706623fooEv,_ZThn8_N7ee706623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706623barEv,_ZTv0_n16_N7ee706623barEv)();
+extern void ABISELECT(_ZThn16_N7ee706623barEv,_ZThn8_N7ee706623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70662[0]),
+ (VTBL_ENTRY)&_ZN7ee706623fooEv,
+ (VTBL_ENTRY)&_ZN7ee706623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706623fooEv,_ZTv0_n12_N7ee706623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706623barEv,_ZTv0_n16_N7ee706623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70662[];
+static VTT_ENTRY vtt_ee70662[] = {
+ {&(_ZTV7ee70662[3]), 3,11},
+ {&(_ZTV7ee70662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70662[];
+extern VTBL_ENTRY _ZTV7ee70662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70662[];
+static VTBL_ENTRY alt_thunk_names1280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706623barEv,_ZTv0_n16_N7ee706623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706623barEv,_ZThn8_N7ee706623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706623fooEv,_ZTv0_n12_N7ee706623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706623fooEv,_ZThn8_N7ee706623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70662 = { "ee70662", // class name
+ bases_ee70662, 4,
+ &(vtc_ee70662[0]), // expected_vtbl_contents
+ &(vtt_ee70662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70662),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1662 : virtual cc662 {
+ int d;
+ ~dd1662(); // tgen
+ dd1662(); // tgen
+};
+//SIG(-1 dd1662) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1662 ::~dd1662(){ note_dtor("dd1662", this);} // tgen
+dd1662 ::dd1662(){ note_ctor("dd1662", this);} // tgen
+
+static void Test_dd1662()
+{
+ extern Class_Descriptor cd_dd1662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1662, buf);
+ dd1662 *dp, &lv = *(dp=new (buf) dd1662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,8), "dd1662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,8), "dd1662");
+ check_base_class_offset(lv, (cc662*), ABISELECT(16,8), "dd1662");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1662.d");
+ test_class_info(&lv, &cd_dd1662);
+ dp->~dd1662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1662(Test_dd1662, "dd1662", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1662C1Ev();
+extern void _ZN6dd1662D1Ev();
+Name_Map name_map_dd1662[] = {
+ NSPAIR(_ZN6dd1662C1Ev),
+ NSPAIR(_ZN6dd1662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd1662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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 _ZTI6dd1662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_dd1662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1662[];
+static VTT_ENTRY vtt_dd1662[] = {
+ {&(_ZTV6dd1662[3]), 3,9},
+ {&(_ZTV6dd1662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+Class_Descriptor cd_dd1662 = { "dd1662", // class name
+ bases_dd1662, 3,
+ &(vtc_dd1662[0]), // expected_vtbl_contents
+ &(vtt_dd1662[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1662),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 ee01662 : dd1662 {
+ int e;
+ ~ee01662(); // tgen
+ ee01662(); // tgen
+};
+//SIG(1 ee01662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01662 ::~ee01662(){ note_dtor("ee01662", this);} // tgen
+ee01662 ::ee01662(){ note_ctor("ee01662", this);} // tgen
+
+static void Test_ee01662()
+{
+ extern Class_Descriptor cd_ee01662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01662, buf);
+ ee01662 *dp, &lv = *(dp=new (buf) ee01662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee01662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee01662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(16,12), "ee01662");
+ check_base_class_offset(lv, (dd1662*), 0, "ee01662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01662.e");
+ test_class_info(&lv, &cd_ee01662);
+ dp->~ee01662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01662(Test_ee01662, "ee01662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01662C1Ev();
+extern void _ZN7ee01662D1Ev();
+Name_Map name_map_ee01662[] = {
+ NSPAIR(_ZN7ee01662C1Ev),
+ NSPAIR(_ZN7ee01662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee01662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee01662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee01662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee01662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee01662[] = {
+ {&(_ZTV7ee01662[3]), 3,9},
+ {&(_tg__ZTV6dd1662__7ee01662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee01662[4]), 4,6},
+ {&(_ZTV7ee01662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01662[];
+extern VTBL_ENTRY _ZTV7ee01662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01662[];
+Class_Descriptor cd_ee01662 = { "ee01662", // class name
+ bases_ee01662, 4,
+ &(vtc_ee01662[0]), // expected_vtbl_contents
+ &(vtt_ee01662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01662),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 ee11662 : virtual dd1662 {
+ int e;
+ ~ee11662(); // tgen
+ ee11662(); // tgen
+};
+//SIG(1 ee11662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11662 ::~ee11662(){ note_dtor("ee11662", this);} // tgen
+ee11662 ::ee11662(){ note_ctor("ee11662", this);} // tgen
+
+static void Test_ee11662()
+{
+ extern Class_Descriptor cd_ee11662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11662, buf);
+ ee11662 *dp, &lv = *(dp=new (buf) ee11662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee11662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee11662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(32,16), "ee11662");
+ check_base_class_offset(lv, (dd1662*), ABISELECT(16,8), "ee11662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11662.e");
+ test_class_info(&lv, &cd_ee11662);
+ dp->~ee11662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11662(Test_ee11662, "ee11662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11662C1Ev();
+extern void _ZN7ee11662D1Ev();
+Name_Map name_map_ee11662[] = {
+ NSPAIR(_ZN7ee11662C1Ev),
+ NSPAIR(_ZN7ee11662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee11662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 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 _ZTI7ee11662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee11662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11662[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11662[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee11662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee11662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee11662[] = {
+ {&(_ZTV7ee11662[4]), 4,13},
+ {&(_ZTV7ee11662[7]), 7,13},
+ {&(_ZTV7ee11662[11]), 11,13},
+ {&(_tg__ZTV6dd1662__7ee11662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee11662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11662[];
+extern VTBL_ENTRY _ZTV7ee11662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11662[];
+Class_Descriptor cd_ee11662 = { "ee11662", // class name
+ bases_ee11662, 4,
+ &(vtc_ee11662[0]), // expected_vtbl_contents
+ &(vtt_ee11662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11662),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11662),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 ee21662 : dd1662 {
+ int e;
+ virtual void foo(); // _ZN7ee216623fooEv
+ ~ee21662(); // tgen
+ ee21662(); // tgen
+};
+//SIG(1 ee21662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21662 ::foo(){vfunc_called(this, "_ZN7ee216623fooEv");}
+ee21662 ::~ee21662(){ note_dtor("ee21662", this);} // tgen
+ee21662 ::ee21662(){ note_ctor("ee21662", this);} // tgen
+
+static void Test_ee21662()
+{
+ extern Class_Descriptor cd_ee21662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21662, buf);
+ ee21662 *dp, &lv = *(dp=new (buf) ee21662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee21662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee21662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(16,12), "ee21662");
+ check_base_class_offset(lv, (dd1662*), 0, "ee21662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21662.e");
+ test_class_info(&lv, &cd_ee21662);
+ dp->~ee21662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21662(Test_ee21662, "ee21662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21662C1Ev();
+extern void _ZN7ee21662D1Ev();
+Name_Map name_map_ee21662[] = {
+ NSPAIR(_ZN7ee21662C1Ev),
+ NSPAIR(_ZN7ee21662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee21662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21662[];
+extern void _ZN7ee216623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216623fooEv,_ZTv0_n12_N7ee216623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216623fooEv,_ZThn12_N7ee216623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee21662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21662[0]),
+ (VTBL_ENTRY)&_ZN7ee216623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216623fooEv,_ZTv0_n12_N7ee216623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee21662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee21662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee21662[] = {
+ {&(_ZTV7ee21662[3]), 3,10},
+ {&(_tg__ZTV6dd1662__7ee21662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee21662[4]), 4,6},
+ {&(_ZTV7ee21662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21662[];
+extern VTBL_ENTRY _ZTV7ee21662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21662[];
+static VTBL_ENTRY alt_thunk_names1281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216623fooEv,_ZTv0_n12_N7ee216623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216623fooEv,_ZThn12_N7ee216623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21662 = { "ee21662", // class name
+ bases_ee21662, 4,
+ &(vtc_ee21662[0]), // expected_vtbl_contents
+ &(vtt_ee21662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21662),4, //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 ee31662 : virtual dd1662 {
+ int e;
+ virtual void foo(); // _ZN7ee316623fooEv
+ ~ee31662(); // tgen
+ ee31662(); // tgen
+};
+//SIG(1 ee31662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31662 ::foo(){vfunc_called(this, "_ZN7ee316623fooEv");}
+ee31662 ::~ee31662(){ note_dtor("ee31662", this);} // tgen
+ee31662 ::ee31662(){ note_ctor("ee31662", this);} // tgen
+
+static void Test_ee31662()
+{
+ extern Class_Descriptor cd_ee31662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31662, buf);
+ ee31662 *dp, &lv = *(dp=new (buf) ee31662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee31662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee31662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(32,16), "ee31662");
+ check_base_class_offset(lv, (dd1662*), ABISELECT(16,8), "ee31662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31662.e");
+ test_class_info(&lv, &cd_ee31662);
+ dp->~ee31662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31662(Test_ee31662, "ee31662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31662C1Ev();
+extern void _ZN7ee31662D1Ev();
+Name_Map name_map_ee31662[] = {
+ NSPAIR(_ZN7ee31662C1Ev),
+ NSPAIR(_ZN7ee31662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee31662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 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 _ZTI7ee31662[];
+extern void _ZN7ee316623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316623fooEv,_ZTv0_n12_N7ee316623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316623fooEv,_ZThn16_N7ee316623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee31662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31662[0]),
+ (VTBL_ENTRY)&_ZN7ee316623fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31662[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316623fooEv,_ZTv0_n12_N7ee316623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee31662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee31662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee31662[] = {
+ {&(_ZTV7ee31662[4]), 4,14},
+ {&(_ZTV7ee31662[8]), 8,14},
+ {&(_ZTV7ee31662[12]), 12,14},
+ {&(_tg__ZTV6dd1662__7ee31662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee31662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31662[];
+extern VTBL_ENTRY _ZTV7ee31662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31662[];
+static VTBL_ENTRY alt_thunk_names1282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316623fooEv,_ZTv0_n12_N7ee316623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316623fooEv,_ZThn16_N7ee316623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31662 = { "ee31662", // class name
+ bases_ee31662, 4,
+ &(vtc_ee31662[0]), // expected_vtbl_contents
+ &(vtt_ee31662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31662),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31662),5, //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 ee41662 : dd1662 {
+ int e;
+ virtual void bar(); // _ZN7ee416623barEv
+ ~ee41662(); // tgen
+ ee41662(); // tgen
+};
+//SIG(1 ee41662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41662 ::bar(){vfunc_called(this, "_ZN7ee416623barEv");}
+ee41662 ::~ee41662(){ note_dtor("ee41662", this);} // tgen
+ee41662 ::ee41662(){ note_ctor("ee41662", this);} // tgen
+
+static void Test_ee41662()
+{
+ extern Class_Descriptor cd_ee41662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41662, buf);
+ ee41662 *dp, &lv = *(dp=new (buf) ee41662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee41662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee41662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(16,12), "ee41662");
+ check_base_class_offset(lv, (dd1662*), 0, "ee41662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41662.e");
+ test_class_info(&lv, &cd_ee41662);
+ dp->~ee41662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41662(Test_ee41662, "ee41662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41662C1Ev();
+extern void _ZN7ee41662D1Ev();
+Name_Map name_map_ee41662[] = {
+ NSPAIR(_ZN7ee41662C1Ev),
+ NSPAIR(_ZN7ee41662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee41662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41662[];
+extern void _ZN7ee416623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416623barEv,_ZTv0_n16_N7ee416623barEv)();
+extern void ABISELECT(_ZThn16_N7ee416623barEv,_ZThn12_N7ee416623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41662[0]),
+ (VTBL_ENTRY)&_ZN7ee416623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416623barEv,_ZTv0_n16_N7ee416623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee41662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee41662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee41662[] = {
+ {&(_ZTV7ee41662[3]), 3,10},
+ {&(_tg__ZTV6dd1662__7ee41662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee41662[4]), 4,6},
+ {&(_ZTV7ee41662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41662[];
+extern VTBL_ENTRY _ZTV7ee41662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41662[];
+static VTBL_ENTRY alt_thunk_names1283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416623barEv,_ZTv0_n16_N7ee416623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416623barEv,_ZThn12_N7ee416623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41662 = { "ee41662", // class name
+ bases_ee41662, 4,
+ &(vtc_ee41662[0]), // expected_vtbl_contents
+ &(vtt_ee41662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41662),4, //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 ee51662 : virtual dd1662 {
+ int e;
+ virtual void bar(); // _ZN7ee516623barEv
+ ~ee51662(); // tgen
+ ee51662(); // tgen
+};
+//SIG(1 ee51662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51662 ::bar(){vfunc_called(this, "_ZN7ee516623barEv");}
+ee51662 ::~ee51662(){ note_dtor("ee51662", this);} // tgen
+ee51662 ::ee51662(){ note_ctor("ee51662", this);} // tgen
+
+static void Test_ee51662()
+{
+ extern Class_Descriptor cd_ee51662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51662, buf);
+ ee51662 *dp, &lv = *(dp=new (buf) ee51662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee51662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee51662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(32,16), "ee51662");
+ check_base_class_offset(lv, (dd1662*), ABISELECT(16,8), "ee51662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51662.e");
+ test_class_info(&lv, &cd_ee51662);
+ dp->~ee51662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51662(Test_ee51662, "ee51662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51662C1Ev();
+extern void _ZN7ee51662D1Ev();
+Name_Map name_map_ee51662[] = {
+ NSPAIR(_ZN7ee51662C1Ev),
+ NSPAIR(_ZN7ee51662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee51662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 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 _ZTI7ee51662[];
+extern void _ZN7ee516623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516623barEv,_ZTv0_n16_N7ee516623barEv)();
+extern void ABISELECT(_ZThn32_N7ee516623barEv,_ZThn16_N7ee516623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51662[0]),
+ (VTBL_ENTRY)&_ZN7ee516623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51662[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516623barEv,_ZTv0_n16_N7ee516623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee51662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee51662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee51662[] = {
+ {&(_ZTV7ee51662[4]), 4,14},
+ {&(_ZTV7ee51662[8]), 8,14},
+ {&(_ZTV7ee51662[12]), 12,14},
+ {&(_tg__ZTV6dd1662__7ee51662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee51662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51662[];
+extern VTBL_ENTRY _ZTV7ee51662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51662[];
+static VTBL_ENTRY alt_thunk_names1284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516623barEv,_ZTv0_n16_N7ee516623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516623barEv,_ZThn16_N7ee516623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51662 = { "ee51662", // class name
+ bases_ee51662, 4,
+ &(vtc_ee51662[0]), // expected_vtbl_contents
+ &(vtt_ee51662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51662),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51662),5, //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 ee61662 : dd1662 {
+ int e;
+ virtual void foo(); // _ZN7ee616623fooEv
+ virtual void bar(); // _ZN7ee616623barEv
+ ~ee61662(); // tgen
+ ee61662(); // tgen
+};
+//SIG(1 ee61662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61662 ::foo(){vfunc_called(this, "_ZN7ee616623fooEv");}
+void ee61662 ::bar(){vfunc_called(this, "_ZN7ee616623barEv");}
+ee61662 ::~ee61662(){ note_dtor("ee61662", this);} // tgen
+ee61662 ::ee61662(){ note_ctor("ee61662", this);} // tgen
+
+static void Test_ee61662()
+{
+ extern Class_Descriptor cd_ee61662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61662, buf);
+ ee61662 *dp, &lv = *(dp=new (buf) ee61662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee61662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee61662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(16,12), "ee61662");
+ check_base_class_offset(lv, (dd1662*), 0, "ee61662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61662.e");
+ test_class_info(&lv, &cd_ee61662);
+ dp->~ee61662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61662(Test_ee61662, "ee61662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61662C1Ev();
+extern void _ZN7ee61662D1Ev();
+Name_Map name_map_ee61662[] = {
+ NSPAIR(_ZN7ee61662C1Ev),
+ NSPAIR(_ZN7ee61662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee61662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61662[];
+extern void _ZN7ee616623fooEv();
+extern void _ZN7ee616623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616623fooEv,_ZTv0_n12_N7ee616623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616623fooEv,_ZThn12_N7ee616623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616623barEv,_ZTv0_n16_N7ee616623barEv)();
+extern void ABISELECT(_ZThn16_N7ee616623barEv,_ZThn12_N7ee616623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61662[0]),
+ (VTBL_ENTRY)&_ZN7ee616623fooEv,
+ (VTBL_ENTRY)&_ZN7ee616623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616623fooEv,_ZTv0_n12_N7ee616623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616623barEv,_ZTv0_n16_N7ee616623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee61662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee61662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee61662[] = {
+ {&(_ZTV7ee61662[3]), 3,11},
+ {&(_tg__ZTV6dd1662__7ee61662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee61662[4]), 4,6},
+ {&(_ZTV7ee61662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61662[];
+extern VTBL_ENTRY _ZTV7ee61662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61662[];
+static VTBL_ENTRY alt_thunk_names1285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616623barEv,_ZTv0_n16_N7ee616623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616623barEv,_ZThn12_N7ee616623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616623fooEv,_ZTv0_n12_N7ee616623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616623fooEv,_ZThn12_N7ee616623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61662 = { "ee61662", // class name
+ bases_ee61662, 4,
+ &(vtc_ee61662[0]), // expected_vtbl_contents
+ &(vtt_ee61662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61662),4, //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 ee71662 : virtual dd1662 {
+ int e;
+ virtual void foo(); // _ZN7ee716623fooEv
+ virtual void bar(); // _ZN7ee716623barEv
+ ~ee71662(); // tgen
+ ee71662(); // tgen
+};
+//SIG(1 ee71662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71662 ::foo(){vfunc_called(this, "_ZN7ee716623fooEv");}
+void ee71662 ::bar(){vfunc_called(this, "_ZN7ee716623barEv");}
+ee71662 ::~ee71662(){ note_dtor("ee71662", this);} // tgen
+ee71662 ::ee71662(){ note_ctor("ee71662", this);} // tgen
+
+static void Test_ee71662()
+{
+ extern Class_Descriptor cd_ee71662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71662, buf);
+ ee71662 *dp, &lv = *(dp=new (buf) ee71662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee71662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee71662");
+ check_base_class_offset(lv, (cc662*)(dd1662*), ABISELECT(32,16), "ee71662");
+ check_base_class_offset(lv, (dd1662*), ABISELECT(16,8), "ee71662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71662.e");
+ test_class_info(&lv, &cd_ee71662);
+ dp->~ee71662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71662(Test_ee71662, "ee71662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71662C1Ev();
+extern void _ZN7ee71662D1Ev();
+Name_Map name_map_ee71662[] = {
+ NSPAIR(_ZN7ee71662C1Ev),
+ NSPAIR(_ZN7ee71662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd1662;
+extern VTBL_ENTRY _ZTI6dd1662[];
+extern VTBL_ENTRY _ZTV6dd1662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1662[];
+static Base_Class bases_ee71662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd1662, 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 _ZTI7ee71662[];
+extern void _ZN7ee716623fooEv();
+extern void _ZN7ee716623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716623fooEv,_ZTv0_n12_N7ee716623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716623fooEv,_ZThn16_N7ee716623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716623barEv,_ZTv0_n16_N7ee716623barEv)();
+extern void ABISELECT(_ZThn32_N7ee716623barEv,_ZThn16_N7ee716623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71662[0]),
+ (VTBL_ENTRY)&_ZN7ee716623fooEv,
+ (VTBL_ENTRY)&_ZN7ee716623barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71662[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716623fooEv,_ZTv0_n12_N7ee716623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716623barEv,_ZTv0_n16_N7ee716623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71662[];
+static VTBL_ENTRY _tg__ZTV6dd1662__7ee71662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+};
+extern void _ZN5cc6623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd1662__7ee71662[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee71662[] = {
+ {&(_ZTV7ee71662[4]), 4,15},
+ {&(_ZTV7ee71662[9]), 9,15},
+ {&(_ZTV7ee71662[13]), 13,15},
+ {&(_tg__ZTV6dd1662__7ee71662[3]), 3,3},
+ {&(_tg__ZTV5cc662__6dd1662__7ee71662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71662[];
+extern VTBL_ENTRY _ZTV7ee71662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71662[];
+static VTBL_ENTRY alt_thunk_names1286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716623barEv,_ZTv0_n16_N7ee716623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716623barEv,_ZThn16_N7ee716623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716623fooEv,_ZTv0_n12_N7ee716623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716623fooEv,_ZThn16_N7ee716623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71662 = { "ee71662", // class name
+ bases_ee71662, 4,
+ &(vtc_ee71662[0]), // expected_vtbl_contents
+ &(vtt_ee71662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71662),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71662),5, //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 dd2662 : cc662 {
+ int d;
+ virtual void foo(); // _ZN6dd26623fooEv
+ ~dd2662(); // tgen
+ dd2662(); // tgen
+};
+//SIG(-1 dd2662) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2662 ::foo(){vfunc_called(this, "_ZN6dd26623fooEv");}
+dd2662 ::~dd2662(){ note_dtor("dd2662", this);} // tgen
+dd2662 ::dd2662(){ note_ctor("dd2662", this);} // tgen
+
+static void Test_dd2662()
+{
+ extern Class_Descriptor cd_dd2662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2662, buf);
+ dd2662 *dp, &lv = *(dp=new (buf) dd2662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), 0, "dd2662");
+ check_base_class_offset(lv, (bb62*)(cc662*), 0, "dd2662");
+ check_base_class_offset(lv, (cc662*), 0, "dd2662");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2662.d");
+ test_class_info(&lv, &cd_dd2662);
+ dp->~dd2662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2662(Test_dd2662, "dd2662", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2662C1Ev();
+extern void _ZN6dd2662D1Ev();
+Name_Map name_map_dd2662[] = {
+ NSPAIR(_ZN6dd2662C1Ev),
+ NSPAIR(_ZN6dd2662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd2662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2662[];
+extern void _ZN6dd26623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_dd2662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2662[0]),
+ (VTBL_ENTRY)&_ZN6dd26623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+Class_Descriptor cd_dd2662 = { "dd2662", // class name
+ bases_dd2662, 3,
+ &(vtc_dd2662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2662),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 ee02662 : dd2662 {
+ int e;
+ ~ee02662(); // tgen
+ ee02662(); // tgen
+};
+//SIG(1 ee02662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02662 ::~ee02662(){ note_dtor("ee02662", this);} // tgen
+ee02662 ::ee02662(){ note_ctor("ee02662", this);} // tgen
+
+static void Test_ee02662()
+{
+ extern Class_Descriptor cd_ee02662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02662, buf);
+ ee02662 *dp, &lv = *(dp=new (buf) ee02662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), 0, "ee02662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), 0, "ee02662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), 0, "ee02662");
+ check_base_class_offset(lv, (dd2662*), 0, "ee02662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02662.e");
+ test_class_info(&lv, &cd_ee02662);
+ dp->~ee02662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02662(Test_ee02662, "ee02662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02662C1Ev();
+extern void _ZN7ee02662D1Ev();
+Name_Map name_map_ee02662[] = {
+ NSPAIR(_ZN7ee02662C1Ev),
+ NSPAIR(_ZN7ee02662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee02662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, 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 _ZTI7ee02662[];
+extern void _ZN6dd26623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee02662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02662[0]),
+ (VTBL_ENTRY)&_ZN6dd26623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02662[];
+extern VTBL_ENTRY _ZTV7ee02662[];
+Class_Descriptor cd_ee02662 = { "ee02662", // class name
+ bases_ee02662, 4,
+ &(vtc_ee02662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02662),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 ee12662 : virtual dd2662 {
+ int e;
+ ~ee12662(); // tgen
+ ee12662(); // tgen
+};
+//SIG(1 ee12662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12662 ::~ee12662(){ note_dtor("ee12662", this);} // tgen
+ee12662 ::ee12662(){ note_ctor("ee12662", this);} // tgen
+
+static void Test_ee12662()
+{
+ extern Class_Descriptor cd_ee12662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12662, buf);
+ ee12662 *dp, &lv = *(dp=new (buf) ee12662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee12662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee12662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), ABISELECT(16,8), "ee12662");
+ check_base_class_offset(lv, (dd2662*), ABISELECT(16,8), "ee12662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12662.e");
+ test_class_info(&lv, &cd_ee12662);
+ dp->~ee12662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12662(Test_ee12662, "ee12662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12662C1Ev();
+extern void _ZN7ee12662D1Ev();
+Name_Map name_map_ee12662[] = {
+ NSPAIR(_ZN7ee12662C1Ev),
+ NSPAIR(_ZN7ee12662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee12662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, 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 _ZTI7ee12662[];
+extern void _ZN6dd26623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee12662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12662[0]),
+ (VTBL_ENTRY)&_ZN6dd26623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12662[];
+static VTT_ENTRY vtt_ee12662[] = {
+ {&(_ZTV7ee12662[3]), 3,9},
+ {&(_ZTV7ee12662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12662[];
+extern VTBL_ENTRY _ZTV7ee12662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12662[];
+Class_Descriptor cd_ee12662 = { "ee12662", // class name
+ bases_ee12662, 4,
+ &(vtc_ee12662[0]), // expected_vtbl_contents
+ &(vtt_ee12662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12662),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 ee22662 : dd2662 {
+ int e;
+ virtual void foo(); // _ZN7ee226623fooEv
+ ~ee22662(); // tgen
+ ee22662(); // tgen
+};
+//SIG(1 ee22662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22662 ::foo(){vfunc_called(this, "_ZN7ee226623fooEv");}
+ee22662 ::~ee22662(){ note_dtor("ee22662", this);} // tgen
+ee22662 ::ee22662(){ note_ctor("ee22662", this);} // tgen
+
+static void Test_ee22662()
+{
+ extern Class_Descriptor cd_ee22662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22662, buf);
+ ee22662 *dp, &lv = *(dp=new (buf) ee22662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), 0, "ee22662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), 0, "ee22662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), 0, "ee22662");
+ check_base_class_offset(lv, (dd2662*), 0, "ee22662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22662.e");
+ test_class_info(&lv, &cd_ee22662);
+ dp->~ee22662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22662(Test_ee22662, "ee22662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22662C1Ev();
+extern void _ZN7ee22662D1Ev();
+Name_Map name_map_ee22662[] = {
+ NSPAIR(_ZN7ee22662C1Ev),
+ NSPAIR(_ZN7ee22662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee22662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22662[];
+extern void _ZN7ee226623fooEv();
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee22662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22662[0]),
+ (VTBL_ENTRY)&_ZN7ee226623fooEv,
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22662[];
+extern VTBL_ENTRY _ZTV7ee22662[];
+Class_Descriptor cd_ee22662 = { "ee22662", // class name
+ bases_ee22662, 4,
+ &(vtc_ee22662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22662),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 ee32662 : virtual dd2662 {
+ int e;
+ virtual void foo(); // _ZN7ee326623fooEv
+ ~ee32662(); // tgen
+ ee32662(); // tgen
+};
+//SIG(1 ee32662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32662 ::foo(){vfunc_called(this, "_ZN7ee326623fooEv");}
+ee32662 ::~ee32662(){ note_dtor("ee32662", this);} // tgen
+ee32662 ::ee32662(){ note_ctor("ee32662", this);} // tgen
+
+static void Test_ee32662()
+{
+ extern Class_Descriptor cd_ee32662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32662, buf);
+ ee32662 *dp, &lv = *(dp=new (buf) ee32662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee32662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee32662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), ABISELECT(16,8), "ee32662");
+ check_base_class_offset(lv, (dd2662*), ABISELECT(16,8), "ee32662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32662.e");
+ test_class_info(&lv, &cd_ee32662);
+ dp->~ee32662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32662(Test_ee32662, "ee32662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32662C1Ev();
+extern void _ZN7ee32662D1Ev();
+Name_Map name_map_ee32662[] = {
+ NSPAIR(_ZN7ee32662C1Ev),
+ NSPAIR(_ZN7ee32662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee32662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, ABISELECT(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 _ZTI7ee32662[];
+extern void _ZN7ee326623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326623fooEv,_ZTv0_n12_N7ee326623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326623fooEv,_ZThn8_N7ee326623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee32662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32662[0]),
+ (VTBL_ENTRY)&_ZN7ee326623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326623fooEv,_ZTv0_n12_N7ee326623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32662[];
+static VTT_ENTRY vtt_ee32662[] = {
+ {&(_ZTV7ee32662[3]), 3,10},
+ {&(_ZTV7ee32662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32662[];
+extern VTBL_ENTRY _ZTV7ee32662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32662[];
+static VTBL_ENTRY alt_thunk_names1287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326623fooEv,_ZTv0_n12_N7ee326623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326623fooEv,_ZThn8_N7ee326623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32662 = { "ee32662", // class name
+ bases_ee32662, 4,
+ &(vtc_ee32662[0]), // expected_vtbl_contents
+ &(vtt_ee32662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32662),2, //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 ee42662 : dd2662 {
+ int e;
+ virtual void bar(); // _ZN7ee426623barEv
+ ~ee42662(); // tgen
+ ee42662(); // tgen
+};
+//SIG(1 ee42662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42662 ::bar(){vfunc_called(this, "_ZN7ee426623barEv");}
+ee42662 ::~ee42662(){ note_dtor("ee42662", this);} // tgen
+ee42662 ::ee42662(){ note_ctor("ee42662", this);} // tgen
+
+static void Test_ee42662()
+{
+ extern Class_Descriptor cd_ee42662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42662, buf);
+ ee42662 *dp, &lv = *(dp=new (buf) ee42662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), 0, "ee42662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), 0, "ee42662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), 0, "ee42662");
+ check_base_class_offset(lv, (dd2662*), 0, "ee42662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42662.e");
+ test_class_info(&lv, &cd_ee42662);
+ dp->~ee42662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42662(Test_ee42662, "ee42662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42662C1Ev();
+extern void _ZN7ee42662D1Ev();
+Name_Map name_map_ee42662[] = {
+ NSPAIR(_ZN7ee42662C1Ev),
+ NSPAIR(_ZN7ee42662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee42662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42662[];
+extern void _ZN6dd26623fooEv();
+extern void _ZN7ee426623barEv();
+static VTBL_ENTRY vtc_ee42662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42662[0]),
+ (VTBL_ENTRY)&_ZN6dd26623fooEv,
+ (VTBL_ENTRY)&_ZN7ee426623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42662[];
+extern VTBL_ENTRY _ZTV7ee42662[];
+Class_Descriptor cd_ee42662 = { "ee42662", // class name
+ bases_ee42662, 4,
+ &(vtc_ee42662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42662),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 ee52662 : virtual dd2662 {
+ int e;
+ virtual void bar(); // _ZN7ee526623barEv
+ ~ee52662(); // tgen
+ ee52662(); // tgen
+};
+//SIG(1 ee52662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52662 ::bar(){vfunc_called(this, "_ZN7ee526623barEv");}
+ee52662 ::~ee52662(){ note_dtor("ee52662", this);} // tgen
+ee52662 ::ee52662(){ note_ctor("ee52662", this);} // tgen
+
+static void Test_ee52662()
+{
+ extern Class_Descriptor cd_ee52662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52662, buf);
+ ee52662 *dp, &lv = *(dp=new (buf) ee52662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee52662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee52662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), ABISELECT(16,8), "ee52662");
+ check_base_class_offset(lv, (dd2662*), ABISELECT(16,8), "ee52662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52662.e");
+ test_class_info(&lv, &cd_ee52662);
+ dp->~ee52662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52662(Test_ee52662, "ee52662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52662C1Ev();
+extern void _ZN7ee52662D1Ev();
+Name_Map name_map_ee52662[] = {
+ NSPAIR(_ZN7ee52662C1Ev),
+ NSPAIR(_ZN7ee52662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee52662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, ABISELECT(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 _ZTI7ee52662[];
+extern void _ZN7ee526623barEv();
+extern void _ZN6dd26623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526623barEv,_ZTv0_n16_N7ee526623barEv)();
+extern void ABISELECT(_ZThn16_N7ee526623barEv,_ZThn8_N7ee526623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52662[0]),
+ (VTBL_ENTRY)&_ZN7ee526623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52662[0]),
+ (VTBL_ENTRY)&_ZN6dd26623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526623barEv,_ZTv0_n16_N7ee526623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52662[];
+static VTT_ENTRY vtt_ee52662[] = {
+ {&(_ZTV7ee52662[3]), 3,10},
+ {&(_ZTV7ee52662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52662[];
+extern VTBL_ENTRY _ZTV7ee52662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52662[];
+static VTBL_ENTRY alt_thunk_names1288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526623barEv,_ZTv0_n16_N7ee526623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526623barEv,_ZThn8_N7ee526623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52662 = { "ee52662", // class name
+ bases_ee52662, 4,
+ &(vtc_ee52662[0]), // expected_vtbl_contents
+ &(vtt_ee52662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52662),2, //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 ee62662 : dd2662 {
+ int e;
+ virtual void foo(); // _ZN7ee626623fooEv
+ virtual void bar(); // _ZN7ee626623barEv
+ ~ee62662(); // tgen
+ ee62662(); // tgen
+};
+//SIG(1 ee62662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62662 ::foo(){vfunc_called(this, "_ZN7ee626623fooEv");}
+void ee62662 ::bar(){vfunc_called(this, "_ZN7ee626623barEv");}
+ee62662 ::~ee62662(){ note_dtor("ee62662", this);} // tgen
+ee62662 ::ee62662(){ note_ctor("ee62662", this);} // tgen
+
+static void Test_ee62662()
+{
+ extern Class_Descriptor cd_ee62662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62662, buf);
+ ee62662 *dp, &lv = *(dp=new (buf) ee62662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), 0, "ee62662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), 0, "ee62662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), 0, "ee62662");
+ check_base_class_offset(lv, (dd2662*), 0, "ee62662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62662.e");
+ test_class_info(&lv, &cd_ee62662);
+ dp->~ee62662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62662(Test_ee62662, "ee62662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62662C1Ev();
+extern void _ZN7ee62662D1Ev();
+Name_Map name_map_ee62662[] = {
+ NSPAIR(_ZN7ee62662C1Ev),
+ NSPAIR(_ZN7ee62662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee62662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62662[];
+extern void _ZN7ee626623fooEv();
+extern void _ZN7ee626623barEv();
+static VTBL_ENTRY vtc_ee62662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62662[0]),
+ (VTBL_ENTRY)&_ZN7ee626623fooEv,
+ (VTBL_ENTRY)&_ZN7ee626623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62662[];
+extern VTBL_ENTRY _ZTV7ee62662[];
+Class_Descriptor cd_ee62662 = { "ee62662", // class name
+ bases_ee62662, 4,
+ &(vtc_ee62662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62662),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 ee72662 : virtual dd2662 {
+ int e;
+ virtual void foo(); // _ZN7ee726623fooEv
+ virtual void bar(); // _ZN7ee726623barEv
+ ~ee72662(); // tgen
+ ee72662(); // tgen
+};
+//SIG(1 ee72662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72662 ::foo(){vfunc_called(this, "_ZN7ee726623fooEv");}
+void ee72662 ::bar(){vfunc_called(this, "_ZN7ee726623barEv");}
+ee72662 ::~ee72662(){ note_dtor("ee72662", this);} // tgen
+ee72662 ::ee72662(){ note_ctor("ee72662", this);} // tgen
+
+static void Test_ee72662()
+{
+ extern Class_Descriptor cd_ee72662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72662, buf);
+ ee72662 *dp, &lv = *(dp=new (buf) ee72662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee72662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd2662*), ABISELECT(16,8), "ee72662");
+ check_base_class_offset(lv, (cc662*)(dd2662*), ABISELECT(16,8), "ee72662");
+ check_base_class_offset(lv, (dd2662*), ABISELECT(16,8), "ee72662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72662.e");
+ test_class_info(&lv, &cd_ee72662);
+ dp->~ee72662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72662(Test_ee72662, "ee72662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72662C1Ev();
+extern void _ZN7ee72662D1Ev();
+Name_Map name_map_ee72662[] = {
+ NSPAIR(_ZN7ee72662C1Ev),
+ NSPAIR(_ZN7ee72662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd2662;
+extern VTBL_ENTRY _ZTI6dd2662[];
+extern VTBL_ENTRY _ZTV6dd2662[];
+static Base_Class bases_ee72662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2662, ABISELECT(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 _ZTI7ee72662[];
+extern void _ZN7ee726623fooEv();
+extern void _ZN7ee726623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726623fooEv,_ZTv0_n12_N7ee726623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726623fooEv,_ZThn8_N7ee726623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726623barEv,_ZTv0_n16_N7ee726623barEv)();
+extern void ABISELECT(_ZThn16_N7ee726623barEv,_ZThn8_N7ee726623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72662[0]),
+ (VTBL_ENTRY)&_ZN7ee726623fooEv,
+ (VTBL_ENTRY)&_ZN7ee726623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726623fooEv,_ZTv0_n12_N7ee726623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726623barEv,_ZTv0_n16_N7ee726623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72662[];
+static VTT_ENTRY vtt_ee72662[] = {
+ {&(_ZTV7ee72662[3]), 3,11},
+ {&(_ZTV7ee72662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72662[];
+extern VTBL_ENTRY _ZTV7ee72662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72662[];
+static VTBL_ENTRY alt_thunk_names1289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726623barEv,_ZTv0_n16_N7ee726623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726623barEv,_ZThn8_N7ee726623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726623fooEv,_ZTv0_n12_N7ee726623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726623fooEv,_ZThn8_N7ee726623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72662 = { "ee72662", // class name
+ bases_ee72662, 4,
+ &(vtc_ee72662[0]), // expected_vtbl_contents
+ &(vtt_ee72662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72662),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3662 : virtual cc662 {
+ int d;
+ virtual void foo(); // _ZN6dd36623fooEv
+ ~dd3662(); // tgen
+ dd3662(); // tgen
+};
+//SIG(-1 dd3662) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3662 ::foo(){vfunc_called(this, "_ZN6dd36623fooEv");}
+dd3662 ::~dd3662(){ note_dtor("dd3662", this);} // tgen
+dd3662 ::dd3662(){ note_ctor("dd3662", this);} // tgen
+
+static void Test_dd3662()
+{
+ extern Class_Descriptor cd_dd3662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3662, buf);
+ dd3662 *dp, &lv = *(dp=new (buf) dd3662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,8), "dd3662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,8), "dd3662");
+ check_base_class_offset(lv, (cc662*), ABISELECT(16,8), "dd3662");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3662.d");
+ test_class_info(&lv, &cd_dd3662);
+ dp->~dd3662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3662(Test_dd3662, "dd3662", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3662C1Ev();
+extern void _ZN6dd3662D1Ev();
+Name_Map name_map_dd3662[] = {
+ NSPAIR(_ZN6dd3662C1Ev),
+ NSPAIR(_ZN6dd3662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd3662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(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 _ZTI6dd3662[];
+extern void _ZN6dd36623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_dd3662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3662[];
+static VTT_ENTRY vtt_dd3662[] = {
+ {&(_ZTV6dd3662[3]), 3,10},
+ {&(_ZTV6dd3662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static VTBL_ENTRY alt_thunk_names1290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3662 = { "dd3662", // class name
+ bases_dd3662, 3,
+ &(vtc_dd3662[0]), // expected_vtbl_contents
+ &(vtt_dd3662[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3662),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03662 : dd3662 {
+ int e;
+ ~ee03662(); // tgen
+ ee03662(); // tgen
+};
+//SIG(1 ee03662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03662 ::~ee03662(){ note_dtor("ee03662", this);} // tgen
+ee03662 ::ee03662(){ note_ctor("ee03662", this);} // tgen
+
+static void Test_ee03662()
+{
+ extern Class_Descriptor cd_ee03662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03662, buf);
+ ee03662 *dp, &lv = *(dp=new (buf) ee03662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee03662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee03662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(16,12), "ee03662");
+ check_base_class_offset(lv, (dd3662*), 0, "ee03662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03662.e");
+ test_class_info(&lv, &cd_ee03662);
+ dp->~ee03662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03662(Test_ee03662, "ee03662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03662C1Ev();
+extern void _ZN7ee03662D1Ev();
+Name_Map name_map_ee03662[] = {
+ NSPAIR(_ZN7ee03662C1Ev),
+ NSPAIR(_ZN7ee03662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee03662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03662[];
+extern void _ZN6dd36623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee03662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee03662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee03662[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee03662[] = {
+ {&(_ZTV7ee03662[3]), 3,10},
+ {&(_tg__ZTV6dd3662__7ee03662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee03662[4]), 4,6},
+ {&(_ZTV7ee03662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03662[];
+extern VTBL_ENTRY _ZTV7ee03662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03662[];
+static VTBL_ENTRY alt_thunk_names1291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03662 = { "ee03662", // class name
+ bases_ee03662, 4,
+ &(vtc_ee03662[0]), // expected_vtbl_contents
+ &(vtt_ee03662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03662),4, //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 ee13662 : virtual dd3662 {
+ int e;
+ ~ee13662(); // tgen
+ ee13662(); // tgen
+};
+//SIG(1 ee13662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13662 ::~ee13662(){ note_dtor("ee13662", this);} // tgen
+ee13662 ::ee13662(){ note_ctor("ee13662", this);} // tgen
+
+static void Test_ee13662()
+{
+ extern Class_Descriptor cd_ee13662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13662, buf);
+ ee13662 *dp, &lv = *(dp=new (buf) ee13662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee13662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee13662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(32,16), "ee13662");
+ check_base_class_offset(lv, (dd3662*), ABISELECT(16,8), "ee13662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13662.e");
+ test_class_info(&lv, &cd_ee13662);
+ dp->~ee13662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13662(Test_ee13662, "ee13662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13662C1Ev();
+extern void _ZN7ee13662D1Ev();
+Name_Map name_map_ee13662[] = {
+ NSPAIR(_ZN7ee13662C1Ev),
+ NSPAIR(_ZN7ee13662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee13662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, ABISELECT(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 _ZTI7ee13662[];
+extern void _ZN6dd36623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee13662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13662[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee13662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee13662[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee13662[] = {
+ {&(_ZTV7ee13662[4]), 4,15},
+ {&(_ZTV7ee13662[8]), 8,15},
+ {&(_ZTV7ee13662[13]), 13,15},
+ {&(_tg__ZTV6dd3662__7ee13662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee13662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13662[];
+extern VTBL_ENTRY _ZTV7ee13662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13662[];
+static VTBL_ENTRY alt_thunk_names1292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13662 = { "ee13662", // class name
+ bases_ee13662, 4,
+ &(vtc_ee13662[0]), // expected_vtbl_contents
+ &(vtt_ee13662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13662),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13662),5, //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 ee23662 : dd3662 {
+ int e;
+ virtual void foo(); // _ZN7ee236623fooEv
+ ~ee23662(); // tgen
+ ee23662(); // tgen
+};
+//SIG(1 ee23662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23662 ::foo(){vfunc_called(this, "_ZN7ee236623fooEv");}
+ee23662 ::~ee23662(){ note_dtor("ee23662", this);} // tgen
+ee23662 ::ee23662(){ note_ctor("ee23662", this);} // tgen
+
+static void Test_ee23662()
+{
+ extern Class_Descriptor cd_ee23662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23662, buf);
+ ee23662 *dp, &lv = *(dp=new (buf) ee23662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee23662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee23662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(16,12), "ee23662");
+ check_base_class_offset(lv, (dd3662*), 0, "ee23662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23662.e");
+ test_class_info(&lv, &cd_ee23662);
+ dp->~ee23662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23662(Test_ee23662, "ee23662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23662C1Ev();
+extern void _ZN7ee23662D1Ev();
+Name_Map name_map_ee23662[] = {
+ NSPAIR(_ZN7ee23662C1Ev),
+ NSPAIR(_ZN7ee23662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee23662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23662[];
+extern void _ZN7ee236623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236623fooEv,_ZTv0_n12_N7ee236623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236623fooEv,_ZThn12_N7ee236623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee23662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23662[0]),
+ (VTBL_ENTRY)&_ZN7ee236623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236623fooEv,_ZTv0_n12_N7ee236623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee23662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee23662[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee23662[] = {
+ {&(_ZTV7ee23662[3]), 3,10},
+ {&(_tg__ZTV6dd3662__7ee23662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee23662[4]), 4,6},
+ {&(_ZTV7ee23662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23662[];
+extern VTBL_ENTRY _ZTV7ee23662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23662[];
+static VTBL_ENTRY alt_thunk_names1293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236623fooEv,_ZTv0_n12_N7ee236623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236623fooEv,_ZThn12_N7ee236623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23662 = { "ee23662", // class name
+ bases_ee23662, 4,
+ &(vtc_ee23662[0]), // expected_vtbl_contents
+ &(vtt_ee23662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23662),4, //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 ee33662 : virtual dd3662 {
+ int e;
+ virtual void foo(); // _ZN7ee336623fooEv
+ ~ee33662(); // tgen
+ ee33662(); // tgen
+};
+//SIG(1 ee33662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33662 ::foo(){vfunc_called(this, "_ZN7ee336623fooEv");}
+ee33662 ::~ee33662(){ note_dtor("ee33662", this);} // tgen
+ee33662 ::ee33662(){ note_ctor("ee33662", this);} // tgen
+
+static void Test_ee33662()
+{
+ extern Class_Descriptor cd_ee33662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33662, buf);
+ ee33662 *dp, &lv = *(dp=new (buf) ee33662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee33662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee33662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(32,16), "ee33662");
+ check_base_class_offset(lv, (dd3662*), ABISELECT(16,8), "ee33662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33662.e");
+ test_class_info(&lv, &cd_ee33662);
+ dp->~ee33662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33662(Test_ee33662, "ee33662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33662C1Ev();
+extern void _ZN7ee33662D1Ev();
+Name_Map name_map_ee33662[] = {
+ NSPAIR(_ZN7ee33662C1Ev),
+ NSPAIR(_ZN7ee33662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee33662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, ABISELECT(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 _ZTI7ee33662[];
+extern void _ZN7ee336623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336623fooEv,_ZTv0_n16_N7ee336623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336623fooEv,_ZThn8_N7ee336623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336623fooEv,_ZTv0_n12_N7ee336623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336623fooEv,_ZThn16_N7ee336623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY vtc_ee33662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33662[0]),
+ (VTBL_ENTRY)&_ZN7ee336623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336623fooEv,_ZTv0_n16_N7ee336623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336623fooEv,_ZTv0_n12_N7ee336623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee33662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee33662[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee33662[] = {
+ {&(_ZTV7ee33662[4]), 4,16},
+ {&(_ZTV7ee33662[9]), 9,16},
+ {&(_ZTV7ee33662[14]), 14,16},
+ {&(_tg__ZTV6dd3662__7ee33662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee33662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33662[];
+extern VTBL_ENTRY _ZTV7ee33662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33662[];
+static VTBL_ENTRY alt_thunk_names1294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336623fooEv,_ZTv0_n12_N7ee336623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336623fooEv,_ZThn16_N7ee336623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336623fooEv,_ZTv0_n16_N7ee336623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336623fooEv,_ZThn8_N7ee336623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33662 = { "ee33662", // class name
+ bases_ee33662, 4,
+ &(vtc_ee33662[0]), // expected_vtbl_contents
+ &(vtt_ee33662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33662),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33662),5, //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 ee43662 : dd3662 {
+ int e;
+ virtual void bar(); // _ZN7ee436623barEv
+ ~ee43662(); // tgen
+ ee43662(); // tgen
+};
+//SIG(1 ee43662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43662 ::bar(){vfunc_called(this, "_ZN7ee436623barEv");}
+ee43662 ::~ee43662(){ note_dtor("ee43662", this);} // tgen
+ee43662 ::ee43662(){ note_ctor("ee43662", this);} // tgen
+
+static void Test_ee43662()
+{
+ extern Class_Descriptor cd_ee43662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43662, buf);
+ ee43662 *dp, &lv = *(dp=new (buf) ee43662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee43662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee43662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(16,12), "ee43662");
+ check_base_class_offset(lv, (dd3662*), 0, "ee43662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43662.e");
+ test_class_info(&lv, &cd_ee43662);
+ dp->~ee43662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43662(Test_ee43662, "ee43662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43662C1Ev();
+extern void _ZN7ee43662D1Ev();
+Name_Map name_map_ee43662[] = {
+ NSPAIR(_ZN7ee43662C1Ev),
+ NSPAIR(_ZN7ee43662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee43662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43662[];
+extern void _ZN6dd36623fooEv();
+extern void _ZN7ee436623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436623barEv,_ZTv0_n16_N7ee436623barEv)();
+extern void ABISELECT(_ZThn16_N7ee436623barEv,_ZThn12_N7ee436623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+ (VTBL_ENTRY)&_ZN7ee436623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436623barEv,_ZTv0_n16_N7ee436623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee43662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee43662[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee43662[] = {
+ {&(_ZTV7ee43662[3]), 3,11},
+ {&(_tg__ZTV6dd3662__7ee43662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee43662[4]), 4,6},
+ {&(_ZTV7ee43662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43662[];
+extern VTBL_ENTRY _ZTV7ee43662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43662[];
+static VTBL_ENTRY alt_thunk_names1295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436623barEv,_ZTv0_n16_N7ee436623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436623barEv,_ZThn12_N7ee436623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43662 = { "ee43662", // class name
+ bases_ee43662, 4,
+ &(vtc_ee43662[0]), // expected_vtbl_contents
+ &(vtt_ee43662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43662),4, //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 ee53662 : virtual dd3662 {
+ int e;
+ virtual void bar(); // _ZN7ee536623barEv
+ ~ee53662(); // tgen
+ ee53662(); // tgen
+};
+//SIG(1 ee53662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53662 ::bar(){vfunc_called(this, "_ZN7ee536623barEv");}
+ee53662 ::~ee53662(){ note_dtor("ee53662", this);} // tgen
+ee53662 ::ee53662(){ note_ctor("ee53662", this);} // tgen
+
+static void Test_ee53662()
+{
+ extern Class_Descriptor cd_ee53662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53662, buf);
+ ee53662 *dp, &lv = *(dp=new (buf) ee53662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee53662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee53662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(32,16), "ee53662");
+ check_base_class_offset(lv, (dd3662*), ABISELECT(16,8), "ee53662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53662.e");
+ test_class_info(&lv, &cd_ee53662);
+ dp->~ee53662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53662(Test_ee53662, "ee53662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53662C1Ev();
+extern void _ZN7ee53662D1Ev();
+Name_Map name_map_ee53662[] = {
+ NSPAIR(_ZN7ee53662C1Ev),
+ NSPAIR(_ZN7ee53662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee53662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, ABISELECT(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 _ZTI7ee53662[];
+extern void _ZN7ee536623barEv();
+extern void _ZN6dd36623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536623barEv,_ZTv0_n16_N7ee536623barEv)();
+extern void ABISELECT(_ZThn32_N7ee536623barEv,_ZThn16_N7ee536623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53662[0]),
+ (VTBL_ENTRY)&_ZN7ee536623barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536623barEv,_ZTv0_n16_N7ee536623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee53662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee53662[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee53662[] = {
+ {&(_ZTV7ee53662[4]), 4,16},
+ {&(_ZTV7ee53662[9]), 9,16},
+ {&(_ZTV7ee53662[14]), 14,16},
+ {&(_tg__ZTV6dd3662__7ee53662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee53662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53662[];
+extern VTBL_ENTRY _ZTV7ee53662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53662[];
+static VTBL_ENTRY alt_thunk_names1296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536623barEv,_ZTv0_n16_N7ee536623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536623barEv,_ZThn16_N7ee536623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53662 = { "ee53662", // class name
+ bases_ee53662, 4,
+ &(vtc_ee53662[0]), // expected_vtbl_contents
+ &(vtt_ee53662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53662),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53662),5, //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 ee63662 : dd3662 {
+ int e;
+ virtual void foo(); // _ZN7ee636623fooEv
+ virtual void bar(); // _ZN7ee636623barEv
+ ~ee63662(); // tgen
+ ee63662(); // tgen
+};
+//SIG(1 ee63662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63662 ::foo(){vfunc_called(this, "_ZN7ee636623fooEv");}
+void ee63662 ::bar(){vfunc_called(this, "_ZN7ee636623barEv");}
+ee63662 ::~ee63662(){ note_dtor("ee63662", this);} // tgen
+ee63662 ::ee63662(){ note_ctor("ee63662", this);} // tgen
+
+static void Test_ee63662()
+{
+ extern Class_Descriptor cd_ee63662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63662, buf);
+ ee63662 *dp, &lv = *(dp=new (buf) ee63662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee63662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee63662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(16,12), "ee63662");
+ check_base_class_offset(lv, (dd3662*), 0, "ee63662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63662.e");
+ test_class_info(&lv, &cd_ee63662);
+ dp->~ee63662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63662(Test_ee63662, "ee63662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63662C1Ev();
+extern void _ZN7ee63662D1Ev();
+Name_Map name_map_ee63662[] = {
+ NSPAIR(_ZN7ee63662C1Ev),
+ NSPAIR(_ZN7ee63662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee63662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63662[];
+extern void _ZN7ee636623fooEv();
+extern void _ZN7ee636623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636623fooEv,_ZTv0_n12_N7ee636623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636623fooEv,_ZThn12_N7ee636623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636623barEv,_ZTv0_n16_N7ee636623barEv)();
+extern void ABISELECT(_ZThn16_N7ee636623barEv,_ZThn12_N7ee636623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63662[0]),
+ (VTBL_ENTRY)&_ZN7ee636623fooEv,
+ (VTBL_ENTRY)&_ZN7ee636623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636623fooEv,_ZTv0_n12_N7ee636623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636623barEv,_ZTv0_n16_N7ee636623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee63662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee63662[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee63662[] = {
+ {&(_ZTV7ee63662[3]), 3,11},
+ {&(_tg__ZTV6dd3662__7ee63662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee63662[4]), 4,6},
+ {&(_ZTV7ee63662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63662[];
+extern VTBL_ENTRY _ZTV7ee63662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63662[];
+static VTBL_ENTRY alt_thunk_names1297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn12_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636623barEv,_ZTv0_n16_N7ee636623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636623barEv,_ZThn12_N7ee636623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636623fooEv,_ZTv0_n12_N7ee636623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636623fooEv,_ZThn12_N7ee636623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63662 = { "ee63662", // class name
+ bases_ee63662, 4,
+ &(vtc_ee63662[0]), // expected_vtbl_contents
+ &(vtt_ee63662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63662),4, //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 ee73662 : virtual dd3662 {
+ int e;
+ virtual void foo(); // _ZN7ee736623fooEv
+ virtual void bar(); // _ZN7ee736623barEv
+ ~ee73662(); // tgen
+ ee73662(); // tgen
+};
+//SIG(1 ee73662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73662 ::foo(){vfunc_called(this, "_ZN7ee736623fooEv");}
+void ee73662 ::bar(){vfunc_called(this, "_ZN7ee736623barEv");}
+ee73662 ::~ee73662(){ note_dtor("ee73662", this);} // tgen
+ee73662 ::ee73662(){ note_ctor("ee73662", this);} // tgen
+
+static void Test_ee73662()
+{
+ extern Class_Descriptor cd_ee73662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73662, buf);
+ ee73662 *dp, &lv = *(dp=new (buf) ee73662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee73662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee73662");
+ check_base_class_offset(lv, (cc662*)(dd3662*), ABISELECT(32,16), "ee73662");
+ check_base_class_offset(lv, (dd3662*), ABISELECT(16,8), "ee73662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73662.e");
+ test_class_info(&lv, &cd_ee73662);
+ dp->~ee73662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73662(Test_ee73662, "ee73662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73662C1Ev();
+extern void _ZN7ee73662D1Ev();
+Name_Map name_map_ee73662[] = {
+ NSPAIR(_ZN7ee73662C1Ev),
+ NSPAIR(_ZN7ee73662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd3662;
+extern VTBL_ENTRY _ZTI6dd3662[];
+extern VTBL_ENTRY _ZTV6dd3662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3662[];
+static Base_Class bases_ee73662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd3662, 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 _ZTI7ee73662[];
+extern void _ZN7ee736623fooEv();
+extern void _ZN7ee736623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736623fooEv,_ZTv0_n16_N7ee736623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736623fooEv,_ZThn8_N7ee736623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736623fooEv,_ZTv0_n12_N7ee736623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736623fooEv,_ZThn16_N7ee736623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736623barEv,_ZTv0_n16_N7ee736623barEv)();
+extern void ABISELECT(_ZThn32_N7ee736623barEv,_ZThn16_N7ee736623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73662[0]),
+ (VTBL_ENTRY)&_ZN7ee736623fooEv,
+ (VTBL_ENTRY)&_ZN7ee736623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736623fooEv,_ZTv0_n16_N7ee736623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736623fooEv,_ZTv0_n12_N7ee736623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736623barEv,_ZTv0_n16_N7ee736623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73662[];
+extern void _ZN6dd36623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3662__7ee73662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&_ZN6dd36623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv)() __attribute__((weak));
+extern void _ZN5cc6623barEv();
+static VTBL_ENTRY _tg__ZTV5cc662__6dd3662__7ee73662[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv),
+ (VTBL_ENTRY)&_ZN5cc6623barEv,
+};
+static VTT_ENTRY vtt_ee73662[] = {
+ {&(_ZTV7ee73662[4]), 4,17},
+ {&(_ZTV7ee73662[10]), 10,17},
+ {&(_ZTV7ee73662[15]), 15,17},
+ {&(_tg__ZTV6dd3662__7ee73662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd3662__7ee73662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73662[];
+extern VTBL_ENTRY _ZTV7ee73662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73662[];
+static VTBL_ENTRY alt_thunk_names1298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36623fooEv,_ZTv0_n12_N6dd36623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36623fooEv,_ZThn8_N6dd36623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736623barEv,_ZTv0_n16_N7ee736623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736623barEv,_ZThn16_N7ee736623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736623fooEv,_ZTv0_n12_N7ee736623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736623fooEv,_ZThn16_N7ee736623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736623fooEv,_ZTv0_n16_N7ee736623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736623fooEv,_ZThn8_N7ee736623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73662 = { "ee73662", // class name
+ bases_ee73662, 4,
+ &(vtc_ee73662[0]), // expected_vtbl_contents
+ &(vtt_ee73662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73662),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73662),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4662 : cc662 {
+ int d;
+ virtual void bar(); // _ZN6dd46623barEv
+ ~dd4662(); // tgen
+ dd4662(); // tgen
+};
+//SIG(-1 dd4662) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4662 ::bar(){vfunc_called(this, "_ZN6dd46623barEv");}
+dd4662 ::~dd4662(){ note_dtor("dd4662", this);} // tgen
+dd4662 ::dd4662(){ note_ctor("dd4662", this);} // tgen
+
+static void Test_dd4662()
+{
+ extern Class_Descriptor cd_dd4662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4662, buf);
+ dd4662 *dp, &lv = *(dp=new (buf) dd4662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), 0, "dd4662");
+ check_base_class_offset(lv, (bb62*)(cc662*), 0, "dd4662");
+ check_base_class_offset(lv, (cc662*), 0, "dd4662");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4662.d");
+ test_class_info(&lv, &cd_dd4662);
+ dp->~dd4662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4662(Test_dd4662, "dd4662", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4662C1Ev();
+extern void _ZN6dd4662D1Ev();
+Name_Map name_map_dd4662[] = {
+ NSPAIR(_ZN6dd4662C1Ev),
+ NSPAIR(_ZN6dd4662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd4662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN6dd46623barEv();
+static VTBL_ENTRY vtc_dd4662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN6dd46623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+Class_Descriptor cd_dd4662 = { "dd4662", // class name
+ bases_dd4662, 3,
+ &(vtc_dd4662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4662),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 ee04662 : dd4662 {
+ int e;
+ ~ee04662(); // tgen
+ ee04662(); // tgen
+};
+//SIG(1 ee04662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04662 ::~ee04662(){ note_dtor("ee04662", this);} // tgen
+ee04662 ::ee04662(){ note_ctor("ee04662", this);} // tgen
+
+static void Test_ee04662()
+{
+ extern Class_Descriptor cd_ee04662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04662, buf);
+ ee04662 *dp, &lv = *(dp=new (buf) ee04662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), 0, "ee04662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), 0, "ee04662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), 0, "ee04662");
+ check_base_class_offset(lv, (dd4662*), 0, "ee04662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04662.e");
+ test_class_info(&lv, &cd_ee04662);
+ dp->~ee04662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04662(Test_ee04662, "ee04662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04662C1Ev();
+extern void _ZN7ee04662D1Ev();
+Name_Map name_map_ee04662[] = {
+ NSPAIR(_ZN7ee04662C1Ev),
+ NSPAIR(_ZN7ee04662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee04662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, 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 _ZTI7ee04662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN6dd46623barEv();
+static VTBL_ENTRY vtc_ee04662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN6dd46623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04662[];
+extern VTBL_ENTRY _ZTV7ee04662[];
+Class_Descriptor cd_ee04662 = { "ee04662", // class name
+ bases_ee04662, 4,
+ &(vtc_ee04662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04662),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 ee14662 : virtual dd4662 {
+ int e;
+ ~ee14662(); // tgen
+ ee14662(); // tgen
+};
+//SIG(1 ee14662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14662 ::~ee14662(){ note_dtor("ee14662", this);} // tgen
+ee14662 ::ee14662(){ note_ctor("ee14662", this);} // tgen
+
+static void Test_ee14662()
+{
+ extern Class_Descriptor cd_ee14662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14662, buf);
+ ee14662 *dp, &lv = *(dp=new (buf) ee14662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee14662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee14662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), ABISELECT(16,8), "ee14662");
+ check_base_class_offset(lv, (dd4662*), ABISELECT(16,8), "ee14662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14662.e");
+ test_class_info(&lv, &cd_ee14662);
+ dp->~ee14662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14662(Test_ee14662, "ee14662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14662C1Ev();
+extern void _ZN7ee14662D1Ev();
+Name_Map name_map_ee14662[] = {
+ NSPAIR(_ZN7ee14662C1Ev),
+ NSPAIR(_ZN7ee14662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee14662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, 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 _ZTI7ee14662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN6dd46623barEv();
+static VTBL_ENTRY vtc_ee14662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN6dd46623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14662[];
+static VTT_ENTRY vtt_ee14662[] = {
+ {&(_ZTV7ee14662[3]), 3,9},
+ {&(_ZTV7ee14662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14662[];
+extern VTBL_ENTRY _ZTV7ee14662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14662[];
+Class_Descriptor cd_ee14662 = { "ee14662", // class name
+ bases_ee14662, 4,
+ &(vtc_ee14662[0]), // expected_vtbl_contents
+ &(vtt_ee14662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14662),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 ee24662 : dd4662 {
+ int e;
+ virtual void foo(); // _ZN7ee246623fooEv
+ ~ee24662(); // tgen
+ ee24662(); // tgen
+};
+//SIG(1 ee24662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24662 ::foo(){vfunc_called(this, "_ZN7ee246623fooEv");}
+ee24662 ::~ee24662(){ note_dtor("ee24662", this);} // tgen
+ee24662 ::ee24662(){ note_ctor("ee24662", this);} // tgen
+
+static void Test_ee24662()
+{
+ extern Class_Descriptor cd_ee24662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24662, buf);
+ ee24662 *dp, &lv = *(dp=new (buf) ee24662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), 0, "ee24662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), 0, "ee24662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), 0, "ee24662");
+ check_base_class_offset(lv, (dd4662*), 0, "ee24662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24662.e");
+ test_class_info(&lv, &cd_ee24662);
+ dp->~ee24662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24662(Test_ee24662, "ee24662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24662C1Ev();
+extern void _ZN7ee24662D1Ev();
+Name_Map name_map_ee24662[] = {
+ NSPAIR(_ZN7ee24662C1Ev),
+ NSPAIR(_ZN7ee24662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee24662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24662[];
+extern void _ZN7ee246623fooEv();
+extern void _ZN6dd46623barEv();
+static VTBL_ENTRY vtc_ee24662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24662[0]),
+ (VTBL_ENTRY)&_ZN7ee246623fooEv,
+ (VTBL_ENTRY)&_ZN6dd46623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24662[];
+extern VTBL_ENTRY _ZTV7ee24662[];
+Class_Descriptor cd_ee24662 = { "ee24662", // class name
+ bases_ee24662, 4,
+ &(vtc_ee24662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24662),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 ee34662 : virtual dd4662 {
+ int e;
+ virtual void foo(); // _ZN7ee346623fooEv
+ ~ee34662(); // tgen
+ ee34662(); // tgen
+};
+//SIG(1 ee34662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34662 ::foo(){vfunc_called(this, "_ZN7ee346623fooEv");}
+ee34662 ::~ee34662(){ note_dtor("ee34662", this);} // tgen
+ee34662 ::ee34662(){ note_ctor("ee34662", this);} // tgen
+
+static void Test_ee34662()
+{
+ extern Class_Descriptor cd_ee34662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34662, buf);
+ ee34662 *dp, &lv = *(dp=new (buf) ee34662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee34662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee34662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), ABISELECT(16,8), "ee34662");
+ check_base_class_offset(lv, (dd4662*), ABISELECT(16,8), "ee34662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34662.e");
+ test_class_info(&lv, &cd_ee34662);
+ dp->~ee34662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34662(Test_ee34662, "ee34662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34662C1Ev();
+extern void _ZN7ee34662D1Ev();
+Name_Map name_map_ee34662[] = {
+ NSPAIR(_ZN7ee34662C1Ev),
+ NSPAIR(_ZN7ee34662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee34662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, ABISELECT(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 _ZTI7ee34662[];
+extern void _ZN7ee346623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346623fooEv,_ZTv0_n12_N7ee346623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346623fooEv,_ZThn8_N7ee346623fooEv)() __attribute__((weak));
+extern void _ZN6dd46623barEv();
+static VTBL_ENTRY vtc_ee34662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34662[0]),
+ (VTBL_ENTRY)&_ZN7ee346623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346623fooEv,_ZTv0_n12_N7ee346623fooEv),
+ (VTBL_ENTRY)&_ZN6dd46623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34662[];
+static VTT_ENTRY vtt_ee34662[] = {
+ {&(_ZTV7ee34662[3]), 3,10},
+ {&(_ZTV7ee34662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34662[];
+extern VTBL_ENTRY _ZTV7ee34662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34662[];
+static VTBL_ENTRY alt_thunk_names1299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346623fooEv,_ZTv0_n12_N7ee346623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346623fooEv,_ZThn8_N7ee346623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34662 = { "ee34662", // class name
+ bases_ee34662, 4,
+ &(vtc_ee34662[0]), // expected_vtbl_contents
+ &(vtt_ee34662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34662),2, //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 ee44662 : dd4662 {
+ int e;
+ virtual void bar(); // _ZN7ee446623barEv
+ ~ee44662(); // tgen
+ ee44662(); // tgen
+};
+//SIG(1 ee44662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44662 ::bar(){vfunc_called(this, "_ZN7ee446623barEv");}
+ee44662 ::~ee44662(){ note_dtor("ee44662", this);} // tgen
+ee44662 ::ee44662(){ note_ctor("ee44662", this);} // tgen
+
+static void Test_ee44662()
+{
+ extern Class_Descriptor cd_ee44662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44662, buf);
+ ee44662 *dp, &lv = *(dp=new (buf) ee44662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), 0, "ee44662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), 0, "ee44662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), 0, "ee44662");
+ check_base_class_offset(lv, (dd4662*), 0, "ee44662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44662.e");
+ test_class_info(&lv, &cd_ee44662);
+ dp->~ee44662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44662(Test_ee44662, "ee44662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44662C1Ev();
+extern void _ZN7ee44662D1Ev();
+Name_Map name_map_ee44662[] = {
+ NSPAIR(_ZN7ee44662C1Ev),
+ NSPAIR(_ZN7ee44662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee44662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44662[];
+extern void _ZN5cc6623fooEv();
+extern void _ZN7ee446623barEv();
+static VTBL_ENTRY vtc_ee44662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&_ZN7ee446623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44662[];
+extern VTBL_ENTRY _ZTV7ee44662[];
+Class_Descriptor cd_ee44662 = { "ee44662", // class name
+ bases_ee44662, 4,
+ &(vtc_ee44662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44662),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 ee54662 : virtual dd4662 {
+ int e;
+ virtual void bar(); // _ZN7ee546623barEv
+ ~ee54662(); // tgen
+ ee54662(); // tgen
+};
+//SIG(1 ee54662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54662 ::bar(){vfunc_called(this, "_ZN7ee546623barEv");}
+ee54662 ::~ee54662(){ note_dtor("ee54662", this);} // tgen
+ee54662 ::ee54662(){ note_ctor("ee54662", this);} // tgen
+
+static void Test_ee54662()
+{
+ extern Class_Descriptor cd_ee54662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54662, buf);
+ ee54662 *dp, &lv = *(dp=new (buf) ee54662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee54662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee54662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), ABISELECT(16,8), "ee54662");
+ check_base_class_offset(lv, (dd4662*), ABISELECT(16,8), "ee54662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54662.e");
+ test_class_info(&lv, &cd_ee54662);
+ dp->~ee54662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54662(Test_ee54662, "ee54662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54662C1Ev();
+extern void _ZN7ee54662D1Ev();
+Name_Map name_map_ee54662[] = {
+ NSPAIR(_ZN7ee54662C1Ev),
+ NSPAIR(_ZN7ee54662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee54662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, ABISELECT(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 _ZTI7ee54662[];
+extern void _ZN7ee546623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546623barEv,_ZTv0_n16_N7ee546623barEv)();
+extern void ABISELECT(_ZThn16_N7ee546623barEv,_ZThn8_N7ee546623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54662[0]),
+ (VTBL_ENTRY)&_ZN7ee546623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546623barEv,_ZTv0_n16_N7ee546623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54662[];
+static VTT_ENTRY vtt_ee54662[] = {
+ {&(_ZTV7ee54662[3]), 3,10},
+ {&(_ZTV7ee54662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54662[];
+extern VTBL_ENTRY _ZTV7ee54662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54662[];
+static VTBL_ENTRY alt_thunk_names1300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546623barEv,_ZTv0_n16_N7ee546623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546623barEv,_ZThn8_N7ee546623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54662 = { "ee54662", // class name
+ bases_ee54662, 4,
+ &(vtc_ee54662[0]), // expected_vtbl_contents
+ &(vtt_ee54662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54662),2, //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 ee64662 : dd4662 {
+ int e;
+ virtual void foo(); // _ZN7ee646623fooEv
+ virtual void bar(); // _ZN7ee646623barEv
+ ~ee64662(); // tgen
+ ee64662(); // tgen
+};
+//SIG(1 ee64662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64662 ::foo(){vfunc_called(this, "_ZN7ee646623fooEv");}
+void ee64662 ::bar(){vfunc_called(this, "_ZN7ee646623barEv");}
+ee64662 ::~ee64662(){ note_dtor("ee64662", this);} // tgen
+ee64662 ::ee64662(){ note_ctor("ee64662", this);} // tgen
+
+static void Test_ee64662()
+{
+ extern Class_Descriptor cd_ee64662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64662, buf);
+ ee64662 *dp, &lv = *(dp=new (buf) ee64662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), 0, "ee64662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), 0, "ee64662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), 0, "ee64662");
+ check_base_class_offset(lv, (dd4662*), 0, "ee64662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64662.e");
+ test_class_info(&lv, &cd_ee64662);
+ dp->~ee64662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64662(Test_ee64662, "ee64662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64662C1Ev();
+extern void _ZN7ee64662D1Ev();
+Name_Map name_map_ee64662[] = {
+ NSPAIR(_ZN7ee64662C1Ev),
+ NSPAIR(_ZN7ee64662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee64662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64662[];
+extern void _ZN7ee646623fooEv();
+extern void _ZN7ee646623barEv();
+static VTBL_ENTRY vtc_ee64662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64662[0]),
+ (VTBL_ENTRY)&_ZN7ee646623fooEv,
+ (VTBL_ENTRY)&_ZN7ee646623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64662[];
+extern VTBL_ENTRY _ZTV7ee64662[];
+Class_Descriptor cd_ee64662 = { "ee64662", // class name
+ bases_ee64662, 4,
+ &(vtc_ee64662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64662),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 ee74662 : virtual dd4662 {
+ int e;
+ virtual void foo(); // _ZN7ee746623fooEv
+ virtual void bar(); // _ZN7ee746623barEv
+ ~ee74662(); // tgen
+ ee74662(); // tgen
+};
+//SIG(1 ee74662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74662 ::foo(){vfunc_called(this, "_ZN7ee746623fooEv");}
+void ee74662 ::bar(){vfunc_called(this, "_ZN7ee746623barEv");}
+ee74662 ::~ee74662(){ note_dtor("ee74662", this);} // tgen
+ee74662 ::ee74662(){ note_ctor("ee74662", this);} // tgen
+
+static void Test_ee74662()
+{
+ extern Class_Descriptor cd_ee74662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74662, buf);
+ ee74662 *dp, &lv = *(dp=new (buf) ee74662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee74662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd4662*), ABISELECT(16,8), "ee74662");
+ check_base_class_offset(lv, (cc662*)(dd4662*), ABISELECT(16,8), "ee74662");
+ check_base_class_offset(lv, (dd4662*), ABISELECT(16,8), "ee74662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74662.e");
+ test_class_info(&lv, &cd_ee74662);
+ dp->~ee74662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74662(Test_ee74662, "ee74662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74662C1Ev();
+extern void _ZN7ee74662D1Ev();
+Name_Map name_map_ee74662[] = {
+ NSPAIR(_ZN7ee74662C1Ev),
+ NSPAIR(_ZN7ee74662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd4662;
+extern VTBL_ENTRY _ZTI6dd4662[];
+extern VTBL_ENTRY _ZTV6dd4662[];
+static Base_Class bases_ee74662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4662, ABISELECT(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 _ZTI7ee74662[];
+extern void _ZN7ee746623fooEv();
+extern void _ZN7ee746623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746623fooEv,_ZTv0_n12_N7ee746623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746623fooEv,_ZThn8_N7ee746623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746623barEv,_ZTv0_n16_N7ee746623barEv)();
+extern void ABISELECT(_ZThn16_N7ee746623barEv,_ZThn8_N7ee746623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74662[0]),
+ (VTBL_ENTRY)&_ZN7ee746623fooEv,
+ (VTBL_ENTRY)&_ZN7ee746623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746623fooEv,_ZTv0_n12_N7ee746623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746623barEv,_ZTv0_n16_N7ee746623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74662[];
+static VTT_ENTRY vtt_ee74662[] = {
+ {&(_ZTV7ee74662[3]), 3,11},
+ {&(_ZTV7ee74662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74662[];
+extern VTBL_ENTRY _ZTV7ee74662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74662[];
+static VTBL_ENTRY alt_thunk_names1301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746623barEv,_ZTv0_n16_N7ee746623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746623barEv,_ZThn8_N7ee746623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746623fooEv,_ZTv0_n12_N7ee746623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746623fooEv,_ZThn8_N7ee746623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74662 = { "ee74662", // class name
+ bases_ee74662, 4,
+ &(vtc_ee74662[0]), // expected_vtbl_contents
+ &(vtt_ee74662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74662),2, //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 dd5662 : virtual cc662 {
+ int d;
+ virtual void bar(); // _ZN6dd56623barEv
+ ~dd5662(); // tgen
+ dd5662(); // tgen
+};
+//SIG(-1 dd5662) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5662 ::bar(){vfunc_called(this, "_ZN6dd56623barEv");}
+dd5662 ::~dd5662(){ note_dtor("dd5662", this);} // tgen
+dd5662 ::dd5662(){ note_ctor("dd5662", this);} // tgen
+
+static void Test_dd5662()
+{
+ extern Class_Descriptor cd_dd5662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5662, buf);
+ dd5662 *dp, &lv = *(dp=new (buf) dd5662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,8), "dd5662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,8), "dd5662");
+ check_base_class_offset(lv, (cc662*), ABISELECT(16,8), "dd5662");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5662.d");
+ test_class_info(&lv, &cd_dd5662);
+ dp->~dd5662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5662(Test_dd5662, "dd5662", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5662C1Ev();
+extern void _ZN6dd5662D1Ev();
+Name_Map name_map_dd5662[] = {
+ NSPAIR(_ZN6dd5662C1Ev),
+ NSPAIR(_ZN6dd5662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd5662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(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 _ZTI6dd5662[];
+extern void _ZN6dd56623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5662[];
+static VTT_ENTRY vtt_dd5662[] = {
+ {&(_ZTV6dd5662[3]), 3,10},
+ {&(_ZTV6dd5662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static VTBL_ENTRY alt_thunk_names1302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5662 = { "dd5662", // class name
+ bases_dd5662, 3,
+ &(vtc_dd5662[0]), // expected_vtbl_contents
+ &(vtt_dd5662[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5662),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05662 : dd5662 {
+ int e;
+ ~ee05662(); // tgen
+ ee05662(); // tgen
+};
+//SIG(1 ee05662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05662 ::~ee05662(){ note_dtor("ee05662", this);} // tgen
+ee05662 ::ee05662(){ note_ctor("ee05662", this);} // tgen
+
+static void Test_ee05662()
+{
+ extern Class_Descriptor cd_ee05662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05662, buf);
+ ee05662 *dp, &lv = *(dp=new (buf) ee05662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee05662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee05662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(16,12), "ee05662");
+ check_base_class_offset(lv, (dd5662*), 0, "ee05662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05662.e");
+ test_class_info(&lv, &cd_ee05662);
+ dp->~ee05662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05662(Test_ee05662, "ee05662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05662C1Ev();
+extern void _ZN7ee05662D1Ev();
+Name_Map name_map_ee05662[] = {
+ NSPAIR(_ZN7ee05662C1Ev),
+ NSPAIR(_ZN7ee05662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee05662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05662[];
+extern void _ZN6dd56623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee05662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee05662[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee05662[] = {
+ {&(_ZTV7ee05662[3]), 3,10},
+ {&(_tg__ZTV6dd5662__7ee05662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee05662[4]), 4,6},
+ {&(_ZTV7ee05662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05662[];
+extern VTBL_ENTRY _ZTV7ee05662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05662[];
+static VTBL_ENTRY alt_thunk_names1303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05662 = { "ee05662", // class name
+ bases_ee05662, 4,
+ &(vtc_ee05662[0]), // expected_vtbl_contents
+ &(vtt_ee05662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05662),4, //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 ee15662 : virtual dd5662 {
+ int e;
+ ~ee15662(); // tgen
+ ee15662(); // tgen
+};
+//SIG(1 ee15662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15662 ::~ee15662(){ note_dtor("ee15662", this);} // tgen
+ee15662 ::ee15662(){ note_ctor("ee15662", this);} // tgen
+
+static void Test_ee15662()
+{
+ extern Class_Descriptor cd_ee15662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15662, buf);
+ ee15662 *dp, &lv = *(dp=new (buf) ee15662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee15662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee15662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(32,16), "ee15662");
+ check_base_class_offset(lv, (dd5662*), ABISELECT(16,8), "ee15662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15662.e");
+ test_class_info(&lv, &cd_ee15662);
+ dp->~ee15662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15662(Test_ee15662, "ee15662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15662C1Ev();
+extern void _ZN7ee15662D1Ev();
+Name_Map name_map_ee15662[] = {
+ NSPAIR(_ZN7ee15662C1Ev),
+ NSPAIR(_ZN7ee15662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee15662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, ABISELECT(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 _ZTI7ee15662[];
+extern void _ZN6dd56623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15662[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee15662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee15662[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee15662[] = {
+ {&(_ZTV7ee15662[4]), 4,15},
+ {&(_ZTV7ee15662[8]), 8,15},
+ {&(_ZTV7ee15662[13]), 13,15},
+ {&(_tg__ZTV6dd5662__7ee15662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee15662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15662[];
+extern VTBL_ENTRY _ZTV7ee15662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15662[];
+static VTBL_ENTRY alt_thunk_names1304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15662 = { "ee15662", // class name
+ bases_ee15662, 4,
+ &(vtc_ee15662[0]), // expected_vtbl_contents
+ &(vtt_ee15662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15662),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15662),5, //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 ee25662 : dd5662 {
+ int e;
+ virtual void foo(); // _ZN7ee256623fooEv
+ ~ee25662(); // tgen
+ ee25662(); // tgen
+};
+//SIG(1 ee25662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25662 ::foo(){vfunc_called(this, "_ZN7ee256623fooEv");}
+ee25662 ::~ee25662(){ note_dtor("ee25662", this);} // tgen
+ee25662 ::ee25662(){ note_ctor("ee25662", this);} // tgen
+
+static void Test_ee25662()
+{
+ extern Class_Descriptor cd_ee25662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25662, buf);
+ ee25662 *dp, &lv = *(dp=new (buf) ee25662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee25662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee25662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(16,12), "ee25662");
+ check_base_class_offset(lv, (dd5662*), 0, "ee25662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25662.e");
+ test_class_info(&lv, &cd_ee25662);
+ dp->~ee25662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25662(Test_ee25662, "ee25662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25662C1Ev();
+extern void _ZN7ee25662D1Ev();
+Name_Map name_map_ee25662[] = {
+ NSPAIR(_ZN7ee25662C1Ev),
+ NSPAIR(_ZN7ee25662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee25662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25662[];
+extern void _ZN6dd56623barEv();
+extern void _ZN7ee256623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256623fooEv,_ZTv0_n12_N7ee256623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256623fooEv,_ZThn12_N7ee256623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+ (VTBL_ENTRY)&_ZN7ee256623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256623fooEv,_ZTv0_n12_N7ee256623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee25662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee25662[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee25662[] = {
+ {&(_ZTV7ee25662[3]), 3,11},
+ {&(_tg__ZTV6dd5662__7ee25662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee25662[4]), 4,6},
+ {&(_ZTV7ee25662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25662[];
+extern VTBL_ENTRY _ZTV7ee25662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25662[];
+static VTBL_ENTRY alt_thunk_names1305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256623fooEv,_ZTv0_n12_N7ee256623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256623fooEv,_ZThn12_N7ee256623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25662 = { "ee25662", // class name
+ bases_ee25662, 4,
+ &(vtc_ee25662[0]), // expected_vtbl_contents
+ &(vtt_ee25662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25662),4, //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 ee35662 : virtual dd5662 {
+ int e;
+ virtual void foo(); // _ZN7ee356623fooEv
+ ~ee35662(); // tgen
+ ee35662(); // tgen
+};
+//SIG(1 ee35662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35662 ::foo(){vfunc_called(this, "_ZN7ee356623fooEv");}
+ee35662 ::~ee35662(){ note_dtor("ee35662", this);} // tgen
+ee35662 ::ee35662(){ note_ctor("ee35662", this);} // tgen
+
+static void Test_ee35662()
+{
+ extern Class_Descriptor cd_ee35662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35662, buf);
+ ee35662 *dp, &lv = *(dp=new (buf) ee35662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee35662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee35662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(32,16), "ee35662");
+ check_base_class_offset(lv, (dd5662*), ABISELECT(16,8), "ee35662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35662.e");
+ test_class_info(&lv, &cd_ee35662);
+ dp->~ee35662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35662(Test_ee35662, "ee35662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35662C1Ev();
+extern void _ZN7ee35662D1Ev();
+Name_Map name_map_ee35662[] = {
+ NSPAIR(_ZN7ee35662C1Ev),
+ NSPAIR(_ZN7ee35662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee35662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, ABISELECT(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 _ZTI7ee35662[];
+extern void _ZN7ee356623fooEv();
+extern void _ZN6dd56623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356623fooEv,_ZTv0_n12_N7ee356623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356623fooEv,_ZThn16_N7ee356623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35662[0]),
+ (VTBL_ENTRY)&_ZN7ee356623fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356623fooEv,_ZTv0_n12_N7ee356623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee35662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee35662[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee35662[] = {
+ {&(_ZTV7ee35662[4]), 4,16},
+ {&(_ZTV7ee35662[9]), 9,16},
+ {&(_ZTV7ee35662[14]), 14,16},
+ {&(_tg__ZTV6dd5662__7ee35662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee35662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35662[];
+extern VTBL_ENTRY _ZTV7ee35662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35662[];
+static VTBL_ENTRY alt_thunk_names1306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356623fooEv,_ZTv0_n12_N7ee356623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356623fooEv,_ZThn16_N7ee356623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35662 = { "ee35662", // class name
+ bases_ee35662, 4,
+ &(vtc_ee35662[0]), // expected_vtbl_contents
+ &(vtt_ee35662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35662),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35662),5, //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 ee45662 : dd5662 {
+ int e;
+ virtual void bar(); // _ZN7ee456623barEv
+ ~ee45662(); // tgen
+ ee45662(); // tgen
+};
+//SIG(1 ee45662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45662 ::bar(){vfunc_called(this, "_ZN7ee456623barEv");}
+ee45662 ::~ee45662(){ note_dtor("ee45662", this);} // tgen
+ee45662 ::ee45662(){ note_ctor("ee45662", this);} // tgen
+
+static void Test_ee45662()
+{
+ extern Class_Descriptor cd_ee45662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45662, buf);
+ ee45662 *dp, &lv = *(dp=new (buf) ee45662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee45662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee45662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(16,12), "ee45662");
+ check_base_class_offset(lv, (dd5662*), 0, "ee45662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45662.e");
+ test_class_info(&lv, &cd_ee45662);
+ dp->~ee45662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45662(Test_ee45662, "ee45662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45662C1Ev();
+extern void _ZN7ee45662D1Ev();
+Name_Map name_map_ee45662[] = {
+ NSPAIR(_ZN7ee45662C1Ev),
+ NSPAIR(_ZN7ee45662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee45662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45662[];
+extern void _ZN7ee456623barEv();
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456623barEv,_ZTv0_n16_N7ee456623barEv)();
+extern void ABISELECT(_ZThn16_N7ee456623barEv,_ZThn12_N7ee456623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45662[0]),
+ (VTBL_ENTRY)&_ZN7ee456623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456623barEv,_ZTv0_n16_N7ee456623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee45662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee45662[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee45662[] = {
+ {&(_ZTV7ee45662[3]), 3,10},
+ {&(_tg__ZTV6dd5662__7ee45662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee45662[4]), 4,6},
+ {&(_ZTV7ee45662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45662[];
+extern VTBL_ENTRY _ZTV7ee45662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45662[];
+static VTBL_ENTRY alt_thunk_names1307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456623barEv,_ZTv0_n16_N7ee456623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456623barEv,_ZThn12_N7ee456623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45662 = { "ee45662", // class name
+ bases_ee45662, 4,
+ &(vtc_ee45662[0]), // expected_vtbl_contents
+ &(vtt_ee45662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45662),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55662 : virtual dd5662 {
+ int e;
+ virtual void bar(); // _ZN7ee556623barEv
+ ~ee55662(); // tgen
+ ee55662(); // tgen
+};
+//SIG(1 ee55662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55662 ::bar(){vfunc_called(this, "_ZN7ee556623barEv");}
+ee55662 ::~ee55662(){ note_dtor("ee55662", this);} // tgen
+ee55662 ::ee55662(){ note_ctor("ee55662", this);} // tgen
+
+static void Test_ee55662()
+{
+ extern Class_Descriptor cd_ee55662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55662, buf);
+ ee55662 *dp, &lv = *(dp=new (buf) ee55662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee55662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee55662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(32,16), "ee55662");
+ check_base_class_offset(lv, (dd5662*), ABISELECT(16,8), "ee55662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55662.e");
+ test_class_info(&lv, &cd_ee55662);
+ dp->~ee55662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55662(Test_ee55662, "ee55662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55662C1Ev();
+extern void _ZN7ee55662D1Ev();
+Name_Map name_map_ee55662[] = {
+ NSPAIR(_ZN7ee55662C1Ev),
+ NSPAIR(_ZN7ee55662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee55662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, ABISELECT(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 _ZTI7ee55662[];
+extern void _ZN7ee556623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556623barEv,_ZTv0_n16_N7ee556623barEv)();
+extern void ABISELECT(_ZThn16_N7ee556623barEv,_ZThn8_N7ee556623barEv)() __attribute__((weak));
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556623barEv,_ZTv0_n16_N7ee556623barEv)();
+extern void ABISELECT(_ZThn32_N7ee556623barEv,_ZThn16_N7ee556623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55662[0]),
+ (VTBL_ENTRY)&_ZN7ee556623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556623barEv,_ZTv0_n16_N7ee556623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556623barEv,_ZTv0_n16_N7ee556623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee55662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee55662[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee55662[] = {
+ {&(_ZTV7ee55662[4]), 4,16},
+ {&(_ZTV7ee55662[9]), 9,16},
+ {&(_ZTV7ee55662[14]), 14,16},
+ {&(_tg__ZTV6dd5662__7ee55662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee55662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55662[];
+extern VTBL_ENTRY _ZTV7ee55662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55662[];
+static VTBL_ENTRY alt_thunk_names1308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556623barEv,_ZTv0_n16_N7ee556623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556623barEv,_ZThn16_N7ee556623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556623barEv,_ZThn8_N7ee556623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55662 = { "ee55662", // class name
+ bases_ee55662, 4,
+ &(vtc_ee55662[0]), // expected_vtbl_contents
+ &(vtt_ee55662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55662),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55662),5, //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 ee65662 : dd5662 {
+ int e;
+ virtual void foo(); // _ZN7ee656623fooEv
+ virtual void bar(); // _ZN7ee656623barEv
+ ~ee65662(); // tgen
+ ee65662(); // tgen
+};
+//SIG(1 ee65662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65662 ::foo(){vfunc_called(this, "_ZN7ee656623fooEv");}
+void ee65662 ::bar(){vfunc_called(this, "_ZN7ee656623barEv");}
+ee65662 ::~ee65662(){ note_dtor("ee65662", this);} // tgen
+ee65662 ::ee65662(){ note_ctor("ee65662", this);} // tgen
+
+static void Test_ee65662()
+{
+ extern Class_Descriptor cd_ee65662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65662, buf);
+ ee65662 *dp, &lv = *(dp=new (buf) ee65662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee65662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee65662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(16,12), "ee65662");
+ check_base_class_offset(lv, (dd5662*), 0, "ee65662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65662.e");
+ test_class_info(&lv, &cd_ee65662);
+ dp->~ee65662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65662(Test_ee65662, "ee65662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65662C1Ev();
+extern void _ZN7ee65662D1Ev();
+Name_Map name_map_ee65662[] = {
+ NSPAIR(_ZN7ee65662C1Ev),
+ NSPAIR(_ZN7ee65662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee65662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65662[];
+extern void _ZN7ee656623barEv();
+extern void _ZN7ee656623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656623fooEv,_ZTv0_n12_N7ee656623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656623fooEv,_ZThn12_N7ee656623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656623barEv,_ZTv0_n16_N7ee656623barEv)();
+extern void ABISELECT(_ZThn16_N7ee656623barEv,_ZThn12_N7ee656623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65662[0]),
+ (VTBL_ENTRY)&_ZN7ee656623barEv,
+ (VTBL_ENTRY)&_ZN7ee656623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656623fooEv,_ZTv0_n12_N7ee656623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656623barEv,_ZTv0_n16_N7ee656623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee65662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee65662[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee65662[] = {
+ {&(_ZTV7ee65662[3]), 3,11},
+ {&(_tg__ZTV6dd5662__7ee65662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee65662[4]), 4,6},
+ {&(_ZTV7ee65662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65662[];
+extern VTBL_ENTRY _ZTV7ee65662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65662[];
+static VTBL_ENTRY alt_thunk_names1309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn12_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656623barEv,_ZTv0_n16_N7ee656623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656623barEv,_ZThn12_N7ee656623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656623fooEv,_ZTv0_n12_N7ee656623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656623fooEv,_ZThn12_N7ee656623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65662 = { "ee65662", // class name
+ bases_ee65662, 4,
+ &(vtc_ee65662[0]), // expected_vtbl_contents
+ &(vtt_ee65662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65662),4, //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 ee75662 : virtual dd5662 {
+ int e;
+ virtual void foo(); // _ZN7ee756623fooEv
+ virtual void bar(); // _ZN7ee756623barEv
+ ~ee75662(); // tgen
+ ee75662(); // tgen
+};
+//SIG(1 ee75662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75662 ::foo(){vfunc_called(this, "_ZN7ee756623fooEv");}
+void ee75662 ::bar(){vfunc_called(this, "_ZN7ee756623barEv");}
+ee75662 ::~ee75662(){ note_dtor("ee75662", this);} // tgen
+ee75662 ::ee75662(){ note_ctor("ee75662", this);} // tgen
+
+static void Test_ee75662()
+{
+ extern Class_Descriptor cd_ee75662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75662, buf);
+ ee75662 *dp, &lv = *(dp=new (buf) ee75662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee75662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee75662");
+ check_base_class_offset(lv, (cc662*)(dd5662*), ABISELECT(32,16), "ee75662");
+ check_base_class_offset(lv, (dd5662*), ABISELECT(16,8), "ee75662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75662.e");
+ test_class_info(&lv, &cd_ee75662);
+ dp->~ee75662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75662(Test_ee75662, "ee75662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75662C1Ev();
+extern void _ZN7ee75662D1Ev();
+Name_Map name_map_ee75662[] = {
+ NSPAIR(_ZN7ee75662C1Ev),
+ NSPAIR(_ZN7ee75662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd5662;
+extern VTBL_ENTRY _ZTI6dd5662[];
+extern VTBL_ENTRY _ZTV6dd5662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5662[];
+static Base_Class bases_ee75662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd5662, 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 _ZTI7ee75662[];
+extern void _ZN7ee756623fooEv();
+extern void _ZN7ee756623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756623barEv,_ZTv0_n16_N7ee756623barEv)();
+extern void ABISELECT(_ZThn16_N7ee756623barEv,_ZThn8_N7ee756623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756623fooEv,_ZTv0_n12_N7ee756623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756623fooEv,_ZThn16_N7ee756623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756623barEv,_ZTv0_n16_N7ee756623barEv)();
+extern void ABISELECT(_ZThn32_N7ee756623barEv,_ZThn16_N7ee756623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75662[0]),
+ (VTBL_ENTRY)&_ZN7ee756623fooEv,
+ (VTBL_ENTRY)&_ZN7ee756623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756623barEv,_ZTv0_n16_N7ee756623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756623fooEv,_ZTv0_n12_N7ee756623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756623barEv,_ZTv0_n16_N7ee756623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75662[];
+extern void _ZN6dd56623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5662__7ee75662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN6dd56623barEv,
+};
+extern void _ZN5cc6623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv)();
+extern void ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd5662__7ee75662[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5662[0]),
+ (VTBL_ENTRY)&_ZN5cc6623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv),
+};
+static VTT_ENTRY vtt_ee75662[] = {
+ {&(_ZTV7ee75662[4]), 4,17},
+ {&(_ZTV7ee75662[10]), 10,17},
+ {&(_ZTV7ee75662[15]), 15,17},
+ {&(_tg__ZTV6dd5662__7ee75662[3]), 3,4},
+ {&(_tg__ZTV5cc662__6dd5662__7ee75662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75662[];
+extern VTBL_ENTRY _ZTV7ee75662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75662[];
+static VTBL_ENTRY alt_thunk_names1310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56623barEv,_ZTv0_n16_N6dd56623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56623barEv,_ZThn8_N6dd56623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756623fooEv,_ZTv0_n12_N7ee756623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756623fooEv,_ZThn16_N7ee756623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756623barEv,_ZTv0_n16_N7ee756623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756623barEv,_ZThn16_N7ee756623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756623barEv,_ZThn8_N7ee756623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75662 = { "ee75662", // class name
+ bases_ee75662, 4,
+ &(vtc_ee75662[0]), // expected_vtbl_contents
+ &(vtt_ee75662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75662),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75662),5, //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 dd6662 : cc662 {
+ int d;
+ virtual void bar(); // _ZN6dd66623barEv
+ virtual void foo(); // _ZN6dd66623fooEv
+ ~dd6662(); // tgen
+ dd6662(); // tgen
+};
+//SIG(-1 dd6662) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6662 ::bar(){vfunc_called(this, "_ZN6dd66623barEv");}
+void dd6662 ::foo(){vfunc_called(this, "_ZN6dd66623fooEv");}
+dd6662 ::~dd6662(){ note_dtor("dd6662", this);} // tgen
+dd6662 ::dd6662(){ note_ctor("dd6662", this);} // tgen
+
+static void Test_dd6662()
+{
+ extern Class_Descriptor cd_dd6662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6662, buf);
+ dd6662 *dp, &lv = *(dp=new (buf) dd6662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), 0, "dd6662");
+ check_base_class_offset(lv, (bb62*)(cc662*), 0, "dd6662");
+ check_base_class_offset(lv, (cc662*), 0, "dd6662");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6662.d");
+ test_class_info(&lv, &cd_dd6662);
+ dp->~dd6662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6662(Test_dd6662, "dd6662", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6662C1Ev();
+extern void _ZN6dd6662D1Ev();
+Name_Map name_map_dd6662[] = {
+ NSPAIR(_ZN6dd6662C1Ev),
+ NSPAIR(_ZN6dd6662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd6662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6662[];
+extern void _ZN6dd66623fooEv();
+extern void _ZN6dd66623barEv();
+static VTBL_ENTRY vtc_dd6662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6662[0]),
+ (VTBL_ENTRY)&_ZN6dd66623fooEv,
+ (VTBL_ENTRY)&_ZN6dd66623barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+Class_Descriptor cd_dd6662 = { "dd6662", // class name
+ bases_dd6662, 3,
+ &(vtc_dd6662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6662),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 ee06662 : dd6662 {
+ int e;
+ ~ee06662(); // tgen
+ ee06662(); // tgen
+};
+//SIG(1 ee06662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06662 ::~ee06662(){ note_dtor("ee06662", this);} // tgen
+ee06662 ::ee06662(){ note_ctor("ee06662", this);} // tgen
+
+static void Test_ee06662()
+{
+ extern Class_Descriptor cd_ee06662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06662, buf);
+ ee06662 *dp, &lv = *(dp=new (buf) ee06662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), 0, "ee06662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), 0, "ee06662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), 0, "ee06662");
+ check_base_class_offset(lv, (dd6662*), 0, "ee06662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06662.e");
+ test_class_info(&lv, &cd_ee06662);
+ dp->~ee06662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06662(Test_ee06662, "ee06662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06662C1Ev();
+extern void _ZN7ee06662D1Ev();
+Name_Map name_map_ee06662[] = {
+ NSPAIR(_ZN7ee06662C1Ev),
+ NSPAIR(_ZN7ee06662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee06662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, 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 _ZTI7ee06662[];
+extern void _ZN6dd66623fooEv();
+extern void _ZN6dd66623barEv();
+static VTBL_ENTRY vtc_ee06662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06662[0]),
+ (VTBL_ENTRY)&_ZN6dd66623fooEv,
+ (VTBL_ENTRY)&_ZN6dd66623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06662[];
+extern VTBL_ENTRY _ZTV7ee06662[];
+Class_Descriptor cd_ee06662 = { "ee06662", // class name
+ bases_ee06662, 4,
+ &(vtc_ee06662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06662),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 ee16662 : virtual dd6662 {
+ int e;
+ ~ee16662(); // tgen
+ ee16662(); // tgen
+};
+//SIG(1 ee16662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16662 ::~ee16662(){ note_dtor("ee16662", this);} // tgen
+ee16662 ::ee16662(){ note_ctor("ee16662", this);} // tgen
+
+static void Test_ee16662()
+{
+ extern Class_Descriptor cd_ee16662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16662, buf);
+ ee16662 *dp, &lv = *(dp=new (buf) ee16662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee16662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee16662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), ABISELECT(16,8), "ee16662");
+ check_base_class_offset(lv, (dd6662*), ABISELECT(16,8), "ee16662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16662.e");
+ test_class_info(&lv, &cd_ee16662);
+ dp->~ee16662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16662(Test_ee16662, "ee16662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16662C1Ev();
+extern void _ZN7ee16662D1Ev();
+Name_Map name_map_ee16662[] = {
+ NSPAIR(_ZN7ee16662C1Ev),
+ NSPAIR(_ZN7ee16662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee16662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, 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 _ZTI7ee16662[];
+extern void _ZN6dd66623fooEv();
+extern void _ZN6dd66623barEv();
+static VTBL_ENTRY vtc_ee16662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16662[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16662[0]),
+ (VTBL_ENTRY)&_ZN6dd66623fooEv,
+ (VTBL_ENTRY)&_ZN6dd66623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16662[];
+static VTT_ENTRY vtt_ee16662[] = {
+ {&(_ZTV7ee16662[3]), 3,9},
+ {&(_ZTV7ee16662[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16662[];
+extern VTBL_ENTRY _ZTV7ee16662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16662[];
+Class_Descriptor cd_ee16662 = { "ee16662", // class name
+ bases_ee16662, 4,
+ &(vtc_ee16662[0]), // expected_vtbl_contents
+ &(vtt_ee16662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16662),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16662),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 ee26662 : dd6662 {
+ int e;
+ virtual void foo(); // _ZN7ee266623fooEv
+ ~ee26662(); // tgen
+ ee26662(); // tgen
+};
+//SIG(1 ee26662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26662 ::foo(){vfunc_called(this, "_ZN7ee266623fooEv");}
+ee26662 ::~ee26662(){ note_dtor("ee26662", this);} // tgen
+ee26662 ::ee26662(){ note_ctor("ee26662", this);} // tgen
+
+static void Test_ee26662()
+{
+ extern Class_Descriptor cd_ee26662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26662, buf);
+ ee26662 *dp, &lv = *(dp=new (buf) ee26662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), 0, "ee26662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), 0, "ee26662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), 0, "ee26662");
+ check_base_class_offset(lv, (dd6662*), 0, "ee26662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26662.e");
+ test_class_info(&lv, &cd_ee26662);
+ dp->~ee26662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26662(Test_ee26662, "ee26662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26662C1Ev();
+extern void _ZN7ee26662D1Ev();
+Name_Map name_map_ee26662[] = {
+ NSPAIR(_ZN7ee26662C1Ev),
+ NSPAIR(_ZN7ee26662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee26662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26662[];
+extern void _ZN7ee266623fooEv();
+extern void _ZN6dd66623barEv();
+static VTBL_ENTRY vtc_ee26662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26662[0]),
+ (VTBL_ENTRY)&_ZN7ee266623fooEv,
+ (VTBL_ENTRY)&_ZN6dd66623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26662[];
+extern VTBL_ENTRY _ZTV7ee26662[];
+Class_Descriptor cd_ee26662 = { "ee26662", // class name
+ bases_ee26662, 4,
+ &(vtc_ee26662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26662),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 ee36662 : virtual dd6662 {
+ int e;
+ virtual void foo(); // _ZN7ee366623fooEv
+ ~ee36662(); // tgen
+ ee36662(); // tgen
+};
+//SIG(1 ee36662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36662 ::foo(){vfunc_called(this, "_ZN7ee366623fooEv");}
+ee36662 ::~ee36662(){ note_dtor("ee36662", this);} // tgen
+ee36662 ::ee36662(){ note_ctor("ee36662", this);} // tgen
+
+static void Test_ee36662()
+{
+ extern Class_Descriptor cd_ee36662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36662, buf);
+ ee36662 *dp, &lv = *(dp=new (buf) ee36662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee36662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee36662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), ABISELECT(16,8), "ee36662");
+ check_base_class_offset(lv, (dd6662*), ABISELECT(16,8), "ee36662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36662.e");
+ test_class_info(&lv, &cd_ee36662);
+ dp->~ee36662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36662(Test_ee36662, "ee36662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36662C1Ev();
+extern void _ZN7ee36662D1Ev();
+Name_Map name_map_ee36662[] = {
+ NSPAIR(_ZN7ee36662C1Ev),
+ NSPAIR(_ZN7ee36662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee36662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, ABISELECT(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 _ZTI7ee36662[];
+extern void _ZN7ee366623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366623fooEv,_ZTv0_n12_N7ee366623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366623fooEv,_ZThn8_N7ee366623fooEv)() __attribute__((weak));
+extern void _ZN6dd66623barEv();
+static VTBL_ENTRY vtc_ee36662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36662[0]),
+ (VTBL_ENTRY)&_ZN7ee366623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366623fooEv,_ZTv0_n12_N7ee366623fooEv),
+ (VTBL_ENTRY)&_ZN6dd66623barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36662[];
+static VTT_ENTRY vtt_ee36662[] = {
+ {&(_ZTV7ee36662[3]), 3,10},
+ {&(_ZTV7ee36662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36662[];
+extern VTBL_ENTRY _ZTV7ee36662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36662[];
+static VTBL_ENTRY alt_thunk_names1311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366623fooEv,_ZTv0_n12_N7ee366623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366623fooEv,_ZThn8_N7ee366623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36662 = { "ee36662", // class name
+ bases_ee36662, 4,
+ &(vtc_ee36662[0]), // expected_vtbl_contents
+ &(vtt_ee36662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36662),2, //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 ee46662 : dd6662 {
+ int e;
+ virtual void bar(); // _ZN7ee466623barEv
+ ~ee46662(); // tgen
+ ee46662(); // tgen
+};
+//SIG(1 ee46662) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46662 ::bar(){vfunc_called(this, "_ZN7ee466623barEv");}
+ee46662 ::~ee46662(){ note_dtor("ee46662", this);} // tgen
+ee46662 ::ee46662(){ note_ctor("ee46662", this);} // tgen
+
+static void Test_ee46662()
+{
+ extern Class_Descriptor cd_ee46662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46662, buf);
+ ee46662 *dp, &lv = *(dp=new (buf) ee46662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), 0, "ee46662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), 0, "ee46662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), 0, "ee46662");
+ check_base_class_offset(lv, (dd6662*), 0, "ee46662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46662.e");
+ test_class_info(&lv, &cd_ee46662);
+ dp->~ee46662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46662(Test_ee46662, "ee46662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46662C1Ev();
+extern void _ZN7ee46662D1Ev();
+Name_Map name_map_ee46662[] = {
+ NSPAIR(_ZN7ee46662C1Ev),
+ NSPAIR(_ZN7ee46662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee46662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46662[];
+extern void _ZN6dd66623fooEv();
+extern void _ZN7ee466623barEv();
+static VTBL_ENTRY vtc_ee46662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46662[0]),
+ (VTBL_ENTRY)&_ZN6dd66623fooEv,
+ (VTBL_ENTRY)&_ZN7ee466623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46662[];
+extern VTBL_ENTRY _ZTV7ee46662[];
+Class_Descriptor cd_ee46662 = { "ee46662", // class name
+ bases_ee46662, 4,
+ &(vtc_ee46662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46662),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 ee56662 : virtual dd6662 {
+ int e;
+ virtual void bar(); // _ZN7ee566623barEv
+ ~ee56662(); // tgen
+ ee56662(); // tgen
+};
+//SIG(1 ee56662) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56662 ::bar(){vfunc_called(this, "_ZN7ee566623barEv");}
+ee56662 ::~ee56662(){ note_dtor("ee56662", this);} // tgen
+ee56662 ::ee56662(){ note_ctor("ee56662", this);} // tgen
+
+static void Test_ee56662()
+{
+ extern Class_Descriptor cd_ee56662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56662, buf);
+ ee56662 *dp, &lv = *(dp=new (buf) ee56662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee56662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee56662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), ABISELECT(16,8), "ee56662");
+ check_base_class_offset(lv, (dd6662*), ABISELECT(16,8), "ee56662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56662.e");
+ test_class_info(&lv, &cd_ee56662);
+ dp->~ee56662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56662(Test_ee56662, "ee56662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56662C1Ev();
+extern void _ZN7ee56662D1Ev();
+Name_Map name_map_ee56662[] = {
+ NSPAIR(_ZN7ee56662C1Ev),
+ NSPAIR(_ZN7ee56662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee56662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, ABISELECT(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 _ZTI7ee56662[];
+extern void _ZN7ee566623barEv();
+extern void _ZN6dd66623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566623barEv,_ZTv0_n16_N7ee566623barEv)();
+extern void ABISELECT(_ZThn16_N7ee566623barEv,_ZThn8_N7ee566623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56662[0]),
+ (VTBL_ENTRY)&_ZN7ee566623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56662[0]),
+ (VTBL_ENTRY)&_ZN6dd66623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566623barEv,_ZTv0_n16_N7ee566623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56662[];
+static VTT_ENTRY vtt_ee56662[] = {
+ {&(_ZTV7ee56662[3]), 3,10},
+ {&(_ZTV7ee56662[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56662[];
+extern VTBL_ENTRY _ZTV7ee56662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56662[];
+static VTBL_ENTRY alt_thunk_names1312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566623barEv,_ZTv0_n16_N7ee566623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566623barEv,_ZThn8_N7ee566623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56662 = { "ee56662", // class name
+ bases_ee56662, 4,
+ &(vtc_ee56662[0]), // expected_vtbl_contents
+ &(vtt_ee56662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56662),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56662),2, //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 ee66662 : dd6662 {
+ int e;
+ virtual void foo(); // _ZN7ee666623fooEv
+ virtual void bar(); // _ZN7ee666623barEv
+ ~ee66662(); // tgen
+ ee66662(); // tgen
+};
+//SIG(1 ee66662) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66662 ::foo(){vfunc_called(this, "_ZN7ee666623fooEv");}
+void ee66662 ::bar(){vfunc_called(this, "_ZN7ee666623barEv");}
+ee66662 ::~ee66662(){ note_dtor("ee66662", this);} // tgen
+ee66662 ::ee66662(){ note_ctor("ee66662", this);} // tgen
+
+static void Test_ee66662()
+{
+ extern Class_Descriptor cd_ee66662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66662, buf);
+ ee66662 *dp, &lv = *(dp=new (buf) ee66662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), 0, "ee66662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), 0, "ee66662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), 0, "ee66662");
+ check_base_class_offset(lv, (dd6662*), 0, "ee66662");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66662.e");
+ test_class_info(&lv, &cd_ee66662);
+ dp->~ee66662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66662(Test_ee66662, "ee66662", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66662C1Ev();
+extern void _ZN7ee66662D1Ev();
+Name_Map name_map_ee66662[] = {
+ NSPAIR(_ZN7ee66662C1Ev),
+ NSPAIR(_ZN7ee66662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee66662[] = {
+ // 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_bb62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66662[];
+extern void _ZN7ee666623fooEv();
+extern void _ZN7ee666623barEv();
+static VTBL_ENTRY vtc_ee66662[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66662[0]),
+ (VTBL_ENTRY)&_ZN7ee666623fooEv,
+ (VTBL_ENTRY)&_ZN7ee666623barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66662[];
+extern VTBL_ENTRY _ZTV7ee66662[];
+Class_Descriptor cd_ee66662 = { "ee66662", // class name
+ bases_ee66662, 4,
+ &(vtc_ee66662[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66662),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 ee76662 : virtual dd6662 {
+ int e;
+ virtual void foo(); // _ZN7ee766623fooEv
+ virtual void bar(); // _ZN7ee766623barEv
+ ~ee76662(); // tgen
+ ee76662(); // tgen
+};
+//SIG(1 ee76662) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76662 ::foo(){vfunc_called(this, "_ZN7ee766623fooEv");}
+void ee76662 ::bar(){vfunc_called(this, "_ZN7ee766623barEv");}
+ee76662 ::~ee76662(){ note_dtor("ee76662", this);} // tgen
+ee76662 ::ee76662(){ note_ctor("ee76662", this);} // tgen
+
+static void Test_ee76662()
+{
+ extern Class_Descriptor cd_ee76662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76662, buf);
+ ee76662 *dp, &lv = *(dp=new (buf) ee76662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee76662");
+ check_base_class_offset(lv, (bb62*)(cc662*)(dd6662*), ABISELECT(16,8), "ee76662");
+ check_base_class_offset(lv, (cc662*)(dd6662*), ABISELECT(16,8), "ee76662");
+ check_base_class_offset(lv, (dd6662*), ABISELECT(16,8), "ee76662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76662.e");
+ test_class_info(&lv, &cd_ee76662);
+ dp->~ee76662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76662(Test_ee76662, "ee76662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76662C1Ev();
+extern void _ZN7ee76662D1Ev();
+Name_Map name_map_ee76662[] = {
+ NSPAIR(_ZN7ee76662C1Ev),
+ NSPAIR(_ZN7ee76662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd6662;
+extern VTBL_ENTRY _ZTI6dd6662[];
+extern VTBL_ENTRY _ZTV6dd6662[];
+static Base_Class bases_ee76662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6662, ABISELECT(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 _ZTI7ee76662[];
+extern void _ZN7ee766623fooEv();
+extern void _ZN7ee766623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766623fooEv,_ZTv0_n12_N7ee766623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766623fooEv,_ZThn8_N7ee766623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766623barEv,_ZTv0_n16_N7ee766623barEv)();
+extern void ABISELECT(_ZThn16_N7ee766623barEv,_ZThn8_N7ee766623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76662[0]),
+ (VTBL_ENTRY)&_ZN7ee766623fooEv,
+ (VTBL_ENTRY)&_ZN7ee766623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766623fooEv,_ZTv0_n12_N7ee766623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766623barEv,_ZTv0_n16_N7ee766623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76662[];
+static VTT_ENTRY vtt_ee76662[] = {
+ {&(_ZTV7ee76662[3]), 3,11},
+ {&(_ZTV7ee76662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76662[];
+extern VTBL_ENTRY _ZTV7ee76662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76662[];
+static VTBL_ENTRY alt_thunk_names1313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766623barEv,_ZTv0_n16_N7ee766623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766623barEv,_ZThn8_N7ee766623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766623fooEv,_ZTv0_n12_N7ee766623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766623fooEv,_ZThn8_N7ee766623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76662 = { "ee76662", // class name
+ bases_ee76662, 4,
+ &(vtc_ee76662[0]), // expected_vtbl_contents
+ &(vtt_ee76662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76662),2, //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 dd7662 : virtual cc662 {
+ int d;
+ virtual void bar(); // _ZN6dd76623barEv
+ virtual void foo(); // _ZN6dd76623fooEv
+ ~dd7662(); // tgen
+ dd7662(); // tgen
+};
+//SIG(-1 dd7662) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7662 ::bar(){vfunc_called(this, "_ZN6dd76623barEv");}
+void dd7662 ::foo(){vfunc_called(this, "_ZN6dd76623fooEv");}
+dd7662 ::~dd7662(){ note_dtor("dd7662", this);} // tgen
+dd7662 ::dd7662(){ note_ctor("dd7662", this);} // tgen
+
+static void Test_dd7662()
+{
+ extern Class_Descriptor cd_dd7662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7662, buf);
+ dd7662 *dp, &lv = *(dp=new (buf) dd7662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,8), "dd7662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,8), "dd7662");
+ check_base_class_offset(lv, (cc662*), ABISELECT(16,8), "dd7662");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7662.d");
+ test_class_info(&lv, &cd_dd7662);
+ dp->~dd7662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7662(Test_dd7662, "dd7662", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7662C1Ev();
+extern void _ZN6dd7662D1Ev();
+Name_Map name_map_dd7662[] = {
+ NSPAIR(_ZN6dd7662C1Ev),
+ NSPAIR(_ZN6dd7662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+static Base_Class bases_dd7662[] = {
+ // 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_bb62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, ABISELECT(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 _ZTI6dd7662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7662[];
+static VTT_ENTRY vtt_dd7662[] = {
+ {&(_ZTV6dd7662[3]), 3,11},
+ {&(_ZTV6dd7662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static VTBL_ENTRY alt_thunk_names1314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7662 = { "dd7662", // class name
+ bases_dd7662, 3,
+ &(vtc_dd7662[0]), // expected_vtbl_contents
+ &(vtt_dd7662[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7662),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07662 : dd7662 {
+ int e;
+ ~ee07662(); // tgen
+ ee07662(); // tgen
+};
+//SIG(1 ee07662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07662 ::~ee07662(){ note_dtor("ee07662", this);} // tgen
+ee07662 ::ee07662(){ note_ctor("ee07662", this);} // tgen
+
+static void Test_ee07662()
+{
+ extern Class_Descriptor cd_ee07662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07662, buf);
+ ee07662 *dp, &lv = *(dp=new (buf) ee07662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee07662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee07662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(16,12), "ee07662");
+ check_base_class_offset(lv, (dd7662*), 0, "ee07662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07662.e");
+ test_class_info(&lv, &cd_ee07662);
+ dp->~ee07662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07662(Test_ee07662, "ee07662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07662C1Ev();
+extern void _ZN7ee07662D1Ev();
+Name_Map name_map_ee07662[] = {
+ NSPAIR(_ZN7ee07662C1Ev),
+ NSPAIR(_ZN7ee07662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee07662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee07662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee07662[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee07662[] = {
+ {&(_ZTV7ee07662[3]), 3,11},
+ {&(_tg__ZTV6dd7662__7ee07662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee07662[4]), 4,6},
+ {&(_ZTV7ee07662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07662[];
+extern VTBL_ENTRY _ZTV7ee07662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07662[];
+static VTBL_ENTRY alt_thunk_names1315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07662 = { "ee07662", // class name
+ bases_ee07662, 4,
+ &(vtc_ee07662[0]), // expected_vtbl_contents
+ &(vtt_ee07662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07662),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17662 : virtual dd7662 {
+ int e;
+ ~ee17662(); // tgen
+ ee17662(); // tgen
+};
+//SIG(1 ee17662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17662 ::~ee17662(){ note_dtor("ee17662", this);} // tgen
+ee17662 ::ee17662(){ note_ctor("ee17662", this);} // tgen
+
+static void Test_ee17662()
+{
+ extern Class_Descriptor cd_ee17662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17662, buf);
+ ee17662 *dp, &lv = *(dp=new (buf) ee17662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee17662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee17662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(32,16), "ee17662");
+ check_base_class_offset(lv, (dd7662*), ABISELECT(16,8), "ee17662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17662.e");
+ test_class_info(&lv, &cd_ee17662);
+ dp->~ee17662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17662(Test_ee17662, "ee17662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17662C1Ev();
+extern void _ZN7ee17662D1Ev();
+Name_Map name_map_ee17662[] = {
+ NSPAIR(_ZN7ee17662C1Ev),
+ NSPAIR(_ZN7ee17662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee17662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, 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 _ZTI7ee17662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17662[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee17662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee17662[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee17662[] = {
+ {&(_ZTV7ee17662[4]), 4,17},
+ {&(_ZTV7ee17662[9]), 9,17},
+ {&(_ZTV7ee17662[15]), 15,17},
+ {&(_tg__ZTV6dd7662__7ee17662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee17662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17662[];
+extern VTBL_ENTRY _ZTV7ee17662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17662[];
+static VTBL_ENTRY alt_thunk_names1316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17662 = { "ee17662", // class name
+ bases_ee17662, 4,
+ &(vtc_ee17662[0]), // expected_vtbl_contents
+ &(vtt_ee17662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17662),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17662),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27662 : dd7662 {
+ int e;
+ virtual void foo(); // _ZN7ee276623fooEv
+ ~ee27662(); // tgen
+ ee27662(); // tgen
+};
+//SIG(1 ee27662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27662 ::foo(){vfunc_called(this, "_ZN7ee276623fooEv");}
+ee27662 ::~ee27662(){ note_dtor("ee27662", this);} // tgen
+ee27662 ::ee27662(){ note_ctor("ee27662", this);} // tgen
+
+static void Test_ee27662()
+{
+ extern Class_Descriptor cd_ee27662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27662, buf);
+ ee27662 *dp, &lv = *(dp=new (buf) ee27662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee27662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee27662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(16,12), "ee27662");
+ check_base_class_offset(lv, (dd7662*), 0, "ee27662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27662.e");
+ test_class_info(&lv, &cd_ee27662);
+ dp->~ee27662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27662(Test_ee27662, "ee27662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27662C1Ev();
+extern void _ZN7ee27662D1Ev();
+Name_Map name_map_ee27662[] = {
+ NSPAIR(_ZN7ee27662C1Ev),
+ NSPAIR(_ZN7ee27662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee27662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN7ee276623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276623fooEv,_ZTv0_n12_N7ee276623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276623fooEv,_ZThn12_N7ee276623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN7ee276623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276623fooEv,_ZTv0_n12_N7ee276623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee27662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee27662[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee27662[] = {
+ {&(_ZTV7ee27662[3]), 3,11},
+ {&(_tg__ZTV6dd7662__7ee27662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee27662[4]), 4,6},
+ {&(_ZTV7ee27662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27662[];
+extern VTBL_ENTRY _ZTV7ee27662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27662[];
+static VTBL_ENTRY alt_thunk_names1317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276623fooEv,_ZTv0_n12_N7ee276623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276623fooEv,_ZThn12_N7ee276623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27662 = { "ee27662", // class name
+ bases_ee27662, 4,
+ &(vtc_ee27662[0]), // expected_vtbl_contents
+ &(vtt_ee27662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27662),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37662 : virtual dd7662 {
+ int e;
+ virtual void foo(); // _ZN7ee376623fooEv
+ ~ee37662(); // tgen
+ ee37662(); // tgen
+};
+//SIG(1 ee37662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37662 ::foo(){vfunc_called(this, "_ZN7ee376623fooEv");}
+ee37662 ::~ee37662(){ note_dtor("ee37662", this);} // tgen
+ee37662 ::ee37662(){ note_ctor("ee37662", this);} // tgen
+
+static void Test_ee37662()
+{
+ extern Class_Descriptor cd_ee37662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37662, buf);
+ ee37662 *dp, &lv = *(dp=new (buf) ee37662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee37662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee37662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(32,16), "ee37662");
+ check_base_class_offset(lv, (dd7662*), ABISELECT(16,8), "ee37662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37662.e");
+ test_class_info(&lv, &cd_ee37662);
+ dp->~ee37662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37662(Test_ee37662, "ee37662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37662C1Ev();
+extern void _ZN7ee37662D1Ev();
+Name_Map name_map_ee37662[] = {
+ NSPAIR(_ZN7ee37662C1Ev),
+ NSPAIR(_ZN7ee37662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee37662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, ABISELECT(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 _ZTI7ee37662[];
+extern void _ZN7ee376623fooEv();
+extern void _ZN6dd76623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376623fooEv,_ZTv0_n20_N7ee376623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376623fooEv,_ZThn8_N7ee376623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376623fooEv,_ZTv0_n12_N7ee376623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376623fooEv,_ZThn16_N7ee376623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37662[0]),
+ (VTBL_ENTRY)&_ZN7ee376623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376623fooEv,_ZTv0_n20_N7ee376623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376623fooEv,_ZTv0_n12_N7ee376623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee37662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee37662[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee37662[] = {
+ {&(_ZTV7ee37662[4]), 4,18},
+ {&(_ZTV7ee37662[10]), 10,18},
+ {&(_ZTV7ee37662[16]), 16,18},
+ {&(_tg__ZTV6dd7662__7ee37662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee37662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37662[];
+extern VTBL_ENTRY _ZTV7ee37662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37662[];
+static VTBL_ENTRY alt_thunk_names1318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376623fooEv,_ZTv0_n12_N7ee376623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376623fooEv,_ZThn16_N7ee376623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376623fooEv,_ZTv0_n20_N7ee376623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376623fooEv,_ZThn8_N7ee376623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37662 = { "ee37662", // class name
+ bases_ee37662, 4,
+ &(vtc_ee37662[0]), // expected_vtbl_contents
+ &(vtt_ee37662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37662),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37662),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47662 : dd7662 {
+ int e;
+ virtual void bar(); // _ZN7ee476623barEv
+ ~ee47662(); // tgen
+ ee47662(); // tgen
+};
+//SIG(1 ee47662) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47662 ::bar(){vfunc_called(this, "_ZN7ee476623barEv");}
+ee47662 ::~ee47662(){ note_dtor("ee47662", this);} // tgen
+ee47662 ::ee47662(){ note_ctor("ee47662", this);} // tgen
+
+static void Test_ee47662()
+{
+ extern Class_Descriptor cd_ee47662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47662, buf);
+ ee47662 *dp, &lv = *(dp=new (buf) ee47662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee47662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee47662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(16,12), "ee47662");
+ check_base_class_offset(lv, (dd7662*), 0, "ee47662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47662.e");
+ test_class_info(&lv, &cd_ee47662);
+ dp->~ee47662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47662(Test_ee47662, "ee47662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47662C1Ev();
+extern void _ZN7ee47662D1Ev();
+Name_Map name_map_ee47662[] = {
+ NSPAIR(_ZN7ee47662C1Ev),
+ NSPAIR(_ZN7ee47662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee47662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47662[];
+extern void _ZN7ee476623barEv();
+extern void _ZN6dd76623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476623barEv,_ZTv0_n16_N7ee476623barEv)();
+extern void ABISELECT(_ZThn16_N7ee476623barEv,_ZThn12_N7ee476623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47662[0]),
+ (VTBL_ENTRY)&_ZN7ee476623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476623barEv,_ZTv0_n16_N7ee476623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee47662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee47662[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee47662[] = {
+ {&(_ZTV7ee47662[3]), 3,11},
+ {&(_tg__ZTV6dd7662__7ee47662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee47662[4]), 4,6},
+ {&(_ZTV7ee47662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47662[];
+extern VTBL_ENTRY _ZTV7ee47662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47662[];
+static VTBL_ENTRY alt_thunk_names1319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476623barEv,_ZTv0_n16_N7ee476623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476623barEv,_ZThn12_N7ee476623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47662 = { "ee47662", // class name
+ bases_ee47662, 4,
+ &(vtc_ee47662[0]), // expected_vtbl_contents
+ &(vtt_ee47662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47662),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57662 : virtual dd7662 {
+ int e;
+ virtual void bar(); // _ZN7ee576623barEv
+ ~ee57662(); // tgen
+ ee57662(); // tgen
+};
+//SIG(1 ee57662) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57662 ::bar(){vfunc_called(this, "_ZN7ee576623barEv");}
+ee57662 ::~ee57662(){ note_dtor("ee57662", this);} // tgen
+ee57662 ::ee57662(){ note_ctor("ee57662", this);} // tgen
+
+static void Test_ee57662()
+{
+ extern Class_Descriptor cd_ee57662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57662, buf);
+ ee57662 *dp, &lv = *(dp=new (buf) ee57662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee57662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee57662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(32,16), "ee57662");
+ check_base_class_offset(lv, (dd7662*), ABISELECT(16,8), "ee57662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57662.e");
+ test_class_info(&lv, &cd_ee57662);
+ dp->~ee57662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57662(Test_ee57662, "ee57662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57662C1Ev();
+extern void _ZN7ee57662D1Ev();
+Name_Map name_map_ee57662[] = {
+ NSPAIR(_ZN7ee57662C1Ev),
+ NSPAIR(_ZN7ee57662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee57662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, ABISELECT(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 _ZTI7ee57662[];
+extern void _ZN7ee576623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576623barEv,_ZTv0_n16_N7ee576623barEv)();
+extern void ABISELECT(_ZThn16_N7ee576623barEv,_ZThn8_N7ee576623barEv)() __attribute__((weak));
+extern void _ZN6dd76623fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576623barEv,_ZTv0_n16_N7ee576623barEv)();
+extern void ABISELECT(_ZThn32_N7ee576623barEv,_ZThn16_N7ee576623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57662[0]),
+ (VTBL_ENTRY)&_ZN7ee576623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576623barEv,_ZTv0_n16_N7ee576623barEv),
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576623barEv,_ZTv0_n16_N7ee576623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee57662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee57662[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee57662[] = {
+ {&(_ZTV7ee57662[4]), 4,18},
+ {&(_ZTV7ee57662[10]), 10,18},
+ {&(_ZTV7ee57662[16]), 16,18},
+ {&(_tg__ZTV6dd7662__7ee57662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee57662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57662[];
+extern VTBL_ENTRY _ZTV7ee57662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57662[];
+static VTBL_ENTRY alt_thunk_names1320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576623barEv,_ZTv0_n16_N7ee576623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576623barEv,_ZThn16_N7ee576623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576623barEv,_ZThn8_N7ee576623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57662 = { "ee57662", // class name
+ bases_ee57662, 4,
+ &(vtc_ee57662[0]), // expected_vtbl_contents
+ &(vtt_ee57662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57662),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57662),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67662 : dd7662 {
+ int e;
+ virtual void foo(); // _ZN7ee676623fooEv
+ virtual void bar(); // _ZN7ee676623barEv
+ ~ee67662(); // tgen
+ ee67662(); // tgen
+};
+//SIG(1 ee67662) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67662 ::foo(){vfunc_called(this, "_ZN7ee676623fooEv");}
+void ee67662 ::bar(){vfunc_called(this, "_ZN7ee676623barEv");}
+ee67662 ::~ee67662(){ note_dtor("ee67662", this);} // tgen
+ee67662 ::ee67662(){ note_ctor("ee67662", this);} // tgen
+
+static void Test_ee67662()
+{
+ extern Class_Descriptor cd_ee67662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67662, buf);
+ ee67662 *dp, &lv = *(dp=new (buf) ee67662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(16,12), "ee67662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(16,12), "ee67662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(16,12), "ee67662");
+ check_base_class_offset(lv, (dd7662*), 0, "ee67662");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67662.e");
+ test_class_info(&lv, &cd_ee67662);
+ dp->~ee67662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67662(Test_ee67662, "ee67662", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67662C1Ev();
+extern void _ZN7ee67662D1Ev();
+Name_Map name_map_ee67662[] = {
+ NSPAIR(_ZN7ee67662C1Ev),
+ NSPAIR(_ZN7ee67662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee67662[] = {
+ // 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_bb62, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67662[];
+extern void _ZN7ee676623barEv();
+extern void _ZN7ee676623fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676623fooEv,_ZTv0_n12_N7ee676623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676623fooEv,_ZThn12_N7ee676623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676623barEv,_ZTv0_n16_N7ee676623barEv)();
+extern void ABISELECT(_ZThn16_N7ee676623barEv,_ZThn12_N7ee676623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67662[0]),
+ (VTBL_ENTRY)&_ZN7ee676623barEv,
+ (VTBL_ENTRY)&_ZN7ee676623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676623fooEv,_ZTv0_n12_N7ee676623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676623barEv,_ZTv0_n16_N7ee676623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee67662[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee67662[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee67662[] = {
+ {&(_ZTV7ee67662[3]), 3,11},
+ {&(_tg__ZTV6dd7662__7ee67662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee67662[4]), 4,6},
+ {&(_ZTV7ee67662[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67662[];
+extern VTBL_ENTRY _ZTV7ee67662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67662[];
+static VTBL_ENTRY alt_thunk_names1321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn12_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn12_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676623barEv,_ZTv0_n16_N7ee676623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676623barEv,_ZThn12_N7ee676623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676623fooEv,_ZTv0_n12_N7ee676623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676623fooEv,_ZThn12_N7ee676623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67662 = { "ee67662", // class name
+ bases_ee67662, 4,
+ &(vtc_ee67662[0]), // expected_vtbl_contents
+ &(vtt_ee67662[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67662),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67662),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67662),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77662 : virtual dd7662 {
+ int e;
+ virtual void foo(); // _ZN7ee776623fooEv
+ virtual void bar(); // _ZN7ee776623barEv
+ ~ee77662(); // tgen
+ ee77662(); // tgen
+};
+//SIG(1 ee77662) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77662 ::foo(){vfunc_called(this, "_ZN7ee776623fooEv");}
+void ee77662 ::bar(){vfunc_called(this, "_ZN7ee776623barEv");}
+ee77662 ::~ee77662(){ note_dtor("ee77662", this);} // tgen
+ee77662 ::ee77662(){ note_ctor("ee77662", this);} // tgen
+
+static void Test_ee77662()
+{
+ extern Class_Descriptor cd_ee77662;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77662, buf);
+ ee77662 *dp, &lv = *(dp=new (buf) ee77662());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77662)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77662)");
+ check_base_class_offset(lv, (aa2*)(bb62*)(cc662*), ABISELECT(32,16), "ee77662");
+ check_base_class_offset(lv, (bb62*)(cc662*), ABISELECT(32,16), "ee77662");
+ check_base_class_offset(lv, (cc662*)(dd7662*), ABISELECT(32,16), "ee77662");
+ check_base_class_offset(lv, (dd7662*), ABISELECT(16,8), "ee77662");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77662.e");
+ test_class_info(&lv, &cd_ee77662);
+ dp->~ee77662();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77662(Test_ee77662, "ee77662", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77662C1Ev();
+extern void _ZN7ee77662D1Ev();
+Name_Map name_map_ee77662[] = {
+ NSPAIR(_ZN7ee77662C1Ev),
+ NSPAIR(_ZN7ee77662D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc662;
+extern VTBL_ENTRY _ZTI5cc662[];
+extern VTBL_ENTRY _ZTV5cc662[];
+extern Class_Descriptor cd_dd7662;
+extern VTBL_ENTRY _ZTI6dd7662[];
+extern VTBL_ENTRY _ZTV6dd7662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7662[];
+static Base_Class bases_ee77662[] = {
+ // 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_bb62, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc662, 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_dd7662, ABISELECT(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 _ZTI7ee77662[];
+extern void _ZN7ee776623fooEv();
+extern void _ZN7ee776623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776623barEv,_ZTv0_n16_N7ee776623barEv)();
+extern void ABISELECT(_ZThn16_N7ee776623barEv,_ZThn8_N7ee776623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776623fooEv,_ZTv0_n20_N7ee776623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776623fooEv,_ZThn8_N7ee776623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776623fooEv,_ZTv0_n12_N7ee776623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776623fooEv,_ZThn16_N7ee776623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776623barEv,_ZTv0_n16_N7ee776623barEv)();
+extern void ABISELECT(_ZThn32_N7ee776623barEv,_ZThn16_N7ee776623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77662[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77662[0]),
+ (VTBL_ENTRY)&_ZN7ee776623fooEv,
+ (VTBL_ENTRY)&_ZN7ee776623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776623barEv,_ZTv0_n16_N7ee776623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776623fooEv,_ZTv0_n20_N7ee776623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776623fooEv,_ZTv0_n12_N7ee776623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776623barEv,_ZTv0_n16_N7ee776623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77662[];
+extern void _ZN6dd76623barEv();
+extern void _ZN6dd76623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7662__7ee77662[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&_ZN6dd76623barEv,
+ (VTBL_ENTRY)&_ZN6dd76623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv)();
+extern void ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc662__6dd7662__7ee77662[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7662[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv),
+};
+static VTT_ENTRY vtt_ee77662[] = {
+ {&(_ZTV7ee77662[4]), 4,19},
+ {&(_ZTV7ee77662[11]), 11,19},
+ {&(_ZTV7ee77662[17]), 17,19},
+ {&(_tg__ZTV6dd7662__7ee77662[3]), 3,5},
+ {&(_tg__ZTV5cc662__6dd7662__7ee77662[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77662[];
+extern VTBL_ENTRY _ZTV7ee77662[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77662[];
+static VTBL_ENTRY alt_thunk_names1322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76623barEv,_ZTv0_n16_N6dd76623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623barEv,_ZThn8_N6dd76623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76623fooEv,_ZTv0_n12_N6dd76623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76623fooEv,_ZThn8_N6dd76623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776623fooEv,_ZTv0_n12_N7ee776623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776623fooEv,_ZThn16_N7ee776623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776623fooEv,_ZTv0_n20_N7ee776623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776623fooEv,_ZThn8_N7ee776623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776623barEv,_ZTv0_n16_N7ee776623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776623barEv,_ZThn16_N7ee776623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776623barEv,_ZThn8_N7ee776623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77662 = { "ee77662", // class name
+ bases_ee77662, 4,
+ &(vtc_ee77662[0]), // expected_vtbl_contents
+ &(vtt_ee77662[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77662),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77662),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77662),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc762 : virtual bb62 {
+ int c;
+ virtual void foo(); // _ZN5cc7623fooEv
+ virtual void bar(); // _ZN5cc7623barEv
+ ~cc762(); // tgen
+ cc762(); // tgen
+};
+//SIG(-1 cc762) C1{ VBC2{ BC3{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void cc762 ::foo(){vfunc_called(this, "_ZN5cc7623fooEv");}
+void cc762 ::bar(){vfunc_called(this, "_ZN5cc7623barEv");}
+cc762 ::~cc762(){ note_dtor("cc762", this);} // tgen
+cc762 ::cc762(){ note_ctor("cc762", this);} // tgen
+
+static void Test_cc762()
+{
+ extern Class_Descriptor cd_cc762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc762, buf);
+ cc762 *dp, &lv = *(dp=new (buf) cc762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,8), "cc762");
+ check_base_class_offset(lv, (bb62*), ABISELECT(16,8), "cc762");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc762.c");
+ test_class_info(&lv, &cd_cc762);
+ dp->~cc762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc762(Test_cc762, "cc762", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc762C1Ev();
+extern void _ZN5cc762D1Ev();
+Name_Map name_map_cc762[] = {
+ NSPAIR(_ZN5cc762C1Ev),
+ NSPAIR(_ZN5cc762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_cc762[] = {
+ // 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_bb62, ABISELECT(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 _ZTI5cc762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV5cc762[];
+static VTT_ENTRY vtt_cc762[] = {
+ {&(_ZTV5cc762[3]), 3,11},
+ {&(_ZTV5cc762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static VTBL_ENTRY alt_thunk_names1323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc762 = { "cc762", // class name
+ bases_cc762, 2,
+ &(vtc_cc762[0]), // expected_vtbl_contents
+ &(vtt_cc762[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc762),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0762 : cc762 {
+ int d;
+ ~dd0762(); // tgen
+ dd0762(); // tgen
+};
+//SIG(-1 dd0762) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0762 ::~dd0762(){ note_dtor("dd0762", this);} // tgen
+dd0762 ::dd0762(){ note_ctor("dd0762", this);} // tgen
+
+static void Test_dd0762()
+{
+ extern Class_Descriptor cd_dd0762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0762, buf);
+ dd0762 *dp, &lv = *(dp=new (buf) dd0762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd0762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(16,12), "dd0762");
+ check_base_class_offset(lv, (cc762*), 0, "dd0762");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0762.d");
+ test_class_info(&lv, &cd_dd0762);
+ dp->~dd0762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0762(Test_dd0762, "dd0762", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0762C1Ev();
+extern void _ZN6dd0762D1Ev();
+Name_Map name_map_dd0762[] = {
+ NSPAIR(_ZN6dd0762C1Ev),
+ NSPAIR(_ZN6dd0762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd0762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd0762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd0762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd0762[] = {
+ {&(_ZTV6dd0762[3]), 3,11},
+ {&(_tg__ZTV5cc762__6dd0762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd0762[4]), 4,6},
+ {&(_ZTV6dd0762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static VTBL_ENTRY alt_thunk_names1324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0762 = { "dd0762", // class name
+ bases_dd0762, 3,
+ &(vtc_dd0762[0]), // expected_vtbl_contents
+ &(vtt_dd0762[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0762),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00762 : dd0762 {
+ int e;
+ ~ee00762(); // tgen
+ ee00762(); // tgen
+};
+//SIG(1 ee00762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00762 ::~ee00762(){ note_dtor("ee00762", this);} // tgen
+ee00762 ::ee00762(){ note_ctor("ee00762", this);} // tgen
+
+static void Test_ee00762()
+{
+ extern Class_Descriptor cd_ee00762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00762, buf);
+ ee00762 *dp, &lv = *(dp=new (buf) ee00762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee00762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(24,16), "ee00762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), 0, "ee00762");
+ check_base_class_offset(lv, (dd0762*), 0, "ee00762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00762.e");
+ test_class_info(&lv, &cd_ee00762);
+ dp->~ee00762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00762(Test_ee00762, "ee00762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00762C1Ev();
+extern void _ZN7ee00762D1Ev();
+Name_Map name_map_ee00762[] = {
+ NSPAIR(_ZN7ee00762C1Ev),
+ NSPAIR(_ZN7ee00762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee00762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee00762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee00762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee00762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee00762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee00762[] = {
+ {&(_ZTV7ee00762[3]), 3,11},
+ {&(_tg__ZTV6dd0762__7ee00762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee00762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee00762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee00762[4]), 4,6},
+ {&(_ZTV7ee00762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00762[];
+extern VTBL_ENTRY _ZTV7ee00762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00762[];
+static VTBL_ENTRY alt_thunk_names1325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00762 = { "ee00762", // class name
+ bases_ee00762, 4,
+ &(vtc_ee00762[0]), // expected_vtbl_contents
+ &(vtt_ee00762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10762 : virtual dd0762 {
+ int e;
+ ~ee10762(); // tgen
+ ee10762(); // tgen
+};
+//SIG(1 ee10762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10762 ::~ee10762(){ note_dtor("ee10762", this);} // tgen
+ee10762 ::ee10762(){ note_ctor("ee10762", this);} // tgen
+
+static void Test_ee10762()
+{
+ extern Class_Descriptor cd_ee10762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10762, buf);
+ ee10762 *dp, &lv = *(dp=new (buf) ee10762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee10762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(32,20), "ee10762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), ABISELECT(16,8), "ee10762");
+ check_base_class_offset(lv, (dd0762*), ABISELECT(16,8), "ee10762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10762.e");
+ test_class_info(&lv, &cd_ee10762);
+ dp->~ee10762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10762(Test_ee10762, "ee10762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10762C1Ev();
+extern void _ZN7ee10762D1Ev();
+Name_Map name_map_ee10762[] = {
+ NSPAIR(_ZN7ee10762C1Ev),
+ NSPAIR(_ZN7ee10762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee10762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, 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 _ZTI7ee10762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10762[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee10762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee10762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee10762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee10762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee10762[] = {
+ {&(_ZTV7ee10762[4]), 4,17},
+ {&(_ZTV7ee10762[9]), 9,17},
+ {&(_ZTV7ee10762[15]), 15,17},
+ {&(_tg__ZTV6dd0762__7ee10762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee10762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee10762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee10762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10762[];
+extern VTBL_ENTRY _ZTV7ee10762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10762[];
+static VTBL_ENTRY alt_thunk_names1326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10762 = { "ee10762", // class name
+ bases_ee10762, 4,
+ &(vtc_ee10762[0]), // expected_vtbl_contents
+ &(vtt_ee10762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20762 : dd0762 {
+ int e;
+ virtual void foo(); // _ZN7ee207623fooEv
+ ~ee20762(); // tgen
+ ee20762(); // tgen
+};
+//SIG(1 ee20762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20762 ::foo(){vfunc_called(this, "_ZN7ee207623fooEv");}
+ee20762 ::~ee20762(){ note_dtor("ee20762", this);} // tgen
+ee20762 ::ee20762(){ note_ctor("ee20762", this);} // tgen
+
+static void Test_ee20762()
+{
+ extern Class_Descriptor cd_ee20762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20762, buf);
+ ee20762 *dp, &lv = *(dp=new (buf) ee20762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee20762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(24,16), "ee20762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), 0, "ee20762");
+ check_base_class_offset(lv, (dd0762*), 0, "ee20762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20762.e");
+ test_class_info(&lv, &cd_ee20762);
+ dp->~ee20762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20762(Test_ee20762, "ee20762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20762C1Ev();
+extern void _ZN7ee20762D1Ev();
+Name_Map name_map_ee20762[] = {
+ NSPAIR(_ZN7ee20762C1Ev),
+ NSPAIR(_ZN7ee20762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee20762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20762[];
+extern void _ZN7ee207623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207623fooEv,_ZTv0_n12_N7ee207623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207623fooEv,_ZThn16_N7ee207623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20762[0]),
+ (VTBL_ENTRY)&_ZN7ee207623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207623fooEv,_ZTv0_n12_N7ee207623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee20762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee20762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee20762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee20762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee20762[] = {
+ {&(_ZTV7ee20762[3]), 3,11},
+ {&(_tg__ZTV6dd0762__7ee20762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee20762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee20762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee20762[4]), 4,6},
+ {&(_ZTV7ee20762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20762[];
+extern VTBL_ENTRY _ZTV7ee20762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20762[];
+static VTBL_ENTRY alt_thunk_names1327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207623fooEv,_ZTv0_n12_N7ee207623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207623fooEv,_ZThn16_N7ee207623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20762 = { "ee20762", // class name
+ bases_ee20762, 4,
+ &(vtc_ee20762[0]), // expected_vtbl_contents
+ &(vtt_ee20762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30762 : virtual dd0762 {
+ int e;
+ virtual void foo(); // _ZN7ee307623fooEv
+ ~ee30762(); // tgen
+ ee30762(); // tgen
+};
+//SIG(1 ee30762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30762 ::foo(){vfunc_called(this, "_ZN7ee307623fooEv");}
+ee30762 ::~ee30762(){ note_dtor("ee30762", this);} // tgen
+ee30762 ::ee30762(){ note_ctor("ee30762", this);} // tgen
+
+static void Test_ee30762()
+{
+ extern Class_Descriptor cd_ee30762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30762, buf);
+ ee30762 *dp, &lv = *(dp=new (buf) ee30762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee30762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(32,20), "ee30762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), ABISELECT(16,8), "ee30762");
+ check_base_class_offset(lv, (dd0762*), ABISELECT(16,8), "ee30762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30762.e");
+ test_class_info(&lv, &cd_ee30762);
+ dp->~ee30762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30762(Test_ee30762, "ee30762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30762C1Ev();
+extern void _ZN7ee30762D1Ev();
+Name_Map name_map_ee30762[] = {
+ NSPAIR(_ZN7ee30762C1Ev),
+ NSPAIR(_ZN7ee30762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee30762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, ABISELECT(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 _ZTI7ee30762[];
+extern void _ZN7ee307623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307623fooEv,_ZTv0_n16_N7ee307623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307623fooEv,_ZThn8_N7ee307623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307623fooEv,_ZTv0_n12_N7ee307623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307623fooEv,_ZThn20_N7ee307623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30762[0]),
+ (VTBL_ENTRY)&_ZN7ee307623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307623fooEv,_ZTv0_n16_N7ee307623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307623fooEv,_ZTv0_n12_N7ee307623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee30762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee30762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee30762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee30762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee30762[] = {
+ {&(_ZTV7ee30762[4]), 4,18},
+ {&(_ZTV7ee30762[10]), 10,18},
+ {&(_ZTV7ee30762[16]), 16,18},
+ {&(_tg__ZTV6dd0762__7ee30762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee30762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee30762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee30762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30762[];
+extern VTBL_ENTRY _ZTV7ee30762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30762[];
+static VTBL_ENTRY alt_thunk_names1328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307623fooEv,_ZTv0_n12_N7ee307623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307623fooEv,_ZThn20_N7ee307623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307623fooEv,_ZTv0_n16_N7ee307623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307623fooEv,_ZThn8_N7ee307623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30762 = { "ee30762", // class name
+ bases_ee30762, 4,
+ &(vtc_ee30762[0]), // expected_vtbl_contents
+ &(vtt_ee30762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40762 : dd0762 {
+ int e;
+ virtual void bar(); // _ZN7ee407623barEv
+ ~ee40762(); // tgen
+ ee40762(); // tgen
+};
+//SIG(1 ee40762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40762 ::bar(){vfunc_called(this, "_ZN7ee407623barEv");}
+ee40762 ::~ee40762(){ note_dtor("ee40762", this);} // tgen
+ee40762 ::ee40762(){ note_ctor("ee40762", this);} // tgen
+
+static void Test_ee40762()
+{
+ extern Class_Descriptor cd_ee40762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40762, buf);
+ ee40762 *dp, &lv = *(dp=new (buf) ee40762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee40762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(24,16), "ee40762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), 0, "ee40762");
+ check_base_class_offset(lv, (dd0762*), 0, "ee40762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40762.e");
+ test_class_info(&lv, &cd_ee40762);
+ dp->~ee40762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40762(Test_ee40762, "ee40762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40762C1Ev();
+extern void _ZN7ee40762D1Ev();
+Name_Map name_map_ee40762[] = {
+ NSPAIR(_ZN7ee40762C1Ev),
+ NSPAIR(_ZN7ee40762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee40762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN7ee407623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee407623barEv,_ZTv0_n16_N7ee407623barEv)();
+extern void ABISELECT(_ZThn24_N7ee407623barEv,_ZThn16_N7ee407623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN7ee407623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407623barEv,_ZTv0_n16_N7ee407623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee40762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee40762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee40762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee40762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee40762[] = {
+ {&(_ZTV7ee40762[3]), 3,11},
+ {&(_tg__ZTV6dd0762__7ee40762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee40762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee40762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee40762[4]), 4,6},
+ {&(_ZTV7ee40762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40762[];
+extern VTBL_ENTRY _ZTV7ee40762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40762[];
+static VTBL_ENTRY alt_thunk_names1329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407623barEv,_ZTv0_n16_N7ee407623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407623barEv,_ZThn16_N7ee407623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40762 = { "ee40762", // class name
+ bases_ee40762, 4,
+ &(vtc_ee40762[0]), // expected_vtbl_contents
+ &(vtt_ee40762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50762 : virtual dd0762 {
+ int e;
+ virtual void bar(); // _ZN7ee507623barEv
+ ~ee50762(); // tgen
+ ee50762(); // tgen
+};
+//SIG(1 ee50762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50762 ::bar(){vfunc_called(this, "_ZN7ee507623barEv");}
+ee50762 ::~ee50762(){ note_dtor("ee50762", this);} // tgen
+ee50762 ::ee50762(){ note_ctor("ee50762", this);} // tgen
+
+static void Test_ee50762()
+{
+ extern Class_Descriptor cd_ee50762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50762, buf);
+ ee50762 *dp, &lv = *(dp=new (buf) ee50762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee50762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(32,20), "ee50762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), ABISELECT(16,8), "ee50762");
+ check_base_class_offset(lv, (dd0762*), ABISELECT(16,8), "ee50762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50762.e");
+ test_class_info(&lv, &cd_ee50762);
+ dp->~ee50762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50762(Test_ee50762, "ee50762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50762C1Ev();
+extern void _ZN7ee50762D1Ev();
+Name_Map name_map_ee50762[] = {
+ NSPAIR(_ZN7ee50762C1Ev),
+ NSPAIR(_ZN7ee50762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee50762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, ABISELECT(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 _ZTI7ee50762[];
+extern void _ZN7ee507623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507623barEv,_ZTv0_n20_N7ee507623barEv)();
+extern void ABISELECT(_ZThn16_N7ee507623barEv,_ZThn8_N7ee507623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507623barEv,_ZTv0_n16_N7ee507623barEv)();
+extern void ABISELECT(_ZThn32_N7ee507623barEv,_ZThn20_N7ee507623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50762[0]),
+ (VTBL_ENTRY)&_ZN7ee507623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507623barEv,_ZTv0_n20_N7ee507623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507623barEv,_ZTv0_n16_N7ee507623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee50762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee50762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee50762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee50762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee50762[] = {
+ {&(_ZTV7ee50762[4]), 4,18},
+ {&(_ZTV7ee50762[10]), 10,18},
+ {&(_ZTV7ee50762[16]), 16,18},
+ {&(_tg__ZTV6dd0762__7ee50762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee50762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee50762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee50762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50762[];
+extern VTBL_ENTRY _ZTV7ee50762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50762[];
+static VTBL_ENTRY alt_thunk_names1330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507623barEv,_ZTv0_n16_N7ee507623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507623barEv,_ZThn20_N7ee507623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507623barEv,_ZTv0_n20_N7ee507623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507623barEv,_ZThn8_N7ee507623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50762 = { "ee50762", // class name
+ bases_ee50762, 4,
+ &(vtc_ee50762[0]), // expected_vtbl_contents
+ &(vtt_ee50762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60762 : dd0762 {
+ int e;
+ virtual void foo(); // _ZN7ee607623fooEv
+ virtual void bar(); // _ZN7ee607623barEv
+ ~ee60762(); // tgen
+ ee60762(); // tgen
+};
+//SIG(1 ee60762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60762 ::foo(){vfunc_called(this, "_ZN7ee607623fooEv");}
+void ee60762 ::bar(){vfunc_called(this, "_ZN7ee607623barEv");}
+ee60762 ::~ee60762(){ note_dtor("ee60762", this);} // tgen
+ee60762 ::ee60762(){ note_ctor("ee60762", this);} // tgen
+
+static void Test_ee60762()
+{
+ extern Class_Descriptor cd_ee60762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60762, buf);
+ ee60762 *dp, &lv = *(dp=new (buf) ee60762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee60762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(24,16), "ee60762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), 0, "ee60762");
+ check_base_class_offset(lv, (dd0762*), 0, "ee60762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60762.e");
+ test_class_info(&lv, &cd_ee60762);
+ dp->~ee60762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60762(Test_ee60762, "ee60762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60762C1Ev();
+extern void _ZN7ee60762D1Ev();
+Name_Map name_map_ee60762[] = {
+ NSPAIR(_ZN7ee60762C1Ev),
+ NSPAIR(_ZN7ee60762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee60762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60762[];
+extern void _ZN7ee607623fooEv();
+extern void _ZN7ee607623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607623fooEv,_ZTv0_n12_N7ee607623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607623fooEv,_ZThn16_N7ee607623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607623barEv,_ZTv0_n16_N7ee607623barEv)();
+extern void ABISELECT(_ZThn24_N7ee607623barEv,_ZThn16_N7ee607623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60762[0]),
+ (VTBL_ENTRY)&_ZN7ee607623fooEv,
+ (VTBL_ENTRY)&_ZN7ee607623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607623fooEv,_ZTv0_n12_N7ee607623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607623barEv,_ZTv0_n16_N7ee607623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee60762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee60762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee60762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee60762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee60762[] = {
+ {&(_ZTV7ee60762[3]), 3,11},
+ {&(_tg__ZTV6dd0762__7ee60762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee60762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee60762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee60762[4]), 4,6},
+ {&(_ZTV7ee60762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60762[];
+extern VTBL_ENTRY _ZTV7ee60762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60762[];
+static VTBL_ENTRY alt_thunk_names1331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607623barEv,_ZTv0_n16_N7ee607623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607623barEv,_ZThn16_N7ee607623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607623fooEv,_ZTv0_n12_N7ee607623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607623fooEv,_ZThn16_N7ee607623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60762 = { "ee60762", // class name
+ bases_ee60762, 4,
+ &(vtc_ee60762[0]), // expected_vtbl_contents
+ &(vtt_ee60762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70762 : virtual dd0762 {
+ int e;
+ virtual void foo(); // _ZN7ee707623fooEv
+ virtual void bar(); // _ZN7ee707623barEv
+ ~ee70762(); // tgen
+ ee70762(); // tgen
+};
+//SIG(1 ee70762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70762 ::foo(){vfunc_called(this, "_ZN7ee707623fooEv");}
+void ee70762 ::bar(){vfunc_called(this, "_ZN7ee707623barEv");}
+ee70762 ::~ee70762(){ note_dtor("ee70762", this);} // tgen
+ee70762 ::ee70762(){ note_ctor("ee70762", this);} // tgen
+
+static void Test_ee70762()
+{
+ extern Class_Descriptor cd_ee70762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70762, buf);
+ ee70762 *dp, &lv = *(dp=new (buf) ee70762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee70762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd0762*), ABISELECT(32,20), "ee70762");
+ check_base_class_offset(lv, (cc762*)(dd0762*), ABISELECT(16,8), "ee70762");
+ check_base_class_offset(lv, (dd0762*), ABISELECT(16,8), "ee70762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70762.e");
+ test_class_info(&lv, &cd_ee70762);
+ dp->~ee70762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70762(Test_ee70762, "ee70762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70762C1Ev();
+extern void _ZN7ee70762D1Ev();
+Name_Map name_map_ee70762[] = {
+ NSPAIR(_ZN7ee70762C1Ev),
+ NSPAIR(_ZN7ee70762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd0762;
+extern VTBL_ENTRY _ZTI6dd0762[];
+extern VTBL_ENTRY _ZTV6dd0762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0762[];
+static Base_Class bases_ee70762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0762, ABISELECT(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 _ZTI7ee70762[];
+extern void _ZN7ee707623fooEv();
+extern void _ZN7ee707623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707623fooEv,_ZTv0_n16_N7ee707623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707623fooEv,_ZThn8_N7ee707623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707623barEv,_ZTv0_n20_N7ee707623barEv)();
+extern void ABISELECT(_ZThn16_N7ee707623barEv,_ZThn8_N7ee707623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707623fooEv,_ZTv0_n12_N7ee707623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707623fooEv,_ZThn20_N7ee707623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707623barEv,_ZTv0_n16_N7ee707623barEv)();
+extern void ABISELECT(_ZThn32_N7ee707623barEv,_ZThn20_N7ee707623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70762[0]),
+ (VTBL_ENTRY)&_ZN7ee707623fooEv,
+ (VTBL_ENTRY)&_ZN7ee707623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707623fooEv,_ZTv0_n16_N7ee707623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707623barEv,_ZTv0_n20_N7ee707623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707623fooEv,_ZTv0_n12_N7ee707623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707623barEv,_ZTv0_n16_N7ee707623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd0762__7ee70762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd0762__7ee70762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd0762__7ee70762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd0762__7ee70762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee70762[] = {
+ {&(_ZTV7ee70762[4]), 4,19},
+ {&(_ZTV7ee70762[11]), 11,19},
+ {&(_ZTV7ee70762[17]), 17,19},
+ {&(_tg__ZTV6dd0762__7ee70762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd0762__7ee70762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd0762__7ee70762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd0762__7ee70762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70762[];
+extern VTBL_ENTRY _ZTV7ee70762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70762[];
+static VTBL_ENTRY alt_thunk_names1332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707623barEv,_ZTv0_n16_N7ee707623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707623barEv,_ZThn20_N7ee707623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707623fooEv,_ZTv0_n12_N7ee707623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707623fooEv,_ZThn20_N7ee707623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707623barEv,_ZTv0_n20_N7ee707623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707623barEv,_ZThn8_N7ee707623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707623fooEv,_ZTv0_n16_N7ee707623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707623fooEv,_ZThn8_N7ee707623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70762 = { "ee70762", // class name
+ bases_ee70762, 4,
+ &(vtc_ee70762[0]), // expected_vtbl_contents
+ &(vtt_ee70762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1762 : virtual cc762 {
+ int d;
+ ~dd1762(); // tgen
+ dd1762(); // tgen
+};
+//SIG(-1 dd1762) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1762 ::~dd1762(){ note_dtor("dd1762", this);} // tgen
+dd1762 ::dd1762(){ note_ctor("dd1762", this);} // tgen
+
+static void Test_dd1762()
+{
+ extern Class_Descriptor cd_dd1762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1762, buf);
+ dd1762 *dp, &lv = *(dp=new (buf) dd1762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd1762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,16), "dd1762");
+ check_base_class_offset(lv, (cc762*), ABISELECT(16,8), "dd1762");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1762.d");
+ test_class_info(&lv, &cd_dd1762);
+ dp->~dd1762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1762(Test_dd1762, "dd1762", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1762C1Ev();
+extern void _ZN6dd1762D1Ev();
+Name_Map name_map_dd1762[] = {
+ NSPAIR(_ZN6dd1762C1Ev),
+ NSPAIR(_ZN6dd1762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd1762[] = {
+ // 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_bb62, 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_cc762, 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 _ZTI6dd1762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd1762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd1762[] = {
+ {&(_ZTV6dd1762[4]), 4,17},
+ {&(_ZTV6dd1762[9]), 9,17},
+ {&(_ZTV6dd1762[15]), 15,17},
+ {&(_tg__ZTV5cc762__6dd1762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd1762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static VTBL_ENTRY alt_thunk_names1333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1762 = { "dd1762", // class name
+ bases_dd1762, 3,
+ &(vtc_dd1762[0]), // expected_vtbl_contents
+ &(vtt_dd1762[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1762),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01762 : dd1762 {
+ int e;
+ ~ee01762(); // tgen
+ ee01762(); // tgen
+};
+//SIG(1 ee01762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01762 ::~ee01762(){ note_dtor("ee01762", this);} // tgen
+ee01762 ::ee01762(){ note_ctor("ee01762", this);} // tgen
+
+static void Test_ee01762()
+{
+ extern Class_Descriptor cd_ee01762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01762, buf);
+ ee01762 *dp, &lv = *(dp=new (buf) ee01762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee01762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee01762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(16,12), "ee01762");
+ check_base_class_offset(lv, (dd1762*), 0, "ee01762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01762.e");
+ test_class_info(&lv, &cd_ee01762);
+ dp->~ee01762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01762(Test_ee01762, "ee01762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01762C1Ev();
+extern void _ZN7ee01762D1Ev();
+Name_Map name_map_ee01762[] = {
+ NSPAIR(_ZN7ee01762C1Ev),
+ NSPAIR(_ZN7ee01762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee01762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01762[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee01762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee01762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee01762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee01762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee01762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee01762[] = {
+ {&(_ZTV7ee01762[4]), 4,17},
+ {&(_tg__ZTV6dd1762__7ee01762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee01762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee01762[4]), 4,6},
+ {&(_ZTV7ee01762[9]), 9,17},
+ {&(_ZTV7ee01762[15]), 15,17},
+ {&(_tg__ZTV5cc762__7ee01762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee01762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01762[];
+extern VTBL_ENTRY _ZTV7ee01762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01762[];
+static VTBL_ENTRY alt_thunk_names1334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01762 = { "ee01762", // class name
+ bases_ee01762, 4,
+ &(vtc_ee01762[0]), // expected_vtbl_contents
+ &(vtt_ee01762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11762 : virtual dd1762 {
+ int e;
+ ~ee11762(); // tgen
+ ee11762(); // tgen
+};
+//SIG(1 ee11762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11762 ::~ee11762(){ note_dtor("ee11762", this);} // tgen
+ee11762 ::ee11762(){ note_ctor("ee11762", this);} // tgen
+
+static void Test_ee11762()
+{
+ extern Class_Descriptor cd_ee11762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11762, buf);
+ ee11762 *dp, &lv = *(dp=new (buf) ee11762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee11762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee11762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(32,16), "ee11762");
+ check_base_class_offset(lv, (dd1762*), ABISELECT(16,8), "ee11762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11762.e");
+ test_class_info(&lv, &cd_ee11762);
+ dp->~ee11762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11762(Test_ee11762, "ee11762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11762C1Ev();
+extern void _ZN7ee11762D1Ev();
+Name_Map name_map_ee11762[] = {
+ NSPAIR(_ZN7ee11762C1Ev),
+ NSPAIR(_ZN7ee11762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee11762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, ABISELECT(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 _ZTI7ee11762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11762[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11762[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee11762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee11762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee11762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee11762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee11762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee11762[] = {
+ {&(_ZTV7ee11762[5]), 5,22},
+ {&(_ZTV7ee11762[9]), 9,22},
+ {&(_ZTV7ee11762[14]), 14,22},
+ {&(_ZTV7ee11762[20]), 20,22},
+ {&(_tg__ZTV6dd1762__7ee11762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee11762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee11762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee11762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee11762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11762[];
+extern VTBL_ENTRY _ZTV7ee11762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11762[];
+static VTBL_ENTRY alt_thunk_names1335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11762 = { "ee11762", // class name
+ bases_ee11762, 4,
+ &(vtc_ee11762[0]), // expected_vtbl_contents
+ &(vtt_ee11762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11762),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21762 : dd1762 {
+ int e;
+ virtual void foo(); // _ZN7ee217623fooEv
+ ~ee21762(); // tgen
+ ee21762(); // tgen
+};
+//SIG(1 ee21762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21762 ::foo(){vfunc_called(this, "_ZN7ee217623fooEv");}
+ee21762 ::~ee21762(){ note_dtor("ee21762", this);} // tgen
+ee21762 ::ee21762(){ note_ctor("ee21762", this);} // tgen
+
+static void Test_ee21762()
+{
+ extern Class_Descriptor cd_ee21762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21762, buf);
+ ee21762 *dp, &lv = *(dp=new (buf) ee21762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee21762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee21762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(16,12), "ee21762");
+ check_base_class_offset(lv, (dd1762*), 0, "ee21762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21762.e");
+ test_class_info(&lv, &cd_ee21762);
+ dp->~ee21762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21762(Test_ee21762, "ee21762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21762C1Ev();
+extern void _ZN7ee21762D1Ev();
+Name_Map name_map_ee21762[] = {
+ NSPAIR(_ZN7ee21762C1Ev),
+ NSPAIR(_ZN7ee21762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee21762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21762[];
+extern void _ZN7ee217623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217623fooEv,_ZTv0_n16_N7ee217623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217623fooEv,_ZThn12_N7ee217623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217623fooEv,_ZTv0_n12_N7ee217623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217623fooEv,_ZThn20_N7ee217623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21762[0]),
+ (VTBL_ENTRY)&_ZN7ee217623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217623fooEv,_ZTv0_n16_N7ee217623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217623fooEv,_ZTv0_n12_N7ee217623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee21762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee21762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee21762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee21762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee21762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee21762[] = {
+ {&(_ZTV7ee21762[4]), 4,18},
+ {&(_tg__ZTV6dd1762__7ee21762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee21762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee21762[4]), 4,6},
+ {&(_ZTV7ee21762[10]), 10,18},
+ {&(_ZTV7ee21762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee21762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee21762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21762[];
+extern VTBL_ENTRY _ZTV7ee21762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21762[];
+static VTBL_ENTRY alt_thunk_names1336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217623fooEv,_ZTv0_n12_N7ee217623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217623fooEv,_ZThn20_N7ee217623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217623fooEv,_ZTv0_n16_N7ee217623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217623fooEv,_ZThn12_N7ee217623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21762 = { "ee21762", // class name
+ bases_ee21762, 4,
+ &(vtc_ee21762[0]), // expected_vtbl_contents
+ &(vtt_ee21762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31762 : virtual dd1762 {
+ int e;
+ virtual void foo(); // _ZN7ee317623fooEv
+ ~ee31762(); // tgen
+ ee31762(); // tgen
+};
+//SIG(1 ee31762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31762 ::foo(){vfunc_called(this, "_ZN7ee317623fooEv");}
+ee31762 ::~ee31762(){ note_dtor("ee31762", this);} // tgen
+ee31762 ::ee31762(){ note_ctor("ee31762", this);} // tgen
+
+static void Test_ee31762()
+{
+ extern Class_Descriptor cd_ee31762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31762, buf);
+ ee31762 *dp, &lv = *(dp=new (buf) ee31762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee31762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee31762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(32,16), "ee31762");
+ check_base_class_offset(lv, (dd1762*), ABISELECT(16,8), "ee31762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31762.e");
+ test_class_info(&lv, &cd_ee31762);
+ dp->~ee31762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31762(Test_ee31762, "ee31762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31762C1Ev();
+extern void _ZN7ee31762D1Ev();
+Name_Map name_map_ee31762[] = {
+ NSPAIR(_ZN7ee31762C1Ev),
+ NSPAIR(_ZN7ee31762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee31762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 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 _ZTI7ee31762[];
+extern void _ZN7ee317623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317623fooEv,_ZTv0_n16_N7ee317623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317623fooEv,_ZThn16_N7ee317623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317623fooEv,_ZTv0_n12_N7ee317623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317623fooEv,_ZThn24_N7ee317623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31762[0]),
+ (VTBL_ENTRY)&_ZN7ee317623fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31762[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317623fooEv,_ZTv0_n16_N7ee317623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317623fooEv,_ZTv0_n12_N7ee317623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee31762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee31762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee31762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee31762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee31762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee31762[] = {
+ {&(_ZTV7ee31762[5]), 5,23},
+ {&(_ZTV7ee31762[10]), 10,23},
+ {&(_ZTV7ee31762[15]), 15,23},
+ {&(_ZTV7ee31762[21]), 21,23},
+ {&(_tg__ZTV6dd1762__7ee31762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee31762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee31762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee31762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee31762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31762[];
+extern VTBL_ENTRY _ZTV7ee31762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31762[];
+static VTBL_ENTRY alt_thunk_names1337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317623fooEv,_ZTv0_n12_N7ee317623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317623fooEv,_ZThn24_N7ee317623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317623fooEv,_ZTv0_n16_N7ee317623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317623fooEv,_ZThn16_N7ee317623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31762 = { "ee31762", // class name
+ bases_ee31762, 4,
+ &(vtc_ee31762[0]), // expected_vtbl_contents
+ &(vtt_ee31762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31762),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41762 : dd1762 {
+ int e;
+ virtual void bar(); // _ZN7ee417623barEv
+ ~ee41762(); // tgen
+ ee41762(); // tgen
+};
+//SIG(1 ee41762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41762 ::bar(){vfunc_called(this, "_ZN7ee417623barEv");}
+ee41762 ::~ee41762(){ note_dtor("ee41762", this);} // tgen
+ee41762 ::ee41762(){ note_ctor("ee41762", this);} // tgen
+
+static void Test_ee41762()
+{
+ extern Class_Descriptor cd_ee41762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41762, buf);
+ ee41762 *dp, &lv = *(dp=new (buf) ee41762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee41762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee41762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(16,12), "ee41762");
+ check_base_class_offset(lv, (dd1762*), 0, "ee41762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41762.e");
+ test_class_info(&lv, &cd_ee41762);
+ dp->~ee41762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41762(Test_ee41762, "ee41762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41762C1Ev();
+extern void _ZN7ee41762D1Ev();
+Name_Map name_map_ee41762[] = {
+ NSPAIR(_ZN7ee41762C1Ev),
+ NSPAIR(_ZN7ee41762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee41762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41762[];
+extern void _ZN7ee417623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417623barEv,_ZTv0_n20_N7ee417623barEv)();
+extern void ABISELECT(_ZThn16_N7ee417623barEv,_ZThn12_N7ee417623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417623barEv,_ZTv0_n16_N7ee417623barEv)();
+extern void ABISELECT(_ZThn32_N7ee417623barEv,_ZThn20_N7ee417623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41762[0]),
+ (VTBL_ENTRY)&_ZN7ee417623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417623barEv,_ZTv0_n20_N7ee417623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417623barEv,_ZTv0_n16_N7ee417623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee41762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee41762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee41762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee41762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee41762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee41762[] = {
+ {&(_ZTV7ee41762[4]), 4,18},
+ {&(_tg__ZTV6dd1762__7ee41762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee41762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee41762[4]), 4,6},
+ {&(_ZTV7ee41762[10]), 10,18},
+ {&(_ZTV7ee41762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee41762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee41762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41762[];
+extern VTBL_ENTRY _ZTV7ee41762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41762[];
+static VTBL_ENTRY alt_thunk_names1338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417623barEv,_ZTv0_n16_N7ee417623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417623barEv,_ZThn20_N7ee417623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417623barEv,_ZTv0_n20_N7ee417623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417623barEv,_ZThn12_N7ee417623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41762 = { "ee41762", // class name
+ bases_ee41762, 4,
+ &(vtc_ee41762[0]), // expected_vtbl_contents
+ &(vtt_ee41762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51762 : virtual dd1762 {
+ int e;
+ virtual void bar(); // _ZN7ee517623barEv
+ ~ee51762(); // tgen
+ ee51762(); // tgen
+};
+//SIG(1 ee51762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51762 ::bar(){vfunc_called(this, "_ZN7ee517623barEv");}
+ee51762 ::~ee51762(){ note_dtor("ee51762", this);} // tgen
+ee51762 ::ee51762(){ note_ctor("ee51762", this);} // tgen
+
+static void Test_ee51762()
+{
+ extern Class_Descriptor cd_ee51762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51762, buf);
+ ee51762 *dp, &lv = *(dp=new (buf) ee51762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee51762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee51762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(32,16), "ee51762");
+ check_base_class_offset(lv, (dd1762*), ABISELECT(16,8), "ee51762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51762.e");
+ test_class_info(&lv, &cd_ee51762);
+ dp->~ee51762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51762(Test_ee51762, "ee51762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51762C1Ev();
+extern void _ZN7ee51762D1Ev();
+Name_Map name_map_ee51762[] = {
+ NSPAIR(_ZN7ee51762C1Ev),
+ NSPAIR(_ZN7ee51762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee51762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 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 _ZTI7ee51762[];
+extern void _ZN7ee517623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517623barEv,_ZTv0_n20_N7ee517623barEv)();
+extern void ABISELECT(_ZThn32_N7ee517623barEv,_ZThn16_N7ee517623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517623barEv,_ZTv0_n16_N7ee517623barEv)();
+extern void ABISELECT(_ZThn48_N7ee517623barEv,_ZThn24_N7ee517623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51762[0]),
+ (VTBL_ENTRY)&_ZN7ee517623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51762[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517623barEv,_ZTv0_n20_N7ee517623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517623barEv,_ZTv0_n16_N7ee517623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee51762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee51762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee51762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee51762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee51762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee51762[] = {
+ {&(_ZTV7ee51762[5]), 5,23},
+ {&(_ZTV7ee51762[10]), 10,23},
+ {&(_ZTV7ee51762[15]), 15,23},
+ {&(_ZTV7ee51762[21]), 21,23},
+ {&(_tg__ZTV6dd1762__7ee51762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee51762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee51762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee51762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee51762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51762[];
+extern VTBL_ENTRY _ZTV7ee51762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51762[];
+static VTBL_ENTRY alt_thunk_names1339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517623barEv,_ZTv0_n16_N7ee517623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517623barEv,_ZThn24_N7ee517623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517623barEv,_ZTv0_n20_N7ee517623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517623barEv,_ZThn16_N7ee517623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51762 = { "ee51762", // class name
+ bases_ee51762, 4,
+ &(vtc_ee51762[0]), // expected_vtbl_contents
+ &(vtt_ee51762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51762),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61762 : dd1762 {
+ int e;
+ virtual void foo(); // _ZN7ee617623fooEv
+ virtual void bar(); // _ZN7ee617623barEv
+ ~ee61762(); // tgen
+ ee61762(); // tgen
+};
+//SIG(1 ee61762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61762 ::foo(){vfunc_called(this, "_ZN7ee617623fooEv");}
+void ee61762 ::bar(){vfunc_called(this, "_ZN7ee617623barEv");}
+ee61762 ::~ee61762(){ note_dtor("ee61762", this);} // tgen
+ee61762 ::ee61762(){ note_ctor("ee61762", this);} // tgen
+
+static void Test_ee61762()
+{
+ extern Class_Descriptor cd_ee61762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61762, buf);
+ ee61762 *dp, &lv = *(dp=new (buf) ee61762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee61762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee61762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(16,12), "ee61762");
+ check_base_class_offset(lv, (dd1762*), 0, "ee61762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61762.e");
+ test_class_info(&lv, &cd_ee61762);
+ dp->~ee61762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61762(Test_ee61762, "ee61762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61762C1Ev();
+extern void _ZN7ee61762D1Ev();
+Name_Map name_map_ee61762[] = {
+ NSPAIR(_ZN7ee61762C1Ev),
+ NSPAIR(_ZN7ee61762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee61762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61762[];
+extern void _ZN7ee617623fooEv();
+extern void _ZN7ee617623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617623fooEv,_ZTv0_n16_N7ee617623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617623fooEv,_ZThn12_N7ee617623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617623barEv,_ZTv0_n20_N7ee617623barEv)();
+extern void ABISELECT(_ZThn16_N7ee617623barEv,_ZThn12_N7ee617623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617623fooEv,_ZTv0_n12_N7ee617623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617623fooEv,_ZThn20_N7ee617623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617623barEv,_ZTv0_n16_N7ee617623barEv)();
+extern void ABISELECT(_ZThn32_N7ee617623barEv,_ZThn20_N7ee617623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61762[0]),
+ (VTBL_ENTRY)&_ZN7ee617623fooEv,
+ (VTBL_ENTRY)&_ZN7ee617623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617623fooEv,_ZTv0_n16_N7ee617623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617623barEv,_ZTv0_n20_N7ee617623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617623fooEv,_ZTv0_n12_N7ee617623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617623barEv,_ZTv0_n16_N7ee617623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee61762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee61762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee61762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee61762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee61762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee61762[] = {
+ {&(_ZTV7ee61762[4]), 4,19},
+ {&(_tg__ZTV6dd1762__7ee61762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee61762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee61762[4]), 4,6},
+ {&(_ZTV7ee61762[11]), 11,19},
+ {&(_ZTV7ee61762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee61762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee61762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61762[];
+extern VTBL_ENTRY _ZTV7ee61762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61762[];
+static VTBL_ENTRY alt_thunk_names1340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617623barEv,_ZTv0_n16_N7ee617623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617623barEv,_ZThn20_N7ee617623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617623fooEv,_ZTv0_n12_N7ee617623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617623fooEv,_ZThn20_N7ee617623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617623barEv,_ZTv0_n20_N7ee617623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617623barEv,_ZThn12_N7ee617623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617623fooEv,_ZTv0_n16_N7ee617623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617623fooEv,_ZThn12_N7ee617623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61762 = { "ee61762", // class name
+ bases_ee61762, 4,
+ &(vtc_ee61762[0]), // expected_vtbl_contents
+ &(vtt_ee61762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1340,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71762 : virtual dd1762 {
+ int e;
+ virtual void foo(); // _ZN7ee717623fooEv
+ virtual void bar(); // _ZN7ee717623barEv
+ ~ee71762(); // tgen
+ ee71762(); // tgen
+};
+//SIG(1 ee71762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71762 ::foo(){vfunc_called(this, "_ZN7ee717623fooEv");}
+void ee71762 ::bar(){vfunc_called(this, "_ZN7ee717623barEv");}
+ee71762 ::~ee71762(){ note_dtor("ee71762", this);} // tgen
+ee71762 ::ee71762(){ note_ctor("ee71762", this);} // tgen
+
+static void Test_ee71762()
+{
+ extern Class_Descriptor cd_ee71762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71762, buf);
+ ee71762 *dp, &lv = *(dp=new (buf) ee71762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee71762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee71762");
+ check_base_class_offset(lv, (cc762*)(dd1762*), ABISELECT(32,16), "ee71762");
+ check_base_class_offset(lv, (dd1762*), ABISELECT(16,8), "ee71762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71762.e");
+ test_class_info(&lv, &cd_ee71762);
+ dp->~ee71762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71762(Test_ee71762, "ee71762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71762C1Ev();
+extern void _ZN7ee71762D1Ev();
+Name_Map name_map_ee71762[] = {
+ NSPAIR(_ZN7ee71762C1Ev),
+ NSPAIR(_ZN7ee71762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd1762;
+extern VTBL_ENTRY _ZTI6dd1762[];
+extern VTBL_ENTRY _ZTV6dd1762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1762[];
+static Base_Class bases_ee71762[] = {
+ // 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_bb62, 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_cc762, 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_dd1762, 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 _ZTI7ee71762[];
+extern void _ZN7ee717623fooEv();
+extern void _ZN7ee717623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717623fooEv,_ZTv0_n16_N7ee717623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717623fooEv,_ZThn16_N7ee717623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717623barEv,_ZTv0_n20_N7ee717623barEv)();
+extern void ABISELECT(_ZThn32_N7ee717623barEv,_ZThn16_N7ee717623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717623fooEv,_ZTv0_n12_N7ee717623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717623fooEv,_ZThn24_N7ee717623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717623barEv,_ZTv0_n16_N7ee717623barEv)();
+extern void ABISELECT(_ZThn48_N7ee717623barEv,_ZThn24_N7ee717623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71762[0]),
+ (VTBL_ENTRY)&_ZN7ee717623fooEv,
+ (VTBL_ENTRY)&_ZN7ee717623barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71762[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717623fooEv,_ZTv0_n16_N7ee717623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717623barEv,_ZTv0_n20_N7ee717623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717623fooEv,_ZTv0_n12_N7ee717623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717623barEv,_ZTv0_n16_N7ee717623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71762[];
+static VTBL_ENTRY _tg__ZTV6dd1762__7ee71762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd1762__7ee71762[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd1762__7ee71762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee71762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee71762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee71762[] = {
+ {&(_ZTV7ee71762[5]), 5,24},
+ {&(_ZTV7ee71762[11]), 11,24},
+ {&(_ZTV7ee71762[16]), 16,24},
+ {&(_ZTV7ee71762[22]), 22,24},
+ {&(_tg__ZTV6dd1762__7ee71762[4]), 4,4},
+ {&(_tg__ZTV5cc762__6dd1762__7ee71762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd1762__7ee71762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee71762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee71762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71762[];
+extern VTBL_ENTRY _ZTV7ee71762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71762[];
+static VTBL_ENTRY alt_thunk_names1341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717623barEv,_ZTv0_n16_N7ee717623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717623barEv,_ZThn24_N7ee717623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717623fooEv,_ZTv0_n12_N7ee717623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717623fooEv,_ZThn24_N7ee717623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717623barEv,_ZTv0_n20_N7ee717623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717623barEv,_ZThn16_N7ee717623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717623fooEv,_ZTv0_n16_N7ee717623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717623fooEv,_ZThn16_N7ee717623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71762 = { "ee71762", // class name
+ bases_ee71762, 4,
+ &(vtc_ee71762[0]), // expected_vtbl_contents
+ &(vtt_ee71762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71762),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2762 : cc762 {
+ int d;
+ virtual void foo(); // _ZN6dd27623fooEv
+ ~dd2762(); // tgen
+ dd2762(); // tgen
+};
+//SIG(-1 dd2762) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2762 ::foo(){vfunc_called(this, "_ZN6dd27623fooEv");}
+dd2762 ::~dd2762(){ note_dtor("dd2762", this);} // tgen
+dd2762 ::dd2762(){ note_ctor("dd2762", this);} // tgen
+
+static void Test_dd2762()
+{
+ extern Class_Descriptor cd_dd2762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2762, buf);
+ dd2762 *dp, &lv = *(dp=new (buf) dd2762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd2762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(16,12), "dd2762");
+ check_base_class_offset(lv, (cc762*), 0, "dd2762");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2762.d");
+ test_class_info(&lv, &cd_dd2762);
+ dp->~dd2762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2762(Test_dd2762, "dd2762", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2762C1Ev();
+extern void _ZN6dd2762D1Ev();
+Name_Map name_map_dd2762[] = {
+ NSPAIR(_ZN6dd2762C1Ev),
+ NSPAIR(_ZN6dd2762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd2762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd2762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd2762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd2762[] = {
+ {&(_ZTV6dd2762[3]), 3,11},
+ {&(_tg__ZTV5cc762__6dd2762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd2762[4]), 4,6},
+ {&(_ZTV6dd2762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static VTBL_ENTRY alt_thunk_names1342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2762 = { "dd2762", // class name
+ bases_dd2762, 3,
+ &(vtc_dd2762[0]), // expected_vtbl_contents
+ &(vtt_dd2762[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2762),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02762 : dd2762 {
+ int e;
+ ~ee02762(); // tgen
+ ee02762(); // tgen
+};
+//SIG(1 ee02762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02762 ::~ee02762(){ note_dtor("ee02762", this);} // tgen
+ee02762 ::ee02762(){ note_ctor("ee02762", this);} // tgen
+
+static void Test_ee02762()
+{
+ extern Class_Descriptor cd_ee02762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02762, buf);
+ ee02762 *dp, &lv = *(dp=new (buf) ee02762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee02762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(24,16), "ee02762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), 0, "ee02762");
+ check_base_class_offset(lv, (dd2762*), 0, "ee02762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02762.e");
+ test_class_info(&lv, &cd_ee02762);
+ dp->~ee02762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02762(Test_ee02762, "ee02762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02762C1Ev();
+extern void _ZN7ee02762D1Ev();
+Name_Map name_map_ee02762[] = {
+ NSPAIR(_ZN7ee02762C1Ev),
+ NSPAIR(_ZN7ee02762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee02762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee02762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee02762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee02762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee02762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee02762[] = {
+ {&(_ZTV7ee02762[3]), 3,11},
+ {&(_tg__ZTV6dd2762__7ee02762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee02762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee02762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee02762[4]), 4,6},
+ {&(_ZTV7ee02762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02762[];
+extern VTBL_ENTRY _ZTV7ee02762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02762[];
+static VTBL_ENTRY alt_thunk_names1343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02762 = { "ee02762", // class name
+ bases_ee02762, 4,
+ &(vtc_ee02762[0]), // expected_vtbl_contents
+ &(vtt_ee02762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12762 : virtual dd2762 {
+ int e;
+ ~ee12762(); // tgen
+ ee12762(); // tgen
+};
+//SIG(1 ee12762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12762 ::~ee12762(){ note_dtor("ee12762", this);} // tgen
+ee12762 ::ee12762(){ note_ctor("ee12762", this);} // tgen
+
+static void Test_ee12762()
+{
+ extern Class_Descriptor cd_ee12762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12762, buf);
+ ee12762 *dp, &lv = *(dp=new (buf) ee12762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee12762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(32,20), "ee12762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), ABISELECT(16,8), "ee12762");
+ check_base_class_offset(lv, (dd2762*), ABISELECT(16,8), "ee12762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12762.e");
+ test_class_info(&lv, &cd_ee12762);
+ dp->~ee12762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12762(Test_ee12762, "ee12762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12762C1Ev();
+extern void _ZN7ee12762D1Ev();
+Name_Map name_map_ee12762[] = {
+ NSPAIR(_ZN7ee12762C1Ev),
+ NSPAIR(_ZN7ee12762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee12762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, 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 _ZTI7ee12762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12762[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee12762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee12762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee12762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee12762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee12762[] = {
+ {&(_ZTV7ee12762[4]), 4,17},
+ {&(_ZTV7ee12762[9]), 9,17},
+ {&(_ZTV7ee12762[15]), 15,17},
+ {&(_tg__ZTV6dd2762__7ee12762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee12762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee12762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee12762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12762[];
+extern VTBL_ENTRY _ZTV7ee12762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12762[];
+static VTBL_ENTRY alt_thunk_names1344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12762 = { "ee12762", // class name
+ bases_ee12762, 4,
+ &(vtc_ee12762[0]), // expected_vtbl_contents
+ &(vtt_ee12762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22762 : dd2762 {
+ int e;
+ virtual void foo(); // _ZN7ee227623fooEv
+ ~ee22762(); // tgen
+ ee22762(); // tgen
+};
+//SIG(1 ee22762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22762 ::foo(){vfunc_called(this, "_ZN7ee227623fooEv");}
+ee22762 ::~ee22762(){ note_dtor("ee22762", this);} // tgen
+ee22762 ::ee22762(){ note_ctor("ee22762", this);} // tgen
+
+static void Test_ee22762()
+{
+ extern Class_Descriptor cd_ee22762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22762, buf);
+ ee22762 *dp, &lv = *(dp=new (buf) ee22762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee22762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(24,16), "ee22762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), 0, "ee22762");
+ check_base_class_offset(lv, (dd2762*), 0, "ee22762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22762.e");
+ test_class_info(&lv, &cd_ee22762);
+ dp->~ee22762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22762(Test_ee22762, "ee22762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22762C1Ev();
+extern void _ZN7ee22762D1Ev();
+Name_Map name_map_ee22762[] = {
+ NSPAIR(_ZN7ee22762C1Ev),
+ NSPAIR(_ZN7ee22762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee22762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22762[];
+extern void _ZN7ee227623fooEv();
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227623fooEv,_ZTv0_n12_N7ee227623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227623fooEv,_ZThn16_N7ee227623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22762[0]),
+ (VTBL_ENTRY)&_ZN7ee227623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227623fooEv,_ZTv0_n12_N7ee227623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee22762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee22762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee22762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee22762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee22762[] = {
+ {&(_ZTV7ee22762[3]), 3,11},
+ {&(_tg__ZTV6dd2762__7ee22762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee22762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee22762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee22762[4]), 4,6},
+ {&(_ZTV7ee22762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22762[];
+extern VTBL_ENTRY _ZTV7ee22762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22762[];
+static VTBL_ENTRY alt_thunk_names1345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227623fooEv,_ZTv0_n12_N7ee227623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227623fooEv,_ZThn16_N7ee227623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22762 = { "ee22762", // class name
+ bases_ee22762, 4,
+ &(vtc_ee22762[0]), // expected_vtbl_contents
+ &(vtt_ee22762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32762 : virtual dd2762 {
+ int e;
+ virtual void foo(); // _ZN7ee327623fooEv
+ ~ee32762(); // tgen
+ ee32762(); // tgen
+};
+//SIG(1 ee32762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32762 ::foo(){vfunc_called(this, "_ZN7ee327623fooEv");}
+ee32762 ::~ee32762(){ note_dtor("ee32762", this);} // tgen
+ee32762 ::ee32762(){ note_ctor("ee32762", this);} // tgen
+
+static void Test_ee32762()
+{
+ extern Class_Descriptor cd_ee32762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32762, buf);
+ ee32762 *dp, &lv = *(dp=new (buf) ee32762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee32762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(32,20), "ee32762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), ABISELECT(16,8), "ee32762");
+ check_base_class_offset(lv, (dd2762*), ABISELECT(16,8), "ee32762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32762.e");
+ test_class_info(&lv, &cd_ee32762);
+ dp->~ee32762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32762(Test_ee32762, "ee32762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32762C1Ev();
+extern void _ZN7ee32762D1Ev();
+Name_Map name_map_ee32762[] = {
+ NSPAIR(_ZN7ee32762C1Ev),
+ NSPAIR(_ZN7ee32762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee32762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, ABISELECT(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 _ZTI7ee32762[];
+extern void _ZN7ee327623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327623fooEv,_ZTv0_n16_N7ee327623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327623fooEv,_ZThn8_N7ee327623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327623fooEv,_ZTv0_n12_N7ee327623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327623fooEv,_ZThn20_N7ee327623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32762[0]),
+ (VTBL_ENTRY)&_ZN7ee327623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327623fooEv,_ZTv0_n16_N7ee327623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327623fooEv,_ZTv0_n12_N7ee327623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee32762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee32762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee32762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee32762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee32762[] = {
+ {&(_ZTV7ee32762[4]), 4,18},
+ {&(_ZTV7ee32762[10]), 10,18},
+ {&(_ZTV7ee32762[16]), 16,18},
+ {&(_tg__ZTV6dd2762__7ee32762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee32762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee32762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee32762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32762[];
+extern VTBL_ENTRY _ZTV7ee32762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32762[];
+static VTBL_ENTRY alt_thunk_names1346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327623fooEv,_ZTv0_n12_N7ee327623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327623fooEv,_ZThn20_N7ee327623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327623fooEv,_ZTv0_n16_N7ee327623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327623fooEv,_ZThn8_N7ee327623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32762 = { "ee32762", // class name
+ bases_ee32762, 4,
+ &(vtc_ee32762[0]), // expected_vtbl_contents
+ &(vtt_ee32762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42762 : dd2762 {
+ int e;
+ virtual void bar(); // _ZN7ee427623barEv
+ ~ee42762(); // tgen
+ ee42762(); // tgen
+};
+//SIG(1 ee42762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42762 ::bar(){vfunc_called(this, "_ZN7ee427623barEv");}
+ee42762 ::~ee42762(){ note_dtor("ee42762", this);} // tgen
+ee42762 ::ee42762(){ note_ctor("ee42762", this);} // tgen
+
+static void Test_ee42762()
+{
+ extern Class_Descriptor cd_ee42762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42762, buf);
+ ee42762 *dp, &lv = *(dp=new (buf) ee42762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee42762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(24,16), "ee42762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), 0, "ee42762");
+ check_base_class_offset(lv, (dd2762*), 0, "ee42762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42762.e");
+ test_class_info(&lv, &cd_ee42762);
+ dp->~ee42762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42762(Test_ee42762, "ee42762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42762C1Ev();
+extern void _ZN7ee42762D1Ev();
+Name_Map name_map_ee42762[] = {
+ NSPAIR(_ZN7ee42762C1Ev),
+ NSPAIR(_ZN7ee42762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee42762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN7ee427623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee427623barEv,_ZTv0_n16_N7ee427623barEv)();
+extern void ABISELECT(_ZThn24_N7ee427623barEv,_ZThn16_N7ee427623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN7ee427623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427623barEv,_ZTv0_n16_N7ee427623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee42762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee42762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee42762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee42762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee42762[] = {
+ {&(_ZTV7ee42762[3]), 3,11},
+ {&(_tg__ZTV6dd2762__7ee42762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee42762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee42762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee42762[4]), 4,6},
+ {&(_ZTV7ee42762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42762[];
+extern VTBL_ENTRY _ZTV7ee42762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42762[];
+static VTBL_ENTRY alt_thunk_names1347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427623barEv,_ZTv0_n16_N7ee427623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427623barEv,_ZThn16_N7ee427623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42762 = { "ee42762", // class name
+ bases_ee42762, 4,
+ &(vtc_ee42762[0]), // expected_vtbl_contents
+ &(vtt_ee42762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52762 : virtual dd2762 {
+ int e;
+ virtual void bar(); // _ZN7ee527623barEv
+ ~ee52762(); // tgen
+ ee52762(); // tgen
+};
+//SIG(1 ee52762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52762 ::bar(){vfunc_called(this, "_ZN7ee527623barEv");}
+ee52762 ::~ee52762(){ note_dtor("ee52762", this);} // tgen
+ee52762 ::ee52762(){ note_ctor("ee52762", this);} // tgen
+
+static void Test_ee52762()
+{
+ extern Class_Descriptor cd_ee52762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52762, buf);
+ ee52762 *dp, &lv = *(dp=new (buf) ee52762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee52762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(32,20), "ee52762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), ABISELECT(16,8), "ee52762");
+ check_base_class_offset(lv, (dd2762*), ABISELECT(16,8), "ee52762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52762.e");
+ test_class_info(&lv, &cd_ee52762);
+ dp->~ee52762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52762(Test_ee52762, "ee52762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52762C1Ev();
+extern void _ZN7ee52762D1Ev();
+Name_Map name_map_ee52762[] = {
+ NSPAIR(_ZN7ee52762C1Ev),
+ NSPAIR(_ZN7ee52762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee52762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, ABISELECT(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 _ZTI7ee52762[];
+extern void _ZN7ee527623barEv();
+extern void _ZN6dd27623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527623barEv,_ZTv0_n20_N7ee527623barEv)();
+extern void ABISELECT(_ZThn16_N7ee527623barEv,_ZThn8_N7ee527623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527623barEv,_ZTv0_n16_N7ee527623barEv)();
+extern void ABISELECT(_ZThn32_N7ee527623barEv,_ZThn20_N7ee527623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52762[0]),
+ (VTBL_ENTRY)&_ZN7ee527623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527623barEv,_ZTv0_n20_N7ee527623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527623barEv,_ZTv0_n16_N7ee527623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee52762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee52762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee52762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee52762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee52762[] = {
+ {&(_ZTV7ee52762[4]), 4,18},
+ {&(_ZTV7ee52762[10]), 10,18},
+ {&(_ZTV7ee52762[16]), 16,18},
+ {&(_tg__ZTV6dd2762__7ee52762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee52762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee52762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee52762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52762[];
+extern VTBL_ENTRY _ZTV7ee52762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52762[];
+static VTBL_ENTRY alt_thunk_names1348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527623barEv,_ZTv0_n16_N7ee527623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527623barEv,_ZThn20_N7ee527623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527623barEv,_ZTv0_n20_N7ee527623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527623barEv,_ZThn8_N7ee527623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52762 = { "ee52762", // class name
+ bases_ee52762, 4,
+ &(vtc_ee52762[0]), // expected_vtbl_contents
+ &(vtt_ee52762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62762 : dd2762 {
+ int e;
+ virtual void foo(); // _ZN7ee627623fooEv
+ virtual void bar(); // _ZN7ee627623barEv
+ ~ee62762(); // tgen
+ ee62762(); // tgen
+};
+//SIG(1 ee62762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62762 ::foo(){vfunc_called(this, "_ZN7ee627623fooEv");}
+void ee62762 ::bar(){vfunc_called(this, "_ZN7ee627623barEv");}
+ee62762 ::~ee62762(){ note_dtor("ee62762", this);} // tgen
+ee62762 ::ee62762(){ note_ctor("ee62762", this);} // tgen
+
+static void Test_ee62762()
+{
+ extern Class_Descriptor cd_ee62762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62762, buf);
+ ee62762 *dp, &lv = *(dp=new (buf) ee62762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee62762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(24,16), "ee62762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), 0, "ee62762");
+ check_base_class_offset(lv, (dd2762*), 0, "ee62762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62762.e");
+ test_class_info(&lv, &cd_ee62762);
+ dp->~ee62762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62762(Test_ee62762, "ee62762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62762C1Ev();
+extern void _ZN7ee62762D1Ev();
+Name_Map name_map_ee62762[] = {
+ NSPAIR(_ZN7ee62762C1Ev),
+ NSPAIR(_ZN7ee62762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee62762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62762[];
+extern void _ZN7ee627623fooEv();
+extern void _ZN7ee627623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627623fooEv,_ZTv0_n12_N7ee627623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627623fooEv,_ZThn16_N7ee627623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627623barEv,_ZTv0_n16_N7ee627623barEv)();
+extern void ABISELECT(_ZThn24_N7ee627623barEv,_ZThn16_N7ee627623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62762[0]),
+ (VTBL_ENTRY)&_ZN7ee627623fooEv,
+ (VTBL_ENTRY)&_ZN7ee627623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627623fooEv,_ZTv0_n12_N7ee627623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627623barEv,_ZTv0_n16_N7ee627623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee62762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee62762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee62762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee62762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee62762[] = {
+ {&(_ZTV7ee62762[3]), 3,11},
+ {&(_tg__ZTV6dd2762__7ee62762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee62762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee62762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee62762[4]), 4,6},
+ {&(_ZTV7ee62762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62762[];
+extern VTBL_ENTRY _ZTV7ee62762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62762[];
+static VTBL_ENTRY alt_thunk_names1349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27623fooEv,_ZThn16_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627623barEv,_ZTv0_n16_N7ee627623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627623barEv,_ZThn16_N7ee627623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627623fooEv,_ZTv0_n12_N7ee627623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627623fooEv,_ZThn16_N7ee627623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62762 = { "ee62762", // class name
+ bases_ee62762, 4,
+ &(vtc_ee62762[0]), // expected_vtbl_contents
+ &(vtt_ee62762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1349,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72762 : virtual dd2762 {
+ int e;
+ virtual void foo(); // _ZN7ee727623fooEv
+ virtual void bar(); // _ZN7ee727623barEv
+ ~ee72762(); // tgen
+ ee72762(); // tgen
+};
+//SIG(1 ee72762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72762 ::foo(){vfunc_called(this, "_ZN7ee727623fooEv");}
+void ee72762 ::bar(){vfunc_called(this, "_ZN7ee727623barEv");}
+ee72762 ::~ee72762(){ note_dtor("ee72762", this);} // tgen
+ee72762 ::ee72762(){ note_ctor("ee72762", this);} // tgen
+
+static void Test_ee72762()
+{
+ extern Class_Descriptor cd_ee72762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72762, buf);
+ ee72762 *dp, &lv = *(dp=new (buf) ee72762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee72762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd2762*), ABISELECT(32,20), "ee72762");
+ check_base_class_offset(lv, (cc762*)(dd2762*), ABISELECT(16,8), "ee72762");
+ check_base_class_offset(lv, (dd2762*), ABISELECT(16,8), "ee72762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72762.e");
+ test_class_info(&lv, &cd_ee72762);
+ dp->~ee72762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72762(Test_ee72762, "ee72762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72762C1Ev();
+extern void _ZN7ee72762D1Ev();
+Name_Map name_map_ee72762[] = {
+ NSPAIR(_ZN7ee72762C1Ev),
+ NSPAIR(_ZN7ee72762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd2762;
+extern VTBL_ENTRY _ZTI6dd2762[];
+extern VTBL_ENTRY _ZTV6dd2762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2762[];
+static Base_Class bases_ee72762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2762, ABISELECT(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 _ZTI7ee72762[];
+extern void _ZN7ee727623fooEv();
+extern void _ZN7ee727623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727623fooEv,_ZTv0_n16_N7ee727623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727623fooEv,_ZThn8_N7ee727623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727623barEv,_ZTv0_n20_N7ee727623barEv)();
+extern void ABISELECT(_ZThn16_N7ee727623barEv,_ZThn8_N7ee727623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727623fooEv,_ZTv0_n12_N7ee727623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727623fooEv,_ZThn20_N7ee727623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727623barEv,_ZTv0_n16_N7ee727623barEv)();
+extern void ABISELECT(_ZThn32_N7ee727623barEv,_ZThn20_N7ee727623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72762[0]),
+ (VTBL_ENTRY)&_ZN7ee727623fooEv,
+ (VTBL_ENTRY)&_ZN7ee727623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727623fooEv,_ZTv0_n16_N7ee727623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727623barEv,_ZTv0_n20_N7ee727623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727623fooEv,_ZTv0_n12_N7ee727623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727623barEv,_ZTv0_n16_N7ee727623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72762[];
+extern void _ZN6dd27623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV6dd2762__7ee72762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&_ZN6dd27623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd2762__7ee72762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd2762__7ee72762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd2762__7ee72762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee72762[] = {
+ {&(_ZTV7ee72762[4]), 4,19},
+ {&(_ZTV7ee72762[11]), 11,19},
+ {&(_ZTV7ee72762[17]), 17,19},
+ {&(_tg__ZTV6dd2762__7ee72762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd2762__7ee72762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd2762__7ee72762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd2762__7ee72762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72762[];
+extern VTBL_ENTRY _ZTV7ee72762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72762[];
+static VTBL_ENTRY alt_thunk_names1350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27623fooEv,_ZTv0_n12_N6dd27623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27623fooEv,_ZThn12_N6dd27623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727623barEv,_ZTv0_n16_N7ee727623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727623barEv,_ZThn20_N7ee727623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727623fooEv,_ZTv0_n12_N7ee727623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727623fooEv,_ZThn20_N7ee727623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727623barEv,_ZTv0_n20_N7ee727623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727623barEv,_ZThn8_N7ee727623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727623fooEv,_ZTv0_n16_N7ee727623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727623fooEv,_ZThn8_N7ee727623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72762 = { "ee72762", // class name
+ bases_ee72762, 4,
+ &(vtc_ee72762[0]), // expected_vtbl_contents
+ &(vtt_ee72762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3762 : virtual cc762 {
+ int d;
+ virtual void foo(); // _ZN6dd37623fooEv
+ ~dd3762(); // tgen
+ dd3762(); // tgen
+};
+//SIG(-1 dd3762) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3762 ::foo(){vfunc_called(this, "_ZN6dd37623fooEv");}
+dd3762 ::~dd3762(){ note_dtor("dd3762", this);} // tgen
+dd3762 ::dd3762(){ note_ctor("dd3762", this);} // tgen
+
+static void Test_dd3762()
+{
+ extern Class_Descriptor cd_dd3762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3762, buf);
+ dd3762 *dp, &lv = *(dp=new (buf) dd3762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd3762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,16), "dd3762");
+ check_base_class_offset(lv, (cc762*), ABISELECT(16,8), "dd3762");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3762.d");
+ test_class_info(&lv, &cd_dd3762);
+ dp->~dd3762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3762(Test_dd3762, "dd3762", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3762C1Ev();
+extern void _ZN6dd3762D1Ev();
+Name_Map name_map_dd3762[] = {
+ NSPAIR(_ZN6dd3762C1Ev),
+ NSPAIR(_ZN6dd3762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd3762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(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 _ZTI6dd3762[];
+extern void _ZN6dd37623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd3762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd3762[] = {
+ {&(_ZTV6dd3762[4]), 4,18},
+ {&(_ZTV6dd3762[10]), 10,18},
+ {&(_ZTV6dd3762[16]), 16,18},
+ {&(_tg__ZTV5cc762__6dd3762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd3762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static VTBL_ENTRY alt_thunk_names1351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3762 = { "dd3762", // class name
+ bases_dd3762, 3,
+ &(vtc_dd3762[0]), // expected_vtbl_contents
+ &(vtt_dd3762[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3762),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03762 : dd3762 {
+ int e;
+ ~ee03762(); // tgen
+ ee03762(); // tgen
+};
+//SIG(1 ee03762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03762 ::~ee03762(){ note_dtor("ee03762", this);} // tgen
+ee03762 ::ee03762(){ note_ctor("ee03762", this);} // tgen
+
+static void Test_ee03762()
+{
+ extern Class_Descriptor cd_ee03762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03762, buf);
+ ee03762 *dp, &lv = *(dp=new (buf) ee03762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee03762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee03762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(16,12), "ee03762");
+ check_base_class_offset(lv, (dd3762*), 0, "ee03762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03762.e");
+ test_class_info(&lv, &cd_ee03762);
+ dp->~ee03762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03762(Test_ee03762, "ee03762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03762C1Ev();
+extern void _ZN7ee03762D1Ev();
+Name_Map name_map_ee03762[] = {
+ NSPAIR(_ZN7ee03762C1Ev),
+ NSPAIR(_ZN7ee03762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee03762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03762[];
+extern void _ZN6dd37623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee03762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee03762[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee03762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee03762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee03762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee03762[] = {
+ {&(_ZTV7ee03762[4]), 4,18},
+ {&(_tg__ZTV6dd3762__7ee03762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee03762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee03762[4]), 4,6},
+ {&(_ZTV7ee03762[10]), 10,18},
+ {&(_ZTV7ee03762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee03762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee03762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03762[];
+extern VTBL_ENTRY _ZTV7ee03762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03762[];
+static VTBL_ENTRY alt_thunk_names1352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03762 = { "ee03762", // class name
+ bases_ee03762, 4,
+ &(vtc_ee03762[0]), // expected_vtbl_contents
+ &(vtt_ee03762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13762 : virtual dd3762 {
+ int e;
+ ~ee13762(); // tgen
+ ee13762(); // tgen
+};
+//SIG(1 ee13762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13762 ::~ee13762(){ note_dtor("ee13762", this);} // tgen
+ee13762 ::ee13762(){ note_ctor("ee13762", this);} // tgen
+
+static void Test_ee13762()
+{
+ extern Class_Descriptor cd_ee13762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13762, buf);
+ ee13762 *dp, &lv = *(dp=new (buf) ee13762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee13762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee13762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(32,16), "ee13762");
+ check_base_class_offset(lv, (dd3762*), ABISELECT(16,8), "ee13762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13762.e");
+ test_class_info(&lv, &cd_ee13762);
+ dp->~ee13762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13762(Test_ee13762, "ee13762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13762C1Ev();
+extern void _ZN7ee13762D1Ev();
+Name_Map name_map_ee13762[] = {
+ NSPAIR(_ZN7ee13762C1Ev),
+ NSPAIR(_ZN7ee13762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee13762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, ABISELECT(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 _ZTI7ee13762[];
+extern void _ZN6dd37623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13762[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee13762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee13762[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee13762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee13762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee13762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee13762[] = {
+ {&(_ZTV7ee13762[5]), 5,24},
+ {&(_ZTV7ee13762[10]), 10,24},
+ {&(_ZTV7ee13762[16]), 16,24},
+ {&(_ZTV7ee13762[22]), 22,24},
+ {&(_tg__ZTV6dd3762__7ee13762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee13762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee13762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee13762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee13762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13762[];
+extern VTBL_ENTRY _ZTV7ee13762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13762[];
+static VTBL_ENTRY alt_thunk_names1353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13762 = { "ee13762", // class name
+ bases_ee13762, 4,
+ &(vtc_ee13762[0]), // expected_vtbl_contents
+ &(vtt_ee13762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13762),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23762 : dd3762 {
+ int e;
+ virtual void foo(); // _ZN7ee237623fooEv
+ ~ee23762(); // tgen
+ ee23762(); // tgen
+};
+//SIG(1 ee23762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23762 ::foo(){vfunc_called(this, "_ZN7ee237623fooEv");}
+ee23762 ::~ee23762(){ note_dtor("ee23762", this);} // tgen
+ee23762 ::ee23762(){ note_ctor("ee23762", this);} // tgen
+
+static void Test_ee23762()
+{
+ extern Class_Descriptor cd_ee23762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23762, buf);
+ ee23762 *dp, &lv = *(dp=new (buf) ee23762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee23762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee23762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(16,12), "ee23762");
+ check_base_class_offset(lv, (dd3762*), 0, "ee23762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23762.e");
+ test_class_info(&lv, &cd_ee23762);
+ dp->~ee23762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23762(Test_ee23762, "ee23762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23762C1Ev();
+extern void _ZN7ee23762D1Ev();
+Name_Map name_map_ee23762[] = {
+ NSPAIR(_ZN7ee23762C1Ev),
+ NSPAIR(_ZN7ee23762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee23762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23762[];
+extern void _ZN7ee237623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237623fooEv,_ZTv0_n16_N7ee237623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237623fooEv,_ZThn12_N7ee237623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237623fooEv,_ZTv0_n12_N7ee237623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237623fooEv,_ZThn20_N7ee237623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23762[0]),
+ (VTBL_ENTRY)&_ZN7ee237623fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237623fooEv,_ZTv0_n16_N7ee237623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237623fooEv,_ZTv0_n12_N7ee237623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee23762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee23762[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee23762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee23762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee23762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee23762[] = {
+ {&(_ZTV7ee23762[4]), 4,18},
+ {&(_tg__ZTV6dd3762__7ee23762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee23762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee23762[4]), 4,6},
+ {&(_ZTV7ee23762[10]), 10,18},
+ {&(_ZTV7ee23762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee23762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee23762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23762[];
+extern VTBL_ENTRY _ZTV7ee23762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23762[];
+static VTBL_ENTRY alt_thunk_names1354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237623fooEv,_ZTv0_n12_N7ee237623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237623fooEv,_ZThn20_N7ee237623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237623fooEv,_ZTv0_n16_N7ee237623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237623fooEv,_ZThn12_N7ee237623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23762 = { "ee23762", // class name
+ bases_ee23762, 4,
+ &(vtc_ee23762[0]), // expected_vtbl_contents
+ &(vtt_ee23762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33762 : virtual dd3762 {
+ int e;
+ virtual void foo(); // _ZN7ee337623fooEv
+ ~ee33762(); // tgen
+ ee33762(); // tgen
+};
+//SIG(1 ee33762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33762 ::foo(){vfunc_called(this, "_ZN7ee337623fooEv");}
+ee33762 ::~ee33762(){ note_dtor("ee33762", this);} // tgen
+ee33762 ::ee33762(){ note_ctor("ee33762", this);} // tgen
+
+static void Test_ee33762()
+{
+ extern Class_Descriptor cd_ee33762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33762, buf);
+ ee33762 *dp, &lv = *(dp=new (buf) ee33762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee33762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee33762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(32,16), "ee33762");
+ check_base_class_offset(lv, (dd3762*), ABISELECT(16,8), "ee33762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33762.e");
+ test_class_info(&lv, &cd_ee33762);
+ dp->~ee33762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33762(Test_ee33762, "ee33762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33762C1Ev();
+extern void _ZN7ee33762D1Ev();
+Name_Map name_map_ee33762[] = {
+ NSPAIR(_ZN7ee33762C1Ev),
+ NSPAIR(_ZN7ee33762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee33762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, ABISELECT(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 _ZTI7ee33762[];
+extern void _ZN7ee337623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337623fooEv,_ZTv0_n20_N7ee337623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337623fooEv,_ZThn8_N7ee337623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337623fooEv,_ZTv0_n16_N7ee337623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337623fooEv,_ZThn16_N7ee337623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337623fooEv,_ZTv0_n12_N7ee337623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337623fooEv,_ZThn24_N7ee337623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33762[0]),
+ (VTBL_ENTRY)&_ZN7ee337623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337623fooEv,_ZTv0_n20_N7ee337623fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337623fooEv,_ZTv0_n16_N7ee337623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337623fooEv,_ZTv0_n12_N7ee337623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee33762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee33762[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee33762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee33762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee33762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee33762[] = {
+ {&(_ZTV7ee33762[5]), 5,25},
+ {&(_ZTV7ee33762[11]), 11,25},
+ {&(_ZTV7ee33762[17]), 17,25},
+ {&(_ZTV7ee33762[23]), 23,25},
+ {&(_tg__ZTV6dd3762__7ee33762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee33762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee33762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee33762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee33762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33762[];
+extern VTBL_ENTRY _ZTV7ee33762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33762[];
+static VTBL_ENTRY alt_thunk_names1355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337623fooEv,_ZTv0_n12_N7ee337623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337623fooEv,_ZThn24_N7ee337623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337623fooEv,_ZTv0_n16_N7ee337623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337623fooEv,_ZThn16_N7ee337623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337623fooEv,_ZTv0_n20_N7ee337623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337623fooEv,_ZThn8_N7ee337623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33762 = { "ee33762", // class name
+ bases_ee33762, 4,
+ &(vtc_ee33762[0]), // expected_vtbl_contents
+ &(vtt_ee33762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33762),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43762 : dd3762 {
+ int e;
+ virtual void bar(); // _ZN7ee437623barEv
+ ~ee43762(); // tgen
+ ee43762(); // tgen
+};
+//SIG(1 ee43762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43762 ::bar(){vfunc_called(this, "_ZN7ee437623barEv");}
+ee43762 ::~ee43762(){ note_dtor("ee43762", this);} // tgen
+ee43762 ::ee43762(){ note_ctor("ee43762", this);} // tgen
+
+static void Test_ee43762()
+{
+ extern Class_Descriptor cd_ee43762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43762, buf);
+ ee43762 *dp, &lv = *(dp=new (buf) ee43762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee43762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee43762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(16,12), "ee43762");
+ check_base_class_offset(lv, (dd3762*), 0, "ee43762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43762.e");
+ test_class_info(&lv, &cd_ee43762);
+ dp->~ee43762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43762(Test_ee43762, "ee43762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43762C1Ev();
+extern void _ZN7ee43762D1Ev();
+Name_Map name_map_ee43762[] = {
+ NSPAIR(_ZN7ee43762C1Ev),
+ NSPAIR(_ZN7ee43762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee43762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43762[];
+extern void _ZN6dd37623fooEv();
+extern void _ZN7ee437623barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437623barEv,_ZTv0_n20_N7ee437623barEv)();
+extern void ABISELECT(_ZThn16_N7ee437623barEv,_ZThn12_N7ee437623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437623barEv,_ZTv0_n16_N7ee437623barEv)();
+extern void ABISELECT(_ZThn32_N7ee437623barEv,_ZThn20_N7ee437623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+ (VTBL_ENTRY)&_ZN7ee437623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437623barEv,_ZTv0_n20_N7ee437623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437623barEv,_ZTv0_n16_N7ee437623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee43762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee43762[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee43762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee43762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee43762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee43762[] = {
+ {&(_ZTV7ee43762[4]), 4,19},
+ {&(_tg__ZTV6dd3762__7ee43762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee43762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee43762[4]), 4,6},
+ {&(_ZTV7ee43762[11]), 11,19},
+ {&(_ZTV7ee43762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee43762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee43762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43762[];
+extern VTBL_ENTRY _ZTV7ee43762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43762[];
+static VTBL_ENTRY alt_thunk_names1356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437623barEv,_ZTv0_n16_N7ee437623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437623barEv,_ZThn20_N7ee437623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437623barEv,_ZTv0_n20_N7ee437623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437623barEv,_ZThn12_N7ee437623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43762 = { "ee43762", // class name
+ bases_ee43762, 4,
+ &(vtc_ee43762[0]), // expected_vtbl_contents
+ &(vtt_ee43762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53762 : virtual dd3762 {
+ int e;
+ virtual void bar(); // _ZN7ee537623barEv
+ ~ee53762(); // tgen
+ ee53762(); // tgen
+};
+//SIG(1 ee53762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53762 ::bar(){vfunc_called(this, "_ZN7ee537623barEv");}
+ee53762 ::~ee53762(){ note_dtor("ee53762", this);} // tgen
+ee53762 ::ee53762(){ note_ctor("ee53762", this);} // tgen
+
+static void Test_ee53762()
+{
+ extern Class_Descriptor cd_ee53762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53762, buf);
+ ee53762 *dp, &lv = *(dp=new (buf) ee53762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee53762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee53762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(32,16), "ee53762");
+ check_base_class_offset(lv, (dd3762*), ABISELECT(16,8), "ee53762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53762.e");
+ test_class_info(&lv, &cd_ee53762);
+ dp->~ee53762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53762(Test_ee53762, "ee53762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53762C1Ev();
+extern void _ZN7ee53762D1Ev();
+Name_Map name_map_ee53762[] = {
+ NSPAIR(_ZN7ee53762C1Ev),
+ NSPAIR(_ZN7ee53762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee53762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, ABISELECT(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 _ZTI7ee53762[];
+extern void _ZN7ee537623barEv();
+extern void _ZN6dd37623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537623barEv,_ZTv0_n20_N7ee537623barEv)();
+extern void ABISELECT(_ZThn32_N7ee537623barEv,_ZThn16_N7ee537623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537623barEv,_ZTv0_n16_N7ee537623barEv)();
+extern void ABISELECT(_ZThn48_N7ee537623barEv,_ZThn24_N7ee537623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53762[0]),
+ (VTBL_ENTRY)&_ZN7ee537623barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537623barEv,_ZTv0_n20_N7ee537623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537623barEv,_ZTv0_n16_N7ee537623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee53762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee53762[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee53762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee53762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee53762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee53762[] = {
+ {&(_ZTV7ee53762[5]), 5,25},
+ {&(_ZTV7ee53762[11]), 11,25},
+ {&(_ZTV7ee53762[17]), 17,25},
+ {&(_ZTV7ee53762[23]), 23,25},
+ {&(_tg__ZTV6dd3762__7ee53762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee53762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee53762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee53762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee53762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53762[];
+extern VTBL_ENTRY _ZTV7ee53762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53762[];
+static VTBL_ENTRY alt_thunk_names1357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537623barEv,_ZTv0_n16_N7ee537623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537623barEv,_ZThn24_N7ee537623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537623barEv,_ZTv0_n20_N7ee537623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537623barEv,_ZThn16_N7ee537623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53762 = { "ee53762", // class name
+ bases_ee53762, 4,
+ &(vtc_ee53762[0]), // expected_vtbl_contents
+ &(vtt_ee53762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53762),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63762 : dd3762 {
+ int e;
+ virtual void foo(); // _ZN7ee637623fooEv
+ virtual void bar(); // _ZN7ee637623barEv
+ ~ee63762(); // tgen
+ ee63762(); // tgen
+};
+//SIG(1 ee63762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63762 ::foo(){vfunc_called(this, "_ZN7ee637623fooEv");}
+void ee63762 ::bar(){vfunc_called(this, "_ZN7ee637623barEv");}
+ee63762 ::~ee63762(){ note_dtor("ee63762", this);} // tgen
+ee63762 ::ee63762(){ note_ctor("ee63762", this);} // tgen
+
+static void Test_ee63762()
+{
+ extern Class_Descriptor cd_ee63762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63762, buf);
+ ee63762 *dp, &lv = *(dp=new (buf) ee63762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee63762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee63762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(16,12), "ee63762");
+ check_base_class_offset(lv, (dd3762*), 0, "ee63762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63762.e");
+ test_class_info(&lv, &cd_ee63762);
+ dp->~ee63762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63762(Test_ee63762, "ee63762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63762C1Ev();
+extern void _ZN7ee63762D1Ev();
+Name_Map name_map_ee63762[] = {
+ NSPAIR(_ZN7ee63762C1Ev),
+ NSPAIR(_ZN7ee63762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee63762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63762[];
+extern void _ZN7ee637623fooEv();
+extern void _ZN7ee637623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637623fooEv,_ZTv0_n16_N7ee637623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637623fooEv,_ZThn12_N7ee637623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637623barEv,_ZTv0_n20_N7ee637623barEv)();
+extern void ABISELECT(_ZThn16_N7ee637623barEv,_ZThn12_N7ee637623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637623fooEv,_ZTv0_n12_N7ee637623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637623fooEv,_ZThn20_N7ee637623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637623barEv,_ZTv0_n16_N7ee637623barEv)();
+extern void ABISELECT(_ZThn32_N7ee637623barEv,_ZThn20_N7ee637623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63762[0]),
+ (VTBL_ENTRY)&_ZN7ee637623fooEv,
+ (VTBL_ENTRY)&_ZN7ee637623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637623fooEv,_ZTv0_n16_N7ee637623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637623barEv,_ZTv0_n20_N7ee637623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637623fooEv,_ZTv0_n12_N7ee637623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637623barEv,_ZTv0_n16_N7ee637623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee63762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee63762[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee63762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee63762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee63762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee63762[] = {
+ {&(_ZTV7ee63762[4]), 4,19},
+ {&(_tg__ZTV6dd3762__7ee63762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee63762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee63762[4]), 4,6},
+ {&(_ZTV7ee63762[11]), 11,19},
+ {&(_ZTV7ee63762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee63762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee63762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63762[];
+extern VTBL_ENTRY _ZTV7ee63762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63762[];
+static VTBL_ENTRY alt_thunk_names1358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn20_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn12_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637623barEv,_ZTv0_n16_N7ee637623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637623barEv,_ZThn20_N7ee637623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637623fooEv,_ZTv0_n12_N7ee637623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637623fooEv,_ZThn20_N7ee637623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637623barEv,_ZTv0_n20_N7ee637623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637623barEv,_ZThn12_N7ee637623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637623fooEv,_ZTv0_n16_N7ee637623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637623fooEv,_ZThn12_N7ee637623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63762 = { "ee63762", // class name
+ bases_ee63762, 4,
+ &(vtc_ee63762[0]), // expected_vtbl_contents
+ &(vtt_ee63762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73762 : virtual dd3762 {
+ int e;
+ virtual void foo(); // _ZN7ee737623fooEv
+ virtual void bar(); // _ZN7ee737623barEv
+ ~ee73762(); // tgen
+ ee73762(); // tgen
+};
+//SIG(1 ee73762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73762 ::foo(){vfunc_called(this, "_ZN7ee737623fooEv");}
+void ee73762 ::bar(){vfunc_called(this, "_ZN7ee737623barEv");}
+ee73762 ::~ee73762(){ note_dtor("ee73762", this);} // tgen
+ee73762 ::ee73762(){ note_ctor("ee73762", this);} // tgen
+
+static void Test_ee73762()
+{
+ extern Class_Descriptor cd_ee73762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73762, buf);
+ ee73762 *dp, &lv = *(dp=new (buf) ee73762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee73762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee73762");
+ check_base_class_offset(lv, (cc762*)(dd3762*), ABISELECT(32,16), "ee73762");
+ check_base_class_offset(lv, (dd3762*), ABISELECT(16,8), "ee73762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73762.e");
+ test_class_info(&lv, &cd_ee73762);
+ dp->~ee73762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73762(Test_ee73762, "ee73762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73762C1Ev();
+extern void _ZN7ee73762D1Ev();
+Name_Map name_map_ee73762[] = {
+ NSPAIR(_ZN7ee73762C1Ev),
+ NSPAIR(_ZN7ee73762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd3762;
+extern VTBL_ENTRY _ZTI6dd3762[];
+extern VTBL_ENTRY _ZTV6dd3762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3762[];
+static Base_Class bases_ee73762[] = {
+ // 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_bb62, 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_cc762, 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_dd3762, 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 _ZTI7ee73762[];
+extern void _ZN7ee737623fooEv();
+extern void _ZN7ee737623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737623fooEv,_ZTv0_n20_N7ee737623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737623fooEv,_ZThn8_N7ee737623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737623fooEv,_ZTv0_n16_N7ee737623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737623fooEv,_ZThn16_N7ee737623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737623barEv,_ZTv0_n20_N7ee737623barEv)();
+extern void ABISELECT(_ZThn32_N7ee737623barEv,_ZThn16_N7ee737623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737623fooEv,_ZTv0_n12_N7ee737623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737623fooEv,_ZThn24_N7ee737623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737623barEv,_ZTv0_n16_N7ee737623barEv)();
+extern void ABISELECT(_ZThn48_N7ee737623barEv,_ZThn24_N7ee737623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73762[0]),
+ (VTBL_ENTRY)&_ZN7ee737623fooEv,
+ (VTBL_ENTRY)&_ZN7ee737623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737623fooEv,_ZTv0_n20_N7ee737623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737623fooEv,_ZTv0_n16_N7ee737623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737623barEv,_ZTv0_n20_N7ee737623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737623fooEv,_ZTv0_n12_N7ee737623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737623barEv,_ZTv0_n16_N7ee737623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73762[];
+extern void _ZN6dd37623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3762__7ee73762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&_ZN6dd37623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv)() __attribute__((weak));
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd3762__7ee73762[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv),
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd3762__7ee73762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee73762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee73762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee73762[] = {
+ {&(_ZTV7ee73762[5]), 5,26},
+ {&(_ZTV7ee73762[12]), 12,26},
+ {&(_ZTV7ee73762[18]), 18,26},
+ {&(_ZTV7ee73762[24]), 24,26},
+ {&(_tg__ZTV6dd3762__7ee73762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd3762__7ee73762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd3762__7ee73762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee73762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee73762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73762[];
+extern VTBL_ENTRY _ZTV7ee73762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73762[];
+static VTBL_ENTRY alt_thunk_names1359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37623fooEv,_ZTv0_n12_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37623fooEv,_ZThn16_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37623fooEv,_ZTv0_n16_N6dd37623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37623fooEv,_ZThn8_N6dd37623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737623barEv,_ZTv0_n16_N7ee737623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737623barEv,_ZThn24_N7ee737623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737623fooEv,_ZTv0_n12_N7ee737623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737623fooEv,_ZThn24_N7ee737623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737623barEv,_ZTv0_n20_N7ee737623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737623barEv,_ZThn16_N7ee737623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737623fooEv,_ZTv0_n16_N7ee737623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737623fooEv,_ZThn16_N7ee737623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737623fooEv,_ZTv0_n20_N7ee737623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737623fooEv,_ZThn8_N7ee737623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73762 = { "ee73762", // class name
+ bases_ee73762, 4,
+ &(vtc_ee73762[0]), // expected_vtbl_contents
+ &(vtt_ee73762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73762),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4762 : cc762 {
+ int d;
+ virtual void bar(); // _ZN6dd47623barEv
+ ~dd4762(); // tgen
+ dd4762(); // tgen
+};
+//SIG(-1 dd4762) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4762 ::bar(){vfunc_called(this, "_ZN6dd47623barEv");}
+dd4762 ::~dd4762(){ note_dtor("dd4762", this);} // tgen
+dd4762 ::dd4762(){ note_ctor("dd4762", this);} // tgen
+
+static void Test_dd4762()
+{
+ extern Class_Descriptor cd_dd4762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4762, buf);
+ dd4762 *dp, &lv = *(dp=new (buf) dd4762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd4762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(16,12), "dd4762");
+ check_base_class_offset(lv, (cc762*), 0, "dd4762");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4762.d");
+ test_class_info(&lv, &cd_dd4762);
+ dp->~dd4762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4762(Test_dd4762, "dd4762", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4762C1Ev();
+extern void _ZN6dd4762D1Ev();
+Name_Map name_map_dd4762[] = {
+ NSPAIR(_ZN6dd4762C1Ev),
+ NSPAIR(_ZN6dd4762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd4762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd4762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd4762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd4762[] = {
+ {&(_ZTV6dd4762[3]), 3,11},
+ {&(_tg__ZTV5cc762__6dd4762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd4762[4]), 4,6},
+ {&(_ZTV6dd4762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static VTBL_ENTRY alt_thunk_names1360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4762 = { "dd4762", // class name
+ bases_dd4762, 3,
+ &(vtc_dd4762[0]), // expected_vtbl_contents
+ &(vtt_dd4762[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4762),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04762 : dd4762 {
+ int e;
+ ~ee04762(); // tgen
+ ee04762(); // tgen
+};
+//SIG(1 ee04762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04762 ::~ee04762(){ note_dtor("ee04762", this);} // tgen
+ee04762 ::ee04762(){ note_ctor("ee04762", this);} // tgen
+
+static void Test_ee04762()
+{
+ extern Class_Descriptor cd_ee04762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04762, buf);
+ ee04762 *dp, &lv = *(dp=new (buf) ee04762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee04762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(24,16), "ee04762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), 0, "ee04762");
+ check_base_class_offset(lv, (dd4762*), 0, "ee04762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04762.e");
+ test_class_info(&lv, &cd_ee04762);
+ dp->~ee04762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04762(Test_ee04762, "ee04762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04762C1Ev();
+extern void _ZN7ee04762D1Ev();
+Name_Map name_map_ee04762[] = {
+ NSPAIR(_ZN7ee04762C1Ev),
+ NSPAIR(_ZN7ee04762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee04762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee04762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee04762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee04762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee04762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee04762[] = {
+ {&(_ZTV7ee04762[3]), 3,11},
+ {&(_tg__ZTV6dd4762__7ee04762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee04762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee04762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee04762[4]), 4,6},
+ {&(_ZTV7ee04762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04762[];
+extern VTBL_ENTRY _ZTV7ee04762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04762[];
+static VTBL_ENTRY alt_thunk_names1361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04762 = { "ee04762", // class name
+ bases_ee04762, 4,
+ &(vtc_ee04762[0]), // expected_vtbl_contents
+ &(vtt_ee04762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14762 : virtual dd4762 {
+ int e;
+ ~ee14762(); // tgen
+ ee14762(); // tgen
+};
+//SIG(1 ee14762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14762 ::~ee14762(){ note_dtor("ee14762", this);} // tgen
+ee14762 ::ee14762(){ note_ctor("ee14762", this);} // tgen
+
+static void Test_ee14762()
+{
+ extern Class_Descriptor cd_ee14762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14762, buf);
+ ee14762 *dp, &lv = *(dp=new (buf) ee14762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee14762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(32,20), "ee14762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), ABISELECT(16,8), "ee14762");
+ check_base_class_offset(lv, (dd4762*), ABISELECT(16,8), "ee14762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14762.e");
+ test_class_info(&lv, &cd_ee14762);
+ dp->~ee14762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14762(Test_ee14762, "ee14762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14762C1Ev();
+extern void _ZN7ee14762D1Ev();
+Name_Map name_map_ee14762[] = {
+ NSPAIR(_ZN7ee14762C1Ev),
+ NSPAIR(_ZN7ee14762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee14762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, 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 _ZTI7ee14762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14762[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee14762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee14762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee14762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee14762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee14762[] = {
+ {&(_ZTV7ee14762[4]), 4,17},
+ {&(_ZTV7ee14762[9]), 9,17},
+ {&(_ZTV7ee14762[15]), 15,17},
+ {&(_tg__ZTV6dd4762__7ee14762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee14762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee14762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee14762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14762[];
+extern VTBL_ENTRY _ZTV7ee14762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14762[];
+static VTBL_ENTRY alt_thunk_names1362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14762 = { "ee14762", // class name
+ bases_ee14762, 4,
+ &(vtc_ee14762[0]), // expected_vtbl_contents
+ &(vtt_ee14762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24762 : dd4762 {
+ int e;
+ virtual void foo(); // _ZN7ee247623fooEv
+ ~ee24762(); // tgen
+ ee24762(); // tgen
+};
+//SIG(1 ee24762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24762 ::foo(){vfunc_called(this, "_ZN7ee247623fooEv");}
+ee24762 ::~ee24762(){ note_dtor("ee24762", this);} // tgen
+ee24762 ::ee24762(){ note_ctor("ee24762", this);} // tgen
+
+static void Test_ee24762()
+{
+ extern Class_Descriptor cd_ee24762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24762, buf);
+ ee24762 *dp, &lv = *(dp=new (buf) ee24762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee24762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(24,16), "ee24762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), 0, "ee24762");
+ check_base_class_offset(lv, (dd4762*), 0, "ee24762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24762.e");
+ test_class_info(&lv, &cd_ee24762);
+ dp->~ee24762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24762(Test_ee24762, "ee24762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24762C1Ev();
+extern void _ZN7ee24762D1Ev();
+Name_Map name_map_ee24762[] = {
+ NSPAIR(_ZN7ee24762C1Ev),
+ NSPAIR(_ZN7ee24762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee24762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24762[];
+extern void _ZN7ee247623fooEv();
+extern void _ZN6dd47623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247623fooEv,_ZTv0_n12_N7ee247623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247623fooEv,_ZThn16_N7ee247623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24762[0]),
+ (VTBL_ENTRY)&_ZN7ee247623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247623fooEv,_ZTv0_n12_N7ee247623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee24762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee24762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee24762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee24762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee24762[] = {
+ {&(_ZTV7ee24762[3]), 3,11},
+ {&(_tg__ZTV6dd4762__7ee24762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee24762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee24762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee24762[4]), 4,6},
+ {&(_ZTV7ee24762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24762[];
+extern VTBL_ENTRY _ZTV7ee24762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24762[];
+static VTBL_ENTRY alt_thunk_names1363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247623fooEv,_ZTv0_n12_N7ee247623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247623fooEv,_ZThn16_N7ee247623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24762 = { "ee24762", // class name
+ bases_ee24762, 4,
+ &(vtc_ee24762[0]), // expected_vtbl_contents
+ &(vtt_ee24762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34762 : virtual dd4762 {
+ int e;
+ virtual void foo(); // _ZN7ee347623fooEv
+ ~ee34762(); // tgen
+ ee34762(); // tgen
+};
+//SIG(1 ee34762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34762 ::foo(){vfunc_called(this, "_ZN7ee347623fooEv");}
+ee34762 ::~ee34762(){ note_dtor("ee34762", this);} // tgen
+ee34762 ::ee34762(){ note_ctor("ee34762", this);} // tgen
+
+static void Test_ee34762()
+{
+ extern Class_Descriptor cd_ee34762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34762, buf);
+ ee34762 *dp, &lv = *(dp=new (buf) ee34762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee34762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(32,20), "ee34762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), ABISELECT(16,8), "ee34762");
+ check_base_class_offset(lv, (dd4762*), ABISELECT(16,8), "ee34762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34762.e");
+ test_class_info(&lv, &cd_ee34762);
+ dp->~ee34762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34762(Test_ee34762, "ee34762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34762C1Ev();
+extern void _ZN7ee34762D1Ev();
+Name_Map name_map_ee34762[] = {
+ NSPAIR(_ZN7ee34762C1Ev),
+ NSPAIR(_ZN7ee34762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee34762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, ABISELECT(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 _ZTI7ee34762[];
+extern void _ZN7ee347623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347623fooEv,_ZTv0_n16_N7ee347623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347623fooEv,_ZThn8_N7ee347623fooEv)() __attribute__((weak));
+extern void _ZN6dd47623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347623fooEv,_ZTv0_n12_N7ee347623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347623fooEv,_ZThn20_N7ee347623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34762[0]),
+ (VTBL_ENTRY)&_ZN7ee347623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347623fooEv,_ZTv0_n16_N7ee347623fooEv),
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347623fooEv,_ZTv0_n12_N7ee347623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee34762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee34762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee34762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee34762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee34762[] = {
+ {&(_ZTV7ee34762[4]), 4,18},
+ {&(_ZTV7ee34762[10]), 10,18},
+ {&(_ZTV7ee34762[16]), 16,18},
+ {&(_tg__ZTV6dd4762__7ee34762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee34762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee34762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee34762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34762[];
+extern VTBL_ENTRY _ZTV7ee34762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34762[];
+static VTBL_ENTRY alt_thunk_names1364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347623fooEv,_ZTv0_n12_N7ee347623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347623fooEv,_ZThn20_N7ee347623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347623fooEv,_ZTv0_n16_N7ee347623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347623fooEv,_ZThn8_N7ee347623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34762 = { "ee34762", // class name
+ bases_ee34762, 4,
+ &(vtc_ee34762[0]), // expected_vtbl_contents
+ &(vtt_ee34762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44762 : dd4762 {
+ int e;
+ virtual void bar(); // _ZN7ee447623barEv
+ ~ee44762(); // tgen
+ ee44762(); // tgen
+};
+//SIG(1 ee44762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44762 ::bar(){vfunc_called(this, "_ZN7ee447623barEv");}
+ee44762 ::~ee44762(){ note_dtor("ee44762", this);} // tgen
+ee44762 ::ee44762(){ note_ctor("ee44762", this);} // tgen
+
+static void Test_ee44762()
+{
+ extern Class_Descriptor cd_ee44762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44762, buf);
+ ee44762 *dp, &lv = *(dp=new (buf) ee44762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee44762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(24,16), "ee44762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), 0, "ee44762");
+ check_base_class_offset(lv, (dd4762*), 0, "ee44762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44762.e");
+ test_class_info(&lv, &cd_ee44762);
+ dp->~ee44762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44762(Test_ee44762, "ee44762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44762C1Ev();
+extern void _ZN7ee44762D1Ev();
+Name_Map name_map_ee44762[] = {
+ NSPAIR(_ZN7ee44762C1Ev),
+ NSPAIR(_ZN7ee44762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee44762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN7ee447623barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee447623barEv,_ZTv0_n16_N7ee447623barEv)();
+extern void ABISELECT(_ZThn24_N7ee447623barEv,_ZThn16_N7ee447623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN7ee447623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447623barEv,_ZTv0_n16_N7ee447623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee44762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee44762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee44762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee44762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee44762[] = {
+ {&(_ZTV7ee44762[3]), 3,11},
+ {&(_tg__ZTV6dd4762__7ee44762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee44762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee44762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee44762[4]), 4,6},
+ {&(_ZTV7ee44762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44762[];
+extern VTBL_ENTRY _ZTV7ee44762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44762[];
+static VTBL_ENTRY alt_thunk_names1365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447623barEv,_ZTv0_n16_N7ee447623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447623barEv,_ZThn16_N7ee447623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44762 = { "ee44762", // class name
+ bases_ee44762, 4,
+ &(vtc_ee44762[0]), // expected_vtbl_contents
+ &(vtt_ee44762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54762 : virtual dd4762 {
+ int e;
+ virtual void bar(); // _ZN7ee547623barEv
+ ~ee54762(); // tgen
+ ee54762(); // tgen
+};
+//SIG(1 ee54762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54762 ::bar(){vfunc_called(this, "_ZN7ee547623barEv");}
+ee54762 ::~ee54762(){ note_dtor("ee54762", this);} // tgen
+ee54762 ::ee54762(){ note_ctor("ee54762", this);} // tgen
+
+static void Test_ee54762()
+{
+ extern Class_Descriptor cd_ee54762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54762, buf);
+ ee54762 *dp, &lv = *(dp=new (buf) ee54762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee54762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(32,20), "ee54762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), ABISELECT(16,8), "ee54762");
+ check_base_class_offset(lv, (dd4762*), ABISELECT(16,8), "ee54762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54762.e");
+ test_class_info(&lv, &cd_ee54762);
+ dp->~ee54762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54762(Test_ee54762, "ee54762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54762C1Ev();
+extern void _ZN7ee54762D1Ev();
+Name_Map name_map_ee54762[] = {
+ NSPAIR(_ZN7ee54762C1Ev),
+ NSPAIR(_ZN7ee54762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee54762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, ABISELECT(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 _ZTI7ee54762[];
+extern void _ZN7ee547623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547623barEv,_ZTv0_n20_N7ee547623barEv)();
+extern void ABISELECT(_ZThn16_N7ee547623barEv,_ZThn8_N7ee547623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547623barEv,_ZTv0_n16_N7ee547623barEv)();
+extern void ABISELECT(_ZThn32_N7ee547623barEv,_ZThn20_N7ee547623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54762[0]),
+ (VTBL_ENTRY)&_ZN7ee547623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547623barEv,_ZTv0_n20_N7ee547623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547623barEv,_ZTv0_n16_N7ee547623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee54762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee54762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee54762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee54762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee54762[] = {
+ {&(_ZTV7ee54762[4]), 4,18},
+ {&(_ZTV7ee54762[10]), 10,18},
+ {&(_ZTV7ee54762[16]), 16,18},
+ {&(_tg__ZTV6dd4762__7ee54762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee54762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee54762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee54762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54762[];
+extern VTBL_ENTRY _ZTV7ee54762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54762[];
+static VTBL_ENTRY alt_thunk_names1366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547623barEv,_ZTv0_n16_N7ee547623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547623barEv,_ZThn20_N7ee547623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547623barEv,_ZTv0_n20_N7ee547623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547623barEv,_ZThn8_N7ee547623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54762 = { "ee54762", // class name
+ bases_ee54762, 4,
+ &(vtc_ee54762[0]), // expected_vtbl_contents
+ &(vtt_ee54762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1366,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64762 : dd4762 {
+ int e;
+ virtual void foo(); // _ZN7ee647623fooEv
+ virtual void bar(); // _ZN7ee647623barEv
+ ~ee64762(); // tgen
+ ee64762(); // tgen
+};
+//SIG(1 ee64762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64762 ::foo(){vfunc_called(this, "_ZN7ee647623fooEv");}
+void ee64762 ::bar(){vfunc_called(this, "_ZN7ee647623barEv");}
+ee64762 ::~ee64762(){ note_dtor("ee64762", this);} // tgen
+ee64762 ::ee64762(){ note_ctor("ee64762", this);} // tgen
+
+static void Test_ee64762()
+{
+ extern Class_Descriptor cd_ee64762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64762, buf);
+ ee64762 *dp, &lv = *(dp=new (buf) ee64762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee64762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(24,16), "ee64762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), 0, "ee64762");
+ check_base_class_offset(lv, (dd4762*), 0, "ee64762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64762.e");
+ test_class_info(&lv, &cd_ee64762);
+ dp->~ee64762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64762(Test_ee64762, "ee64762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64762C1Ev();
+extern void _ZN7ee64762D1Ev();
+Name_Map name_map_ee64762[] = {
+ NSPAIR(_ZN7ee64762C1Ev),
+ NSPAIR(_ZN7ee64762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee64762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64762[];
+extern void _ZN7ee647623fooEv();
+extern void _ZN7ee647623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647623fooEv,_ZTv0_n12_N7ee647623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647623fooEv,_ZThn16_N7ee647623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647623barEv,_ZTv0_n16_N7ee647623barEv)();
+extern void ABISELECT(_ZThn24_N7ee647623barEv,_ZThn16_N7ee647623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64762[0]),
+ (VTBL_ENTRY)&_ZN7ee647623fooEv,
+ (VTBL_ENTRY)&_ZN7ee647623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647623fooEv,_ZTv0_n12_N7ee647623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647623barEv,_ZTv0_n16_N7ee647623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee64762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee64762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee64762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee64762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee64762[] = {
+ {&(_ZTV7ee64762[3]), 3,11},
+ {&(_tg__ZTV6dd4762__7ee64762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee64762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee64762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee64762[4]), 4,6},
+ {&(_ZTV7ee64762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64762[];
+extern VTBL_ENTRY _ZTV7ee64762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64762[];
+static VTBL_ENTRY alt_thunk_names1367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47623barEv,_ZThn16_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647623barEv,_ZTv0_n16_N7ee647623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647623barEv,_ZThn16_N7ee647623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647623fooEv,_ZTv0_n12_N7ee647623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647623fooEv,_ZThn16_N7ee647623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64762 = { "ee64762", // class name
+ bases_ee64762, 4,
+ &(vtc_ee64762[0]), // expected_vtbl_contents
+ &(vtt_ee64762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74762 : virtual dd4762 {
+ int e;
+ virtual void foo(); // _ZN7ee747623fooEv
+ virtual void bar(); // _ZN7ee747623barEv
+ ~ee74762(); // tgen
+ ee74762(); // tgen
+};
+//SIG(1 ee74762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74762 ::foo(){vfunc_called(this, "_ZN7ee747623fooEv");}
+void ee74762 ::bar(){vfunc_called(this, "_ZN7ee747623barEv");}
+ee74762 ::~ee74762(){ note_dtor("ee74762", this);} // tgen
+ee74762 ::ee74762(){ note_ctor("ee74762", this);} // tgen
+
+static void Test_ee74762()
+{
+ extern Class_Descriptor cd_ee74762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74762, buf);
+ ee74762 *dp, &lv = *(dp=new (buf) ee74762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee74762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd4762*), ABISELECT(32,20), "ee74762");
+ check_base_class_offset(lv, (cc762*)(dd4762*), ABISELECT(16,8), "ee74762");
+ check_base_class_offset(lv, (dd4762*), ABISELECT(16,8), "ee74762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74762.e");
+ test_class_info(&lv, &cd_ee74762);
+ dp->~ee74762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74762(Test_ee74762, "ee74762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74762C1Ev();
+extern void _ZN7ee74762D1Ev();
+Name_Map name_map_ee74762[] = {
+ NSPAIR(_ZN7ee74762C1Ev),
+ NSPAIR(_ZN7ee74762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd4762;
+extern VTBL_ENTRY _ZTI6dd4762[];
+extern VTBL_ENTRY _ZTV6dd4762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4762[];
+static Base_Class bases_ee74762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4762, ABISELECT(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 _ZTI7ee74762[];
+extern void _ZN7ee747623fooEv();
+extern void _ZN7ee747623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747623fooEv,_ZTv0_n16_N7ee747623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747623fooEv,_ZThn8_N7ee747623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747623barEv,_ZTv0_n20_N7ee747623barEv)();
+extern void ABISELECT(_ZThn16_N7ee747623barEv,_ZThn8_N7ee747623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747623fooEv,_ZTv0_n12_N7ee747623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747623fooEv,_ZThn20_N7ee747623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747623barEv,_ZTv0_n16_N7ee747623barEv)();
+extern void ABISELECT(_ZThn32_N7ee747623barEv,_ZThn20_N7ee747623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74762[0]),
+ (VTBL_ENTRY)&_ZN7ee747623fooEv,
+ (VTBL_ENTRY)&_ZN7ee747623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747623fooEv,_ZTv0_n16_N7ee747623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747623barEv,_ZTv0_n20_N7ee747623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747623fooEv,_ZTv0_n12_N7ee747623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747623barEv,_ZTv0_n16_N7ee747623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN6dd47623barEv();
+static VTBL_ENTRY _tg__ZTV6dd4762__7ee74762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN6dd47623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd4762__7ee74762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd4762__7ee74762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv)();
+extern void ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd4762__7ee74762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv),
+};
+static VTT_ENTRY vtt_ee74762[] = {
+ {&(_ZTV7ee74762[4]), 4,19},
+ {&(_ZTV7ee74762[11]), 11,19},
+ {&(_ZTV7ee74762[17]), 17,19},
+ {&(_tg__ZTV6dd4762__7ee74762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd4762__7ee74762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd4762__7ee74762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd4762__7ee74762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74762[];
+extern VTBL_ENTRY _ZTV7ee74762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74762[];
+static VTBL_ENTRY alt_thunk_names1368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47623barEv,_ZTv0_n16_N6dd47623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47623barEv,_ZThn12_N6dd47623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747623barEv,_ZTv0_n16_N7ee747623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747623barEv,_ZThn20_N7ee747623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747623fooEv,_ZTv0_n12_N7ee747623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747623fooEv,_ZThn20_N7ee747623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747623barEv,_ZTv0_n20_N7ee747623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747623barEv,_ZThn8_N7ee747623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747623fooEv,_ZTv0_n16_N7ee747623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747623fooEv,_ZThn8_N7ee747623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74762 = { "ee74762", // class name
+ bases_ee74762, 4,
+ &(vtc_ee74762[0]), // expected_vtbl_contents
+ &(vtt_ee74762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5762 : virtual cc762 {
+ int d;
+ virtual void bar(); // _ZN6dd57623barEv
+ ~dd5762(); // tgen
+ dd5762(); // tgen
+};
+//SIG(-1 dd5762) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5762 ::bar(){vfunc_called(this, "_ZN6dd57623barEv");}
+dd5762 ::~dd5762(){ note_dtor("dd5762", this);} // tgen
+dd5762 ::dd5762(){ note_ctor("dd5762", this);} // tgen
+
+static void Test_dd5762()
+{
+ extern Class_Descriptor cd_dd5762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5762, buf);
+ dd5762 *dp, &lv = *(dp=new (buf) dd5762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd5762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,16), "dd5762");
+ check_base_class_offset(lv, (cc762*), ABISELECT(16,8), "dd5762");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5762.d");
+ test_class_info(&lv, &cd_dd5762);
+ dp->~dd5762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5762(Test_dd5762, "dd5762", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5762C1Ev();
+extern void _ZN6dd5762D1Ev();
+Name_Map name_map_dd5762[] = {
+ NSPAIR(_ZN6dd5762C1Ev),
+ NSPAIR(_ZN6dd5762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd5762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(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 _ZTI6dd5762[];
+extern void _ZN6dd57623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd5762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd5762[] = {
+ {&(_ZTV6dd5762[4]), 4,18},
+ {&(_ZTV6dd5762[10]), 10,18},
+ {&(_ZTV6dd5762[16]), 16,18},
+ {&(_tg__ZTV5cc762__6dd5762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd5762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static VTBL_ENTRY alt_thunk_names1369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5762 = { "dd5762", // class name
+ bases_dd5762, 3,
+ &(vtc_dd5762[0]), // expected_vtbl_contents
+ &(vtt_dd5762[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5762),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05762 : dd5762 {
+ int e;
+ ~ee05762(); // tgen
+ ee05762(); // tgen
+};
+//SIG(1 ee05762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05762 ::~ee05762(){ note_dtor("ee05762", this);} // tgen
+ee05762 ::ee05762(){ note_ctor("ee05762", this);} // tgen
+
+static void Test_ee05762()
+{
+ extern Class_Descriptor cd_ee05762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05762, buf);
+ ee05762 *dp, &lv = *(dp=new (buf) ee05762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee05762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee05762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(16,12), "ee05762");
+ check_base_class_offset(lv, (dd5762*), 0, "ee05762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05762.e");
+ test_class_info(&lv, &cd_ee05762);
+ dp->~ee05762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05762(Test_ee05762, "ee05762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05762C1Ev();
+extern void _ZN7ee05762D1Ev();
+Name_Map name_map_ee05762[] = {
+ NSPAIR(_ZN7ee05762C1Ev),
+ NSPAIR(_ZN7ee05762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee05762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05762[];
+extern void _ZN6dd57623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee05762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee05762[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee05762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee05762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee05762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee05762[] = {
+ {&(_ZTV7ee05762[4]), 4,18},
+ {&(_tg__ZTV6dd5762__7ee05762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee05762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee05762[4]), 4,6},
+ {&(_ZTV7ee05762[10]), 10,18},
+ {&(_ZTV7ee05762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee05762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee05762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05762[];
+extern VTBL_ENTRY _ZTV7ee05762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05762[];
+static VTBL_ENTRY alt_thunk_names1370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05762 = { "ee05762", // class name
+ bases_ee05762, 4,
+ &(vtc_ee05762[0]), // expected_vtbl_contents
+ &(vtt_ee05762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15762 : virtual dd5762 {
+ int e;
+ ~ee15762(); // tgen
+ ee15762(); // tgen
+};
+//SIG(1 ee15762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15762 ::~ee15762(){ note_dtor("ee15762", this);} // tgen
+ee15762 ::ee15762(){ note_ctor("ee15762", this);} // tgen
+
+static void Test_ee15762()
+{
+ extern Class_Descriptor cd_ee15762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15762, buf);
+ ee15762 *dp, &lv = *(dp=new (buf) ee15762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee15762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee15762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(32,16), "ee15762");
+ check_base_class_offset(lv, (dd5762*), ABISELECT(16,8), "ee15762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15762.e");
+ test_class_info(&lv, &cd_ee15762);
+ dp->~ee15762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15762(Test_ee15762, "ee15762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15762C1Ev();
+extern void _ZN7ee15762D1Ev();
+Name_Map name_map_ee15762[] = {
+ NSPAIR(_ZN7ee15762C1Ev),
+ NSPAIR(_ZN7ee15762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee15762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, ABISELECT(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 _ZTI7ee15762[];
+extern void _ZN6dd57623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15762[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee15762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee15762[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee15762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee15762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee15762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee15762[] = {
+ {&(_ZTV7ee15762[5]), 5,24},
+ {&(_ZTV7ee15762[10]), 10,24},
+ {&(_ZTV7ee15762[16]), 16,24},
+ {&(_ZTV7ee15762[22]), 22,24},
+ {&(_tg__ZTV6dd5762__7ee15762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee15762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee15762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee15762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee15762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15762[];
+extern VTBL_ENTRY _ZTV7ee15762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15762[];
+static VTBL_ENTRY alt_thunk_names1371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15762 = { "ee15762", // class name
+ bases_ee15762, 4,
+ &(vtc_ee15762[0]), // expected_vtbl_contents
+ &(vtt_ee15762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15762),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25762 : dd5762 {
+ int e;
+ virtual void foo(); // _ZN7ee257623fooEv
+ ~ee25762(); // tgen
+ ee25762(); // tgen
+};
+//SIG(1 ee25762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25762 ::foo(){vfunc_called(this, "_ZN7ee257623fooEv");}
+ee25762 ::~ee25762(){ note_dtor("ee25762", this);} // tgen
+ee25762 ::ee25762(){ note_ctor("ee25762", this);} // tgen
+
+static void Test_ee25762()
+{
+ extern Class_Descriptor cd_ee25762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25762, buf);
+ ee25762 *dp, &lv = *(dp=new (buf) ee25762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee25762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee25762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(16,12), "ee25762");
+ check_base_class_offset(lv, (dd5762*), 0, "ee25762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25762.e");
+ test_class_info(&lv, &cd_ee25762);
+ dp->~ee25762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25762(Test_ee25762, "ee25762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25762C1Ev();
+extern void _ZN7ee25762D1Ev();
+Name_Map name_map_ee25762[] = {
+ NSPAIR(_ZN7ee25762C1Ev),
+ NSPAIR(_ZN7ee25762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee25762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25762[];
+extern void _ZN6dd57623barEv();
+extern void _ZN7ee257623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257623fooEv,_ZTv0_n16_N7ee257623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257623fooEv,_ZThn12_N7ee257623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257623fooEv,_ZTv0_n12_N7ee257623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257623fooEv,_ZThn20_N7ee257623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+ (VTBL_ENTRY)&_ZN7ee257623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257623fooEv,_ZTv0_n16_N7ee257623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257623fooEv,_ZTv0_n12_N7ee257623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee25762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee25762[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee25762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee25762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee25762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee25762[] = {
+ {&(_ZTV7ee25762[4]), 4,19},
+ {&(_tg__ZTV6dd5762__7ee25762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee25762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee25762[4]), 4,6},
+ {&(_ZTV7ee25762[11]), 11,19},
+ {&(_ZTV7ee25762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee25762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee25762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25762[];
+extern VTBL_ENTRY _ZTV7ee25762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25762[];
+static VTBL_ENTRY alt_thunk_names1372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257623fooEv,_ZTv0_n12_N7ee257623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257623fooEv,_ZThn20_N7ee257623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257623fooEv,_ZTv0_n16_N7ee257623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257623fooEv,_ZThn12_N7ee257623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25762 = { "ee25762", // class name
+ bases_ee25762, 4,
+ &(vtc_ee25762[0]), // expected_vtbl_contents
+ &(vtt_ee25762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35762 : virtual dd5762 {
+ int e;
+ virtual void foo(); // _ZN7ee357623fooEv
+ ~ee35762(); // tgen
+ ee35762(); // tgen
+};
+//SIG(1 ee35762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35762 ::foo(){vfunc_called(this, "_ZN7ee357623fooEv");}
+ee35762 ::~ee35762(){ note_dtor("ee35762", this);} // tgen
+ee35762 ::ee35762(){ note_ctor("ee35762", this);} // tgen
+
+static void Test_ee35762()
+{
+ extern Class_Descriptor cd_ee35762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35762, buf);
+ ee35762 *dp, &lv = *(dp=new (buf) ee35762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee35762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee35762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(32,16), "ee35762");
+ check_base_class_offset(lv, (dd5762*), ABISELECT(16,8), "ee35762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35762.e");
+ test_class_info(&lv, &cd_ee35762);
+ dp->~ee35762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35762(Test_ee35762, "ee35762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35762C1Ev();
+extern void _ZN7ee35762D1Ev();
+Name_Map name_map_ee35762[] = {
+ NSPAIR(_ZN7ee35762C1Ev),
+ NSPAIR(_ZN7ee35762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee35762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, ABISELECT(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 _ZTI7ee35762[];
+extern void _ZN7ee357623fooEv();
+extern void _ZN6dd57623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357623fooEv,_ZTv0_n16_N7ee357623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357623fooEv,_ZThn16_N7ee357623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357623fooEv,_ZTv0_n12_N7ee357623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357623fooEv,_ZThn24_N7ee357623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35762[0]),
+ (VTBL_ENTRY)&_ZN7ee357623fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357623fooEv,_ZTv0_n16_N7ee357623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357623fooEv,_ZTv0_n12_N7ee357623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee35762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee35762[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee35762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee35762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee35762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee35762[] = {
+ {&(_ZTV7ee35762[5]), 5,25},
+ {&(_ZTV7ee35762[11]), 11,25},
+ {&(_ZTV7ee35762[17]), 17,25},
+ {&(_ZTV7ee35762[23]), 23,25},
+ {&(_tg__ZTV6dd5762__7ee35762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee35762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee35762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee35762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee35762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35762[];
+extern VTBL_ENTRY _ZTV7ee35762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35762[];
+static VTBL_ENTRY alt_thunk_names1373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357623fooEv,_ZTv0_n12_N7ee357623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357623fooEv,_ZThn24_N7ee357623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357623fooEv,_ZTv0_n16_N7ee357623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357623fooEv,_ZThn16_N7ee357623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35762 = { "ee35762", // class name
+ bases_ee35762, 4,
+ &(vtc_ee35762[0]), // expected_vtbl_contents
+ &(vtt_ee35762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35762),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45762 : dd5762 {
+ int e;
+ virtual void bar(); // _ZN7ee457623barEv
+ ~ee45762(); // tgen
+ ee45762(); // tgen
+};
+//SIG(1 ee45762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45762 ::bar(){vfunc_called(this, "_ZN7ee457623barEv");}
+ee45762 ::~ee45762(){ note_dtor("ee45762", this);} // tgen
+ee45762 ::ee45762(){ note_ctor("ee45762", this);} // tgen
+
+static void Test_ee45762()
+{
+ extern Class_Descriptor cd_ee45762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45762, buf);
+ ee45762 *dp, &lv = *(dp=new (buf) ee45762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee45762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee45762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(16,12), "ee45762");
+ check_base_class_offset(lv, (dd5762*), 0, "ee45762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45762.e");
+ test_class_info(&lv, &cd_ee45762);
+ dp->~ee45762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45762(Test_ee45762, "ee45762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45762C1Ev();
+extern void _ZN7ee45762D1Ev();
+Name_Map name_map_ee45762[] = {
+ NSPAIR(_ZN7ee45762C1Ev),
+ NSPAIR(_ZN7ee45762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee45762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45762[];
+extern void _ZN7ee457623barEv();
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457623barEv,_ZTv0_n20_N7ee457623barEv)();
+extern void ABISELECT(_ZThn16_N7ee457623barEv,_ZThn12_N7ee457623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457623barEv,_ZTv0_n16_N7ee457623barEv)();
+extern void ABISELECT(_ZThn32_N7ee457623barEv,_ZThn20_N7ee457623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45762[0]),
+ (VTBL_ENTRY)&_ZN7ee457623barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457623barEv,_ZTv0_n20_N7ee457623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457623barEv,_ZTv0_n16_N7ee457623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee45762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee45762[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee45762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee45762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee45762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee45762[] = {
+ {&(_ZTV7ee45762[4]), 4,18},
+ {&(_tg__ZTV6dd5762__7ee45762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee45762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee45762[4]), 4,6},
+ {&(_ZTV7ee45762[10]), 10,18},
+ {&(_ZTV7ee45762[16]), 16,18},
+ {&(_tg__ZTV5cc762__7ee45762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee45762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45762[];
+extern VTBL_ENTRY _ZTV7ee45762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45762[];
+static VTBL_ENTRY alt_thunk_names1374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457623barEv,_ZTv0_n16_N7ee457623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457623barEv,_ZThn20_N7ee457623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457623barEv,_ZTv0_n20_N7ee457623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457623barEv,_ZThn12_N7ee457623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45762 = { "ee45762", // class name
+ bases_ee45762, 4,
+ &(vtc_ee45762[0]), // expected_vtbl_contents
+ &(vtt_ee45762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55762 : virtual dd5762 {
+ int e;
+ virtual void bar(); // _ZN7ee557623barEv
+ ~ee55762(); // tgen
+ ee55762(); // tgen
+};
+//SIG(1 ee55762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55762 ::bar(){vfunc_called(this, "_ZN7ee557623barEv");}
+ee55762 ::~ee55762(){ note_dtor("ee55762", this);} // tgen
+ee55762 ::ee55762(){ note_ctor("ee55762", this);} // tgen
+
+static void Test_ee55762()
+{
+ extern Class_Descriptor cd_ee55762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55762, buf);
+ ee55762 *dp, &lv = *(dp=new (buf) ee55762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee55762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee55762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(32,16), "ee55762");
+ check_base_class_offset(lv, (dd5762*), ABISELECT(16,8), "ee55762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55762.e");
+ test_class_info(&lv, &cd_ee55762);
+ dp->~ee55762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55762(Test_ee55762, "ee55762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55762C1Ev();
+extern void _ZN7ee55762D1Ev();
+Name_Map name_map_ee55762[] = {
+ NSPAIR(_ZN7ee55762C1Ev),
+ NSPAIR(_ZN7ee55762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee55762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, ABISELECT(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 _ZTI7ee55762[];
+extern void _ZN7ee557623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557623barEv,_ZTv0_n20_N7ee557623barEv)();
+extern void ABISELECT(_ZThn16_N7ee557623barEv,_ZThn8_N7ee557623barEv)() __attribute__((weak));
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557623barEv,_ZTv0_n20_N7ee557623barEv)();
+extern void ABISELECT(_ZThn32_N7ee557623barEv,_ZThn16_N7ee557623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557623barEv,_ZTv0_n16_N7ee557623barEv)();
+extern void ABISELECT(_ZThn48_N7ee557623barEv,_ZThn24_N7ee557623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55762[0]),
+ (VTBL_ENTRY)&_ZN7ee557623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557623barEv,_ZTv0_n20_N7ee557623barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557623barEv,_ZTv0_n20_N7ee557623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557623barEv,_ZTv0_n16_N7ee557623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee55762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee55762[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee55762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee55762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee55762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee55762[] = {
+ {&(_ZTV7ee55762[5]), 5,25},
+ {&(_ZTV7ee55762[11]), 11,25},
+ {&(_ZTV7ee55762[17]), 17,25},
+ {&(_ZTV7ee55762[23]), 23,25},
+ {&(_tg__ZTV6dd5762__7ee55762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee55762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee55762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee55762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee55762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55762[];
+extern VTBL_ENTRY _ZTV7ee55762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55762[];
+static VTBL_ENTRY alt_thunk_names1375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557623barEv,_ZTv0_n16_N7ee557623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557623barEv,_ZThn24_N7ee557623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557623barEv,_ZTv0_n20_N7ee557623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557623barEv,_ZThn16_N7ee557623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557623barEv,_ZThn8_N7ee557623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55762 = { "ee55762", // class name
+ bases_ee55762, 4,
+ &(vtc_ee55762[0]), // expected_vtbl_contents
+ &(vtt_ee55762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55762),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65762 : dd5762 {
+ int e;
+ virtual void foo(); // _ZN7ee657623fooEv
+ virtual void bar(); // _ZN7ee657623barEv
+ ~ee65762(); // tgen
+ ee65762(); // tgen
+};
+//SIG(1 ee65762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65762 ::foo(){vfunc_called(this, "_ZN7ee657623fooEv");}
+void ee65762 ::bar(){vfunc_called(this, "_ZN7ee657623barEv");}
+ee65762 ::~ee65762(){ note_dtor("ee65762", this);} // tgen
+ee65762 ::ee65762(){ note_ctor("ee65762", this);} // tgen
+
+static void Test_ee65762()
+{
+ extern Class_Descriptor cd_ee65762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65762, buf);
+ ee65762 *dp, &lv = *(dp=new (buf) ee65762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee65762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee65762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(16,12), "ee65762");
+ check_base_class_offset(lv, (dd5762*), 0, "ee65762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65762.e");
+ test_class_info(&lv, &cd_ee65762);
+ dp->~ee65762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65762(Test_ee65762, "ee65762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65762C1Ev();
+extern void _ZN7ee65762D1Ev();
+Name_Map name_map_ee65762[] = {
+ NSPAIR(_ZN7ee65762C1Ev),
+ NSPAIR(_ZN7ee65762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee65762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65762[];
+extern void _ZN7ee657623barEv();
+extern void _ZN7ee657623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657623fooEv,_ZTv0_n16_N7ee657623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657623fooEv,_ZThn12_N7ee657623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657623barEv,_ZTv0_n20_N7ee657623barEv)();
+extern void ABISELECT(_ZThn16_N7ee657623barEv,_ZThn12_N7ee657623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657623fooEv,_ZTv0_n12_N7ee657623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657623fooEv,_ZThn20_N7ee657623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657623barEv,_ZTv0_n16_N7ee657623barEv)();
+extern void ABISELECT(_ZThn32_N7ee657623barEv,_ZThn20_N7ee657623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65762[0]),
+ (VTBL_ENTRY)&_ZN7ee657623barEv,
+ (VTBL_ENTRY)&_ZN7ee657623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657623fooEv,_ZTv0_n16_N7ee657623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657623barEv,_ZTv0_n20_N7ee657623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657623fooEv,_ZTv0_n12_N7ee657623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657623barEv,_ZTv0_n16_N7ee657623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee65762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee65762[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee65762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee65762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee65762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee65762[] = {
+ {&(_ZTV7ee65762[4]), 4,19},
+ {&(_tg__ZTV6dd5762__7ee65762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee65762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee65762[4]), 4,6},
+ {&(_ZTV7ee65762[11]), 11,19},
+ {&(_ZTV7ee65762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee65762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee65762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65762[];
+extern VTBL_ENTRY _ZTV7ee65762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65762[];
+static VTBL_ENTRY alt_thunk_names1376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn20_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn12_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657623barEv,_ZTv0_n16_N7ee657623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657623barEv,_ZThn20_N7ee657623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657623fooEv,_ZTv0_n12_N7ee657623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657623fooEv,_ZThn20_N7ee657623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657623barEv,_ZTv0_n20_N7ee657623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657623barEv,_ZThn12_N7ee657623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657623fooEv,_ZTv0_n16_N7ee657623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657623fooEv,_ZThn12_N7ee657623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65762 = { "ee65762", // class name
+ bases_ee65762, 4,
+ &(vtc_ee65762[0]), // expected_vtbl_contents
+ &(vtt_ee65762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75762 : virtual dd5762 {
+ int e;
+ virtual void foo(); // _ZN7ee757623fooEv
+ virtual void bar(); // _ZN7ee757623barEv
+ ~ee75762(); // tgen
+ ee75762(); // tgen
+};
+//SIG(1 ee75762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75762 ::foo(){vfunc_called(this, "_ZN7ee757623fooEv");}
+void ee75762 ::bar(){vfunc_called(this, "_ZN7ee757623barEv");}
+ee75762 ::~ee75762(){ note_dtor("ee75762", this);} // tgen
+ee75762 ::ee75762(){ note_ctor("ee75762", this);} // tgen
+
+static void Test_ee75762()
+{
+ extern Class_Descriptor cd_ee75762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75762, buf);
+ ee75762 *dp, &lv = *(dp=new (buf) ee75762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee75762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee75762");
+ check_base_class_offset(lv, (cc762*)(dd5762*), ABISELECT(32,16), "ee75762");
+ check_base_class_offset(lv, (dd5762*), ABISELECT(16,8), "ee75762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75762.e");
+ test_class_info(&lv, &cd_ee75762);
+ dp->~ee75762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75762(Test_ee75762, "ee75762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75762C1Ev();
+extern void _ZN7ee75762D1Ev();
+Name_Map name_map_ee75762[] = {
+ NSPAIR(_ZN7ee75762C1Ev),
+ NSPAIR(_ZN7ee75762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd5762;
+extern VTBL_ENTRY _ZTI6dd5762[];
+extern VTBL_ENTRY _ZTV6dd5762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5762[];
+static Base_Class bases_ee75762[] = {
+ // 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_bb62, 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_cc762, 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_dd5762, 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 _ZTI7ee75762[];
+extern void _ZN7ee757623fooEv();
+extern void _ZN7ee757623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757623barEv,_ZTv0_n20_N7ee757623barEv)();
+extern void ABISELECT(_ZThn16_N7ee757623barEv,_ZThn8_N7ee757623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757623fooEv,_ZTv0_n16_N7ee757623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757623fooEv,_ZThn16_N7ee757623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757623barEv,_ZTv0_n20_N7ee757623barEv)();
+extern void ABISELECT(_ZThn32_N7ee757623barEv,_ZThn16_N7ee757623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757623fooEv,_ZTv0_n12_N7ee757623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757623fooEv,_ZThn24_N7ee757623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757623barEv,_ZTv0_n16_N7ee757623barEv)();
+extern void ABISELECT(_ZThn48_N7ee757623barEv,_ZThn24_N7ee757623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75762[0]),
+ (VTBL_ENTRY)&_ZN7ee757623fooEv,
+ (VTBL_ENTRY)&_ZN7ee757623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757623barEv,_ZTv0_n20_N7ee757623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757623fooEv,_ZTv0_n16_N7ee757623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757623barEv,_ZTv0_n20_N7ee757623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757623fooEv,_ZTv0_n12_N7ee757623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757623barEv,_ZTv0_n16_N7ee757623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75762[];
+extern void _ZN6dd57623barEv();
+static VTBL_ENTRY _tg__ZTV6dd5762__7ee75762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN6dd57623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv)();
+extern void ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd5762__7ee75762[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv)();
+extern void ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd5762__7ee75762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee75762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee75762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee75762[] = {
+ {&(_ZTV7ee75762[5]), 5,26},
+ {&(_ZTV7ee75762[12]), 12,26},
+ {&(_ZTV7ee75762[18]), 18,26},
+ {&(_ZTV7ee75762[24]), 24,26},
+ {&(_tg__ZTV6dd5762__7ee75762[4]), 4,5},
+ {&(_tg__ZTV5cc762__6dd5762__7ee75762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd5762__7ee75762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee75762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee75762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75762[];
+extern VTBL_ENTRY _ZTV7ee75762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75762[];
+static VTBL_ENTRY alt_thunk_names1377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57623barEv,_ZTv0_n16_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57623barEv,_ZThn16_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57623barEv,_ZTv0_n20_N6dd57623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57623barEv,_ZThn8_N6dd57623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757623barEv,_ZTv0_n16_N7ee757623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757623barEv,_ZThn24_N7ee757623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757623fooEv,_ZTv0_n12_N7ee757623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757623fooEv,_ZThn24_N7ee757623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757623fooEv,_ZTv0_n16_N7ee757623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757623fooEv,_ZThn16_N7ee757623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757623barEv,_ZTv0_n20_N7ee757623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757623barEv,_ZThn16_N7ee757623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757623barEv,_ZThn8_N7ee757623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75762 = { "ee75762", // class name
+ bases_ee75762, 4,
+ &(vtc_ee75762[0]), // expected_vtbl_contents
+ &(vtt_ee75762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75762),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6762 : cc762 {
+ int d;
+ virtual void bar(); // _ZN6dd67623barEv
+ virtual void foo(); // _ZN6dd67623fooEv
+ ~dd6762(); // tgen
+ dd6762(); // tgen
+};
+//SIG(-1 dd6762) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6762 ::bar(){vfunc_called(this, "_ZN6dd67623barEv");}
+void dd6762 ::foo(){vfunc_called(this, "_ZN6dd67623fooEv");}
+dd6762 ::~dd6762(){ note_dtor("dd6762", this);} // tgen
+dd6762 ::dd6762(){ note_ctor("dd6762", this);} // tgen
+
+static void Test_dd6762()
+{
+ extern Class_Descriptor cd_dd6762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6762, buf);
+ dd6762 *dp, &lv = *(dp=new (buf) dd6762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(16,12), "dd6762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(16,12), "dd6762");
+ check_base_class_offset(lv, (cc762*), 0, "dd6762");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6762.d");
+ test_class_info(&lv, &cd_dd6762);
+ dp->~dd6762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6762(Test_dd6762, "dd6762", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6762C1Ev();
+extern void _ZN6dd6762D1Ev();
+Name_Map name_map_dd6762[] = {
+ NSPAIR(_ZN6dd6762C1Ev),
+ NSPAIR(_ZN6dd6762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd6762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd6762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd6762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd6762[] = {
+ {&(_ZTV6dd6762[3]), 3,11},
+ {&(_tg__ZTV5cc762__6dd6762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd6762[4]), 4,6},
+ {&(_ZTV6dd6762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static VTBL_ENTRY alt_thunk_names1378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6762 = { "dd6762", // class name
+ bases_dd6762, 3,
+ &(vtc_dd6762[0]), // expected_vtbl_contents
+ &(vtt_dd6762[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6762),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06762 : dd6762 {
+ int e;
+ ~ee06762(); // tgen
+ ee06762(); // tgen
+};
+//SIG(1 ee06762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06762 ::~ee06762(){ note_dtor("ee06762", this);} // tgen
+ee06762 ::ee06762(){ note_ctor("ee06762", this);} // tgen
+
+static void Test_ee06762()
+{
+ extern Class_Descriptor cd_ee06762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06762, buf);
+ ee06762 *dp, &lv = *(dp=new (buf) ee06762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee06762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(24,16), "ee06762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), 0, "ee06762");
+ check_base_class_offset(lv, (dd6762*), 0, "ee06762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06762.e");
+ test_class_info(&lv, &cd_ee06762);
+ dp->~ee06762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06762(Test_ee06762, "ee06762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06762C1Ev();
+extern void _ZN7ee06762D1Ev();
+Name_Map name_map_ee06762[] = {
+ NSPAIR(_ZN7ee06762C1Ev),
+ NSPAIR(_ZN7ee06762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee06762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee06762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee06762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee06762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee06762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee06762[] = {
+ {&(_ZTV7ee06762[3]), 3,11},
+ {&(_tg__ZTV6dd6762__7ee06762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee06762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee06762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee06762[4]), 4,6},
+ {&(_ZTV7ee06762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06762[];
+extern VTBL_ENTRY _ZTV7ee06762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06762[];
+static VTBL_ENTRY alt_thunk_names1379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06762 = { "ee06762", // class name
+ bases_ee06762, 4,
+ &(vtc_ee06762[0]), // expected_vtbl_contents
+ &(vtt_ee06762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16762 : virtual dd6762 {
+ int e;
+ ~ee16762(); // tgen
+ ee16762(); // tgen
+};
+//SIG(1 ee16762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16762 ::~ee16762(){ note_dtor("ee16762", this);} // tgen
+ee16762 ::ee16762(){ note_ctor("ee16762", this);} // tgen
+
+static void Test_ee16762()
+{
+ extern Class_Descriptor cd_ee16762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16762, buf);
+ ee16762 *dp, &lv = *(dp=new (buf) ee16762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee16762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(32,20), "ee16762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), ABISELECT(16,8), "ee16762");
+ check_base_class_offset(lv, (dd6762*), ABISELECT(16,8), "ee16762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16762.e");
+ test_class_info(&lv, &cd_ee16762);
+ dp->~ee16762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16762(Test_ee16762, "ee16762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16762C1Ev();
+extern void _ZN7ee16762D1Ev();
+Name_Map name_map_ee16762[] = {
+ NSPAIR(_ZN7ee16762C1Ev),
+ NSPAIR(_ZN7ee16762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee16762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, 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 _ZTI7ee16762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16762[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee16762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee16762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee16762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee16762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee16762[] = {
+ {&(_ZTV7ee16762[4]), 4,17},
+ {&(_ZTV7ee16762[9]), 9,17},
+ {&(_ZTV7ee16762[15]), 15,17},
+ {&(_tg__ZTV6dd6762__7ee16762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee16762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee16762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee16762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16762[];
+extern VTBL_ENTRY _ZTV7ee16762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16762[];
+static VTBL_ENTRY alt_thunk_names1380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16762 = { "ee16762", // class name
+ bases_ee16762, 4,
+ &(vtc_ee16762[0]), // expected_vtbl_contents
+ &(vtt_ee16762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16762),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26762 : dd6762 {
+ int e;
+ virtual void foo(); // _ZN7ee267623fooEv
+ ~ee26762(); // tgen
+ ee26762(); // tgen
+};
+//SIG(1 ee26762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26762 ::foo(){vfunc_called(this, "_ZN7ee267623fooEv");}
+ee26762 ::~ee26762(){ note_dtor("ee26762", this);} // tgen
+ee26762 ::ee26762(){ note_ctor("ee26762", this);} // tgen
+
+static void Test_ee26762()
+{
+ extern Class_Descriptor cd_ee26762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26762, buf);
+ ee26762 *dp, &lv = *(dp=new (buf) ee26762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee26762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(24,16), "ee26762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), 0, "ee26762");
+ check_base_class_offset(lv, (dd6762*), 0, "ee26762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26762.e");
+ test_class_info(&lv, &cd_ee26762);
+ dp->~ee26762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26762(Test_ee26762, "ee26762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26762C1Ev();
+extern void _ZN7ee26762D1Ev();
+Name_Map name_map_ee26762[] = {
+ NSPAIR(_ZN7ee26762C1Ev),
+ NSPAIR(_ZN7ee26762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee26762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26762[];
+extern void _ZN7ee267623fooEv();
+extern void _ZN6dd67623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267623fooEv,_ZTv0_n12_N7ee267623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267623fooEv,_ZThn16_N7ee267623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26762[0]),
+ (VTBL_ENTRY)&_ZN7ee267623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267623fooEv,_ZTv0_n12_N7ee267623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee26762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee26762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee26762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee26762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee26762[] = {
+ {&(_ZTV7ee26762[3]), 3,11},
+ {&(_tg__ZTV6dd6762__7ee26762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee26762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee26762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee26762[4]), 4,6},
+ {&(_ZTV7ee26762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26762[];
+extern VTBL_ENTRY _ZTV7ee26762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26762[];
+static VTBL_ENTRY alt_thunk_names1381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267623fooEv,_ZTv0_n12_N7ee267623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267623fooEv,_ZThn16_N7ee267623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26762 = { "ee26762", // class name
+ bases_ee26762, 4,
+ &(vtc_ee26762[0]), // expected_vtbl_contents
+ &(vtt_ee26762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36762 : virtual dd6762 {
+ int e;
+ virtual void foo(); // _ZN7ee367623fooEv
+ ~ee36762(); // tgen
+ ee36762(); // tgen
+};
+//SIG(1 ee36762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36762 ::foo(){vfunc_called(this, "_ZN7ee367623fooEv");}
+ee36762 ::~ee36762(){ note_dtor("ee36762", this);} // tgen
+ee36762 ::ee36762(){ note_ctor("ee36762", this);} // tgen
+
+static void Test_ee36762()
+{
+ extern Class_Descriptor cd_ee36762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36762, buf);
+ ee36762 *dp, &lv = *(dp=new (buf) ee36762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee36762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(32,20), "ee36762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), ABISELECT(16,8), "ee36762");
+ check_base_class_offset(lv, (dd6762*), ABISELECT(16,8), "ee36762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36762.e");
+ test_class_info(&lv, &cd_ee36762);
+ dp->~ee36762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36762(Test_ee36762, "ee36762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36762C1Ev();
+extern void _ZN7ee36762D1Ev();
+Name_Map name_map_ee36762[] = {
+ NSPAIR(_ZN7ee36762C1Ev),
+ NSPAIR(_ZN7ee36762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee36762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, ABISELECT(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 _ZTI7ee36762[];
+extern void _ZN7ee367623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367623fooEv,_ZTv0_n16_N7ee367623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367623fooEv,_ZThn8_N7ee367623fooEv)() __attribute__((weak));
+extern void _ZN6dd67623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367623fooEv,_ZTv0_n12_N7ee367623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367623fooEv,_ZThn20_N7ee367623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36762[0]),
+ (VTBL_ENTRY)&_ZN7ee367623fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367623fooEv,_ZTv0_n16_N7ee367623fooEv),
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367623fooEv,_ZTv0_n12_N7ee367623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee36762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee36762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee36762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee36762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee36762[] = {
+ {&(_ZTV7ee36762[4]), 4,18},
+ {&(_ZTV7ee36762[10]), 10,18},
+ {&(_ZTV7ee36762[16]), 16,18},
+ {&(_tg__ZTV6dd6762__7ee36762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee36762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee36762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee36762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36762[];
+extern VTBL_ENTRY _ZTV7ee36762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36762[];
+static VTBL_ENTRY alt_thunk_names1382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367623fooEv,_ZTv0_n12_N7ee367623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367623fooEv,_ZThn20_N7ee367623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367623fooEv,_ZTv0_n16_N7ee367623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367623fooEv,_ZThn8_N7ee367623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36762 = { "ee36762", // class name
+ bases_ee36762, 4,
+ &(vtc_ee36762[0]), // expected_vtbl_contents
+ &(vtt_ee36762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46762 : dd6762 {
+ int e;
+ virtual void bar(); // _ZN7ee467623barEv
+ ~ee46762(); // tgen
+ ee46762(); // tgen
+};
+//SIG(1 ee46762) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46762 ::bar(){vfunc_called(this, "_ZN7ee467623barEv");}
+ee46762 ::~ee46762(){ note_dtor("ee46762", this);} // tgen
+ee46762 ::ee46762(){ note_ctor("ee46762", this);} // tgen
+
+static void Test_ee46762()
+{
+ extern Class_Descriptor cd_ee46762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46762, buf);
+ ee46762 *dp, &lv = *(dp=new (buf) ee46762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee46762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(24,16), "ee46762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), 0, "ee46762");
+ check_base_class_offset(lv, (dd6762*), 0, "ee46762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46762.e");
+ test_class_info(&lv, &cd_ee46762);
+ dp->~ee46762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46762(Test_ee46762, "ee46762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46762C1Ev();
+extern void _ZN7ee46762D1Ev();
+Name_Map name_map_ee46762[] = {
+ NSPAIR(_ZN7ee46762C1Ev),
+ NSPAIR(_ZN7ee46762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee46762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN7ee467623barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee467623barEv,_ZTv0_n16_N7ee467623barEv)();
+extern void ABISELECT(_ZThn24_N7ee467623barEv,_ZThn16_N7ee467623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN7ee467623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467623barEv,_ZTv0_n16_N7ee467623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee46762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee46762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee46762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee46762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee46762[] = {
+ {&(_ZTV7ee46762[3]), 3,11},
+ {&(_tg__ZTV6dd6762__7ee46762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee46762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee46762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee46762[4]), 4,6},
+ {&(_ZTV7ee46762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46762[];
+extern VTBL_ENTRY _ZTV7ee46762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46762[];
+static VTBL_ENTRY alt_thunk_names1383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467623barEv,_ZTv0_n16_N7ee467623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467623barEv,_ZThn16_N7ee467623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46762 = { "ee46762", // class name
+ bases_ee46762, 4,
+ &(vtc_ee46762[0]), // expected_vtbl_contents
+ &(vtt_ee46762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56762 : virtual dd6762 {
+ int e;
+ virtual void bar(); // _ZN7ee567623barEv
+ ~ee56762(); // tgen
+ ee56762(); // tgen
+};
+//SIG(1 ee56762) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56762 ::bar(){vfunc_called(this, "_ZN7ee567623barEv");}
+ee56762 ::~ee56762(){ note_dtor("ee56762", this);} // tgen
+ee56762 ::ee56762(){ note_ctor("ee56762", this);} // tgen
+
+static void Test_ee56762()
+{
+ extern Class_Descriptor cd_ee56762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56762, buf);
+ ee56762 *dp, &lv = *(dp=new (buf) ee56762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee56762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(32,20), "ee56762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), ABISELECT(16,8), "ee56762");
+ check_base_class_offset(lv, (dd6762*), ABISELECT(16,8), "ee56762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56762.e");
+ test_class_info(&lv, &cd_ee56762);
+ dp->~ee56762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56762(Test_ee56762, "ee56762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56762C1Ev();
+extern void _ZN7ee56762D1Ev();
+Name_Map name_map_ee56762[] = {
+ NSPAIR(_ZN7ee56762C1Ev),
+ NSPAIR(_ZN7ee56762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee56762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, ABISELECT(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 _ZTI7ee56762[];
+extern void _ZN7ee567623barEv();
+extern void _ZN6dd67623fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567623barEv,_ZTv0_n20_N7ee567623barEv)();
+extern void ABISELECT(_ZThn16_N7ee567623barEv,_ZThn8_N7ee567623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567623barEv,_ZTv0_n16_N7ee567623barEv)();
+extern void ABISELECT(_ZThn32_N7ee567623barEv,_ZThn20_N7ee567623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56762[0]),
+ (VTBL_ENTRY)&_ZN7ee567623barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567623barEv,_ZTv0_n20_N7ee567623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567623barEv,_ZTv0_n16_N7ee567623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee56762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee56762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee56762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee56762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee56762[] = {
+ {&(_ZTV7ee56762[4]), 4,18},
+ {&(_ZTV7ee56762[10]), 10,18},
+ {&(_ZTV7ee56762[16]), 16,18},
+ {&(_tg__ZTV6dd6762__7ee56762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee56762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee56762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee56762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56762[];
+extern VTBL_ENTRY _ZTV7ee56762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56762[];
+static VTBL_ENTRY alt_thunk_names1384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567623barEv,_ZTv0_n16_N7ee567623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567623barEv,_ZThn20_N7ee567623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567623barEv,_ZTv0_n20_N7ee567623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567623barEv,_ZThn8_N7ee567623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56762 = { "ee56762", // class name
+ bases_ee56762, 4,
+ &(vtc_ee56762[0]), // expected_vtbl_contents
+ &(vtt_ee56762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56762),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66762 : dd6762 {
+ int e;
+ virtual void foo(); // _ZN7ee667623fooEv
+ virtual void bar(); // _ZN7ee667623barEv
+ ~ee66762(); // tgen
+ ee66762(); // tgen
+};
+//SIG(1 ee66762) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66762 ::foo(){vfunc_called(this, "_ZN7ee667623fooEv");}
+void ee66762 ::bar(){vfunc_called(this, "_ZN7ee667623barEv");}
+ee66762 ::~ee66762(){ note_dtor("ee66762", this);} // tgen
+ee66762 ::ee66762(){ note_ctor("ee66762", this);} // tgen
+
+static void Test_ee66762()
+{
+ extern Class_Descriptor cd_ee66762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66762, buf);
+ ee66762 *dp, &lv = *(dp=new (buf) ee66762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(24,16), "ee66762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(24,16), "ee66762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), 0, "ee66762");
+ check_base_class_offset(lv, (dd6762*), 0, "ee66762");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66762.e");
+ test_class_info(&lv, &cd_ee66762);
+ dp->~ee66762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66762(Test_ee66762, "ee66762", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66762C1Ev();
+extern void _ZN7ee66762D1Ev();
+Name_Map name_map_ee66762[] = {
+ NSPAIR(_ZN7ee66762C1Ev),
+ NSPAIR(_ZN7ee66762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee66762[] = {
+ // 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_bb62, 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_cc762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66762[];
+extern void _ZN7ee667623fooEv();
+extern void _ZN7ee667623barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667623fooEv,_ZTv0_n12_N7ee667623fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667623fooEv,_ZThn16_N7ee667623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667623barEv,_ZTv0_n16_N7ee667623barEv)();
+extern void ABISELECT(_ZThn24_N7ee667623barEv,_ZThn16_N7ee667623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66762[0]),
+ (VTBL_ENTRY)&_ZN7ee667623fooEv,
+ (VTBL_ENTRY)&_ZN7ee667623barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667623fooEv,_ZTv0_n12_N7ee667623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667623barEv,_ZTv0_n16_N7ee667623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee66762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee66762[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee66762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee66762[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee66762[] = {
+ {&(_ZTV7ee66762[3]), 3,11},
+ {&(_tg__ZTV6dd6762__7ee66762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee66762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee66762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee66762[4]), 4,6},
+ {&(_ZTV7ee66762[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66762[];
+extern VTBL_ENTRY _ZTV7ee66762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66762[];
+static VTBL_ENTRY alt_thunk_names1385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623barEv,_ZThn16_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67623fooEv,_ZThn16_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623barEv,_ZThn16_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7623fooEv,_ZThn16_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667623barEv,_ZTv0_n16_N7ee667623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667623barEv,_ZThn16_N7ee667623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667623fooEv,_ZTv0_n12_N7ee667623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667623fooEv,_ZThn16_N7ee667623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66762 = { "ee66762", // class name
+ bases_ee66762, 4,
+ &(vtc_ee66762[0]), // expected_vtbl_contents
+ &(vtt_ee66762[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66762),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66762),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76762 : virtual dd6762 {
+ int e;
+ virtual void foo(); // _ZN7ee767623fooEv
+ virtual void bar(); // _ZN7ee767623barEv
+ ~ee76762(); // tgen
+ ee76762(); // tgen
+};
+//SIG(1 ee76762) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76762 ::foo(){vfunc_called(this, "_ZN7ee767623fooEv");}
+void ee76762 ::bar(){vfunc_called(this, "_ZN7ee767623barEv");}
+ee76762 ::~ee76762(){ note_dtor("ee76762", this);} // tgen
+ee76762 ::ee76762(){ note_ctor("ee76762", this);} // tgen
+
+static void Test_ee76762()
+{
+ extern Class_Descriptor cd_ee76762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76762, buf);
+ ee76762 *dp, &lv = *(dp=new (buf) ee76762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee76762");
+ check_base_class_offset(lv, (bb62*)(cc762*)(dd6762*), ABISELECT(32,20), "ee76762");
+ check_base_class_offset(lv, (cc762*)(dd6762*), ABISELECT(16,8), "ee76762");
+ check_base_class_offset(lv, (dd6762*), ABISELECT(16,8), "ee76762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76762.e");
+ test_class_info(&lv, &cd_ee76762);
+ dp->~ee76762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76762(Test_ee76762, "ee76762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76762C1Ev();
+extern void _ZN7ee76762D1Ev();
+Name_Map name_map_ee76762[] = {
+ NSPAIR(_ZN7ee76762C1Ev),
+ NSPAIR(_ZN7ee76762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd6762;
+extern VTBL_ENTRY _ZTI6dd6762[];
+extern VTBL_ENTRY _ZTV6dd6762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6762[];
+static Base_Class bases_ee76762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6762, ABISELECT(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 _ZTI7ee76762[];
+extern void _ZN7ee767623fooEv();
+extern void _ZN7ee767623barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767623fooEv,_ZTv0_n16_N7ee767623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767623fooEv,_ZThn8_N7ee767623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767623barEv,_ZTv0_n20_N7ee767623barEv)();
+extern void ABISELECT(_ZThn16_N7ee767623barEv,_ZThn8_N7ee767623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767623fooEv,_ZTv0_n12_N7ee767623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767623fooEv,_ZThn20_N7ee767623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767623barEv,_ZTv0_n16_N7ee767623barEv)();
+extern void ABISELECT(_ZThn32_N7ee767623barEv,_ZThn20_N7ee767623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76762[0]),
+ (VTBL_ENTRY)&_ZN7ee767623fooEv,
+ (VTBL_ENTRY)&_ZN7ee767623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767623fooEv,_ZTv0_n16_N7ee767623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767623barEv,_ZTv0_n20_N7ee767623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767623fooEv,_ZTv0_n12_N7ee767623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767623barEv,_ZTv0_n16_N7ee767623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76762[];
+extern void _ZN6dd67623fooEv();
+extern void _ZN6dd67623barEv();
+static VTBL_ENTRY _tg__ZTV6dd6762__7ee76762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&_ZN6dd67623fooEv,
+ (VTBL_ENTRY)&_ZN6dd67623barEv,
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc7626dd6762__7ee76762[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc7626dd6762__7ee76762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv)();
+extern void ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd6762__7ee76762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv),
+};
+static VTT_ENTRY vtt_ee76762[] = {
+ {&(_ZTV7ee76762[4]), 4,19},
+ {&(_ZTV7ee76762[11]), 11,19},
+ {&(_ZTV7ee76762[17]), 17,19},
+ {&(_tg__ZTV6dd6762__7ee76762[3]), 3,5},
+ {&(_tg__ZTV5cc7626dd6762__7ee76762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc7626dd6762__7ee76762[4]), 4,6},
+ {&(_tg__ZTV4bb62__6dd6762__7ee76762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76762[];
+extern VTBL_ENTRY _ZTV7ee76762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76762[];
+static VTBL_ENTRY alt_thunk_names1386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67623barEv,_ZTv0_n16_N6dd67623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623barEv,_ZThn12_N6dd67623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67623fooEv,_ZTv0_n12_N6dd67623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67623fooEv,_ZThn12_N6dd67623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn12_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn12_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767623barEv,_ZTv0_n16_N7ee767623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767623barEv,_ZThn20_N7ee767623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767623fooEv,_ZTv0_n12_N7ee767623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767623fooEv,_ZThn20_N7ee767623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767623barEv,_ZTv0_n20_N7ee767623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767623barEv,_ZThn8_N7ee767623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767623fooEv,_ZTv0_n16_N7ee767623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767623fooEv,_ZThn8_N7ee767623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76762 = { "ee76762", // class name
+ bases_ee76762, 4,
+ &(vtc_ee76762[0]), // expected_vtbl_contents
+ &(vtt_ee76762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76762),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1386,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7762 : virtual cc762 {
+ int d;
+ virtual void bar(); // _ZN6dd77623barEv
+ virtual void foo(); // _ZN6dd77623fooEv
+ ~dd7762(); // tgen
+ dd7762(); // tgen
+};
+//SIG(-1 dd7762) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7762 ::bar(){vfunc_called(this, "_ZN6dd77623barEv");}
+void dd7762 ::foo(){vfunc_called(this, "_ZN6dd77623fooEv");}
+dd7762 ::~dd7762(){ note_dtor("dd7762", this);} // tgen
+dd7762 ::dd7762(){ note_ctor("dd7762", this);} // tgen
+
+static void Test_dd7762()
+{
+ extern Class_Descriptor cd_dd7762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7762, buf);
+ dd7762 *dp, &lv = *(dp=new (buf) dd7762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,16), "dd7762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,16), "dd7762");
+ check_base_class_offset(lv, (cc762*), ABISELECT(16,8), "dd7762");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7762.d");
+ test_class_info(&lv, &cd_dd7762);
+ dp->~dd7762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7762(Test_dd7762, "dd7762", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7762C1Ev();
+extern void _ZN6dd7762D1Ev();
+Name_Map name_map_dd7762[] = {
+ NSPAIR(_ZN6dd7762C1Ev),
+ NSPAIR(_ZN6dd7762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+static Base_Class bases_dd7762[] = {
+ // 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_bb62, 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_cc762, ABISELECT(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 _ZTI6dd7762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__6dd7762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_dd7762[] = {
+ {&(_ZTV6dd7762[4]), 4,19},
+ {&(_ZTV6dd7762[11]), 11,19},
+ {&(_ZTV6dd7762[17]), 17,19},
+ {&(_tg__ZTV5cc762__6dd7762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__6dd7762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static VTBL_ENTRY alt_thunk_names1387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7762 = { "dd7762", // class name
+ bases_dd7762, 3,
+ &(vtc_dd7762[0]), // expected_vtbl_contents
+ &(vtt_dd7762[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7762),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07762 : dd7762 {
+ int e;
+ ~ee07762(); // tgen
+ ee07762(); // tgen
+};
+//SIG(1 ee07762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07762 ::~ee07762(){ note_dtor("ee07762", this);} // tgen
+ee07762 ::ee07762(){ note_ctor("ee07762", this);} // tgen
+
+static void Test_ee07762()
+{
+ extern Class_Descriptor cd_ee07762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07762, buf);
+ ee07762 *dp, &lv = *(dp=new (buf) ee07762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee07762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee07762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(16,12), "ee07762");
+ check_base_class_offset(lv, (dd7762*), 0, "ee07762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07762.e");
+ test_class_info(&lv, &cd_ee07762);
+ dp->~ee07762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07762(Test_ee07762, "ee07762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07762C1Ev();
+extern void _ZN7ee07762D1Ev();
+Name_Map name_map_ee07762[] = {
+ NSPAIR(_ZN7ee07762C1Ev),
+ NSPAIR(_ZN7ee07762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee07762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee07762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee07762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee07762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee07762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee07762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee07762[] = {
+ {&(_ZTV7ee07762[4]), 4,19},
+ {&(_tg__ZTV6dd7762__7ee07762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee07762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee07762[4]), 4,6},
+ {&(_ZTV7ee07762[11]), 11,19},
+ {&(_ZTV7ee07762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee07762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee07762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07762[];
+extern VTBL_ENTRY _ZTV7ee07762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07762[];
+static VTBL_ENTRY alt_thunk_names1388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07762 = { "ee07762", // class name
+ bases_ee07762, 4,
+ &(vtc_ee07762[0]), // expected_vtbl_contents
+ &(vtt_ee07762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17762 : virtual dd7762 {
+ int e;
+ ~ee17762(); // tgen
+ ee17762(); // tgen
+};
+//SIG(1 ee17762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17762 ::~ee17762(){ note_dtor("ee17762", this);} // tgen
+ee17762 ::ee17762(){ note_ctor("ee17762", this);} // tgen
+
+static void Test_ee17762()
+{
+ extern Class_Descriptor cd_ee17762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17762, buf);
+ ee17762 *dp, &lv = *(dp=new (buf) ee17762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee17762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee17762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(32,16), "ee17762");
+ check_base_class_offset(lv, (dd7762*), ABISELECT(16,8), "ee17762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17762.e");
+ test_class_info(&lv, &cd_ee17762);
+ dp->~ee17762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17762(Test_ee17762, "ee17762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17762C1Ev();
+extern void _ZN7ee17762D1Ev();
+Name_Map name_map_ee17762[] = {
+ NSPAIR(_ZN7ee17762C1Ev),
+ NSPAIR(_ZN7ee17762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee17762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 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 _ZTI7ee17762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17762[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee17762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee17762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee17762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee17762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee17762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee17762[] = {
+ {&(_ZTV7ee17762[5]), 5,26},
+ {&(_ZTV7ee17762[11]), 11,26},
+ {&(_ZTV7ee17762[18]), 18,26},
+ {&(_ZTV7ee17762[24]), 24,26},
+ {&(_tg__ZTV6dd7762__7ee17762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee17762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee17762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee17762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee17762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17762[];
+extern VTBL_ENTRY _ZTV7ee17762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17762[];
+static VTBL_ENTRY alt_thunk_names1389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17762 = { "ee17762", // class name
+ bases_ee17762, 4,
+ &(vtc_ee17762[0]), // expected_vtbl_contents
+ &(vtt_ee17762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17762),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27762 : dd7762 {
+ int e;
+ virtual void foo(); // _ZN7ee277623fooEv
+ ~ee27762(); // tgen
+ ee27762(); // tgen
+};
+//SIG(1 ee27762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27762 ::foo(){vfunc_called(this, "_ZN7ee277623fooEv");}
+ee27762 ::~ee27762(){ note_dtor("ee27762", this);} // tgen
+ee27762 ::ee27762(){ note_ctor("ee27762", this);} // tgen
+
+static void Test_ee27762()
+{
+ extern Class_Descriptor cd_ee27762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27762, buf);
+ ee27762 *dp, &lv = *(dp=new (buf) ee27762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee27762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee27762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(16,12), "ee27762");
+ check_base_class_offset(lv, (dd7762*), 0, "ee27762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27762.e");
+ test_class_info(&lv, &cd_ee27762);
+ dp->~ee27762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27762(Test_ee27762, "ee27762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27762C1Ev();
+extern void _ZN7ee27762D1Ev();
+Name_Map name_map_ee27762[] = {
+ NSPAIR(_ZN7ee27762C1Ev),
+ NSPAIR(_ZN7ee27762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee27762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN7ee277623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277623fooEv,_ZTv0_n16_N7ee277623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277623fooEv,_ZThn12_N7ee277623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277623fooEv,_ZTv0_n12_N7ee277623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277623fooEv,_ZThn20_N7ee277623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN7ee277623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277623fooEv,_ZTv0_n16_N7ee277623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277623fooEv,_ZTv0_n12_N7ee277623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee27762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee27762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee27762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee27762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee27762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee27762[] = {
+ {&(_ZTV7ee27762[4]), 4,19},
+ {&(_tg__ZTV6dd7762__7ee27762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee27762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee27762[4]), 4,6},
+ {&(_ZTV7ee27762[11]), 11,19},
+ {&(_ZTV7ee27762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee27762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee27762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27762[];
+extern VTBL_ENTRY _ZTV7ee27762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27762[];
+static VTBL_ENTRY alt_thunk_names1390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277623fooEv,_ZTv0_n12_N7ee277623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277623fooEv,_ZThn20_N7ee277623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277623fooEv,_ZTv0_n16_N7ee277623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277623fooEv,_ZThn12_N7ee277623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27762 = { "ee27762", // class name
+ bases_ee27762, 4,
+ &(vtc_ee27762[0]), // expected_vtbl_contents
+ &(vtt_ee27762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37762 : virtual dd7762 {
+ int e;
+ virtual void foo(); // _ZN7ee377623fooEv
+ ~ee37762(); // tgen
+ ee37762(); // tgen
+};
+//SIG(1 ee37762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37762 ::foo(){vfunc_called(this, "_ZN7ee377623fooEv");}
+ee37762 ::~ee37762(){ note_dtor("ee37762", this);} // tgen
+ee37762 ::ee37762(){ note_ctor("ee37762", this);} // tgen
+
+static void Test_ee37762()
+{
+ extern Class_Descriptor cd_ee37762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37762, buf);
+ ee37762 *dp, &lv = *(dp=new (buf) ee37762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee37762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee37762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(32,16), "ee37762");
+ check_base_class_offset(lv, (dd7762*), ABISELECT(16,8), "ee37762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37762.e");
+ test_class_info(&lv, &cd_ee37762);
+ dp->~ee37762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37762(Test_ee37762, "ee37762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37762C1Ev();
+extern void _ZN7ee37762D1Ev();
+Name_Map name_map_ee37762[] = {
+ NSPAIR(_ZN7ee37762C1Ev),
+ NSPAIR(_ZN7ee37762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee37762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 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 _ZTI7ee37762[];
+extern void _ZN7ee377623fooEv();
+extern void _ZN6dd77623barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377623fooEv,_ZTv0_n24_N7ee377623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377623fooEv,_ZThn8_N7ee377623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377623fooEv,_ZTv0_n16_N7ee377623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377623fooEv,_ZThn16_N7ee377623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377623fooEv,_ZTv0_n12_N7ee377623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377623fooEv,_ZThn24_N7ee377623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37762[0]),
+ (VTBL_ENTRY)&_ZN7ee377623fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377623fooEv,_ZTv0_n24_N7ee377623fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377623fooEv,_ZTv0_n16_N7ee377623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377623fooEv,_ZTv0_n12_N7ee377623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee37762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee37762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee37762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee37762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee37762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee37762[] = {
+ {&(_ZTV7ee37762[5]), 5,27},
+ {&(_ZTV7ee37762[12]), 12,27},
+ {&(_ZTV7ee37762[19]), 19,27},
+ {&(_ZTV7ee37762[25]), 25,27},
+ {&(_tg__ZTV6dd7762__7ee37762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee37762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee37762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee37762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee37762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37762[];
+extern VTBL_ENTRY _ZTV7ee37762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37762[];
+static VTBL_ENTRY alt_thunk_names1391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377623fooEv,_ZTv0_n12_N7ee377623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377623fooEv,_ZThn24_N7ee377623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377623fooEv,_ZTv0_n16_N7ee377623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377623fooEv,_ZThn16_N7ee377623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377623fooEv,_ZTv0_n24_N7ee377623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377623fooEv,_ZThn8_N7ee377623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37762 = { "ee37762", // class name
+ bases_ee37762, 4,
+ &(vtc_ee37762[0]), // expected_vtbl_contents
+ &(vtt_ee37762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37762),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47762 : dd7762 {
+ int e;
+ virtual void bar(); // _ZN7ee477623barEv
+ ~ee47762(); // tgen
+ ee47762(); // tgen
+};
+//SIG(1 ee47762) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47762 ::bar(){vfunc_called(this, "_ZN7ee477623barEv");}
+ee47762 ::~ee47762(){ note_dtor("ee47762", this);} // tgen
+ee47762 ::ee47762(){ note_ctor("ee47762", this);} // tgen
+
+static void Test_ee47762()
+{
+ extern Class_Descriptor cd_ee47762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47762, buf);
+ ee47762 *dp, &lv = *(dp=new (buf) ee47762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee47762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee47762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(16,12), "ee47762");
+ check_base_class_offset(lv, (dd7762*), 0, "ee47762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47762.e");
+ test_class_info(&lv, &cd_ee47762);
+ dp->~ee47762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47762(Test_ee47762, "ee47762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47762C1Ev();
+extern void _ZN7ee47762D1Ev();
+Name_Map name_map_ee47762[] = {
+ NSPAIR(_ZN7ee47762C1Ev),
+ NSPAIR(_ZN7ee47762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee47762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47762[];
+extern void _ZN7ee477623barEv();
+extern void _ZN6dd77623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477623barEv,_ZTv0_n20_N7ee477623barEv)();
+extern void ABISELECT(_ZThn16_N7ee477623barEv,_ZThn12_N7ee477623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477623barEv,_ZTv0_n16_N7ee477623barEv)();
+extern void ABISELECT(_ZThn32_N7ee477623barEv,_ZThn20_N7ee477623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47762[0]),
+ (VTBL_ENTRY)&_ZN7ee477623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477623barEv,_ZTv0_n20_N7ee477623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477623barEv,_ZTv0_n16_N7ee477623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee47762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee47762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee47762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee47762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee47762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee47762[] = {
+ {&(_ZTV7ee47762[4]), 4,19},
+ {&(_tg__ZTV6dd7762__7ee47762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee47762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee47762[4]), 4,6},
+ {&(_ZTV7ee47762[11]), 11,19},
+ {&(_ZTV7ee47762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee47762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee47762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47762[];
+extern VTBL_ENTRY _ZTV7ee47762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47762[];
+static VTBL_ENTRY alt_thunk_names1392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477623barEv,_ZTv0_n16_N7ee477623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477623barEv,_ZThn20_N7ee477623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477623barEv,_ZTv0_n20_N7ee477623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477623barEv,_ZThn12_N7ee477623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47762 = { "ee47762", // class name
+ bases_ee47762, 4,
+ &(vtc_ee47762[0]), // expected_vtbl_contents
+ &(vtt_ee47762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57762 : virtual dd7762 {
+ int e;
+ virtual void bar(); // _ZN7ee577623barEv
+ ~ee57762(); // tgen
+ ee57762(); // tgen
+};
+//SIG(1 ee57762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57762 ::bar(){vfunc_called(this, "_ZN7ee577623barEv");}
+ee57762 ::~ee57762(){ note_dtor("ee57762", this);} // tgen
+ee57762 ::ee57762(){ note_ctor("ee57762", this);} // tgen
+
+static void Test_ee57762()
+{
+ extern Class_Descriptor cd_ee57762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57762, buf);
+ ee57762 *dp, &lv = *(dp=new (buf) ee57762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee57762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee57762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(32,16), "ee57762");
+ check_base_class_offset(lv, (dd7762*), ABISELECT(16,8), "ee57762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57762.e");
+ test_class_info(&lv, &cd_ee57762);
+ dp->~ee57762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57762(Test_ee57762, "ee57762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57762C1Ev();
+extern void _ZN7ee57762D1Ev();
+Name_Map name_map_ee57762[] = {
+ NSPAIR(_ZN7ee57762C1Ev),
+ NSPAIR(_ZN7ee57762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee57762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 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 _ZTI7ee57762[];
+extern void _ZN7ee577623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577623barEv,_ZTv0_n20_N7ee577623barEv)();
+extern void ABISELECT(_ZThn16_N7ee577623barEv,_ZThn8_N7ee577623barEv)() __attribute__((weak));
+extern void _ZN6dd77623fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577623barEv,_ZTv0_n20_N7ee577623barEv)();
+extern void ABISELECT(_ZThn32_N7ee577623barEv,_ZThn16_N7ee577623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577623barEv,_ZTv0_n16_N7ee577623barEv)();
+extern void ABISELECT(_ZThn48_N7ee577623barEv,_ZThn24_N7ee577623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57762[0]),
+ (VTBL_ENTRY)&_ZN7ee577623barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577623barEv,_ZTv0_n20_N7ee577623barEv),
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577623barEv,_ZTv0_n20_N7ee577623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577623barEv,_ZTv0_n16_N7ee577623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee57762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee57762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee57762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee57762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee57762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee57762[] = {
+ {&(_ZTV7ee57762[5]), 5,27},
+ {&(_ZTV7ee57762[12]), 12,27},
+ {&(_ZTV7ee57762[19]), 19,27},
+ {&(_ZTV7ee57762[25]), 25,27},
+ {&(_tg__ZTV6dd7762__7ee57762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee57762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee57762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee57762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee57762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57762[];
+extern VTBL_ENTRY _ZTV7ee57762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57762[];
+static VTBL_ENTRY alt_thunk_names1393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577623barEv,_ZTv0_n16_N7ee577623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577623barEv,_ZThn24_N7ee577623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577623barEv,_ZTv0_n20_N7ee577623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577623barEv,_ZThn16_N7ee577623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577623barEv,_ZThn8_N7ee577623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57762 = { "ee57762", // class name
+ bases_ee57762, 4,
+ &(vtc_ee57762[0]), // expected_vtbl_contents
+ &(vtt_ee57762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57762),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67762 : dd7762 {
+ int e;
+ virtual void foo(); // _ZN7ee677623fooEv
+ virtual void bar(); // _ZN7ee677623barEv
+ ~ee67762(); // tgen
+ ee67762(); // tgen
+};
+//SIG(1 ee67762) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67762 ::foo(){vfunc_called(this, "_ZN7ee677623fooEv");}
+void ee67762 ::bar(){vfunc_called(this, "_ZN7ee677623barEv");}
+ee67762 ::~ee67762(){ note_dtor("ee67762", this);} // tgen
+ee67762 ::ee67762(){ note_ctor("ee67762", this);} // tgen
+
+static void Test_ee67762()
+{
+ extern Class_Descriptor cd_ee67762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67762, buf);
+ ee67762 *dp, &lv = *(dp=new (buf) ee67762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(32,20), "ee67762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(32,20), "ee67762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(16,12), "ee67762");
+ check_base_class_offset(lv, (dd7762*), 0, "ee67762");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67762.e");
+ test_class_info(&lv, &cd_ee67762);
+ dp->~ee67762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67762(Test_ee67762, "ee67762", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67762C1Ev();
+extern void _ZN7ee67762D1Ev();
+Name_Map name_map_ee67762[] = {
+ NSPAIR(_ZN7ee67762C1Ev),
+ NSPAIR(_ZN7ee67762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee67762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67762[];
+extern void _ZN7ee677623barEv();
+extern void _ZN7ee677623fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677623fooEv,_ZTv0_n16_N7ee677623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677623fooEv,_ZThn12_N7ee677623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677623barEv,_ZTv0_n20_N7ee677623barEv)();
+extern void ABISELECT(_ZThn16_N7ee677623barEv,_ZThn12_N7ee677623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677623fooEv,_ZTv0_n12_N7ee677623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677623fooEv,_ZThn20_N7ee677623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677623barEv,_ZTv0_n16_N7ee677623barEv)();
+extern void ABISELECT(_ZThn32_N7ee677623barEv,_ZThn20_N7ee677623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67762[0]),
+ (VTBL_ENTRY)&_ZN7ee677623barEv,
+ (VTBL_ENTRY)&_ZN7ee677623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677623fooEv,_ZTv0_n16_N7ee677623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677623barEv,_ZTv0_n20_N7ee677623barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677623fooEv,_ZTv0_n12_N7ee677623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677623barEv,_ZTv0_n16_N7ee677623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee67762[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee67762[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee67762[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee67762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee67762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee67762[] = {
+ {&(_ZTV7ee67762[4]), 4,19},
+ {&(_tg__ZTV6dd7762__7ee67762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee67762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee67762[4]), 4,6},
+ {&(_ZTV7ee67762[11]), 11,19},
+ {&(_ZTV7ee67762[17]), 17,19},
+ {&(_tg__ZTV5cc762__7ee67762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee67762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67762[];
+extern VTBL_ENTRY _ZTV7ee67762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67762[];
+static VTBL_ENTRY alt_thunk_names1394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn20_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn20_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn12_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn12_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677623barEv,_ZTv0_n16_N7ee677623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677623barEv,_ZThn20_N7ee677623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677623fooEv,_ZTv0_n12_N7ee677623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677623fooEv,_ZThn20_N7ee677623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677623barEv,_ZTv0_n20_N7ee677623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677623barEv,_ZThn12_N7ee677623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677623fooEv,_ZTv0_n16_N7ee677623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677623fooEv,_ZThn12_N7ee677623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67762 = { "ee67762", // class name
+ bases_ee67762, 4,
+ &(vtc_ee67762[0]), // expected_vtbl_contents
+ &(vtt_ee67762[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67762),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67762),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67762),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77762 : virtual dd7762 {
+ int e;
+ virtual void foo(); // _ZN7ee777623fooEv
+ virtual void bar(); // _ZN7ee777623barEv
+ ~ee77762(); // tgen
+ ee77762(); // tgen
+};
+//SIG(1 ee77762) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77762 ::foo(){vfunc_called(this, "_ZN7ee777623fooEv");}
+void ee77762 ::bar(){vfunc_called(this, "_ZN7ee777623barEv");}
+ee77762 ::~ee77762(){ note_dtor("ee77762", this);} // tgen
+ee77762 ::ee77762(){ note_ctor("ee77762", this);} // tgen
+
+static void Test_ee77762()
+{
+ extern Class_Descriptor cd_ee77762;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77762, buf);
+ ee77762 *dp, &lv = *(dp=new (buf) ee77762());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77762)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77762)");
+ check_base_class_offset(lv, (aa2*)(bb62*), ABISELECT(48,24), "ee77762");
+ check_base_class_offset(lv, (bb62*)(cc762*), ABISELECT(48,24), "ee77762");
+ check_base_class_offset(lv, (cc762*)(dd7762*), ABISELECT(32,16), "ee77762");
+ check_base_class_offset(lv, (dd7762*), ABISELECT(16,8), "ee77762");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77762.e");
+ test_class_info(&lv, &cd_ee77762);
+ dp->~ee77762();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77762(Test_ee77762, "ee77762", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77762C1Ev();
+extern void _ZN7ee77762D1Ev();
+Name_Map name_map_ee77762[] = {
+ NSPAIR(_ZN7ee77762C1Ev),
+ NSPAIR(_ZN7ee77762D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_cc762;
+extern VTBL_ENTRY _ZTI5cc762[];
+extern VTBL_ENTRY _ZTV5cc762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc762[];
+extern Class_Descriptor cd_dd7762;
+extern VTBL_ENTRY _ZTI6dd7762[];
+extern VTBL_ENTRY _ZTV6dd7762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7762[];
+static Base_Class bases_ee77762[] = {
+ // 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_bb62, 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_cc762, 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_dd7762, 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 _ZTI7ee77762[];
+extern void _ZN7ee777623fooEv();
+extern void _ZN7ee777623barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777623barEv,_ZTv0_n20_N7ee777623barEv)();
+extern void ABISELECT(_ZThn16_N7ee777623barEv,_ZThn8_N7ee777623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777623fooEv,_ZTv0_n24_N7ee777623fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777623fooEv,_ZThn8_N7ee777623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777623fooEv,_ZTv0_n16_N7ee777623fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777623fooEv,_ZThn16_N7ee777623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777623barEv,_ZTv0_n20_N7ee777623barEv)();
+extern void ABISELECT(_ZThn32_N7ee777623barEv,_ZThn16_N7ee777623barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777623fooEv,_ZTv0_n12_N7ee777623fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777623fooEv,_ZThn24_N7ee777623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777623barEv,_ZTv0_n16_N7ee777623barEv)();
+extern void ABISELECT(_ZThn48_N7ee777623barEv,_ZThn24_N7ee777623barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77762[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77762[0]),
+ (VTBL_ENTRY)&_ZN7ee777623fooEv,
+ (VTBL_ENTRY)&_ZN7ee777623barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777623barEv,_ZTv0_n20_N7ee777623barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777623fooEv,_ZTv0_n24_N7ee777623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777623fooEv,_ZTv0_n16_N7ee777623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777623barEv,_ZTv0_n20_N7ee777623barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777623fooEv,_ZTv0_n12_N7ee777623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777623barEv,_ZTv0_n16_N7ee777623barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77762[];
+extern void _ZN6dd77623barEv();
+extern void _ZN6dd77623fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7762__7ee77762[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&_ZN6dd77623barEv,
+ (VTBL_ENTRY)&_ZN6dd77623fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv)();
+extern void ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc762__6dd7762__7ee77762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv)();
+extern void ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__6dd7762__7ee77762[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv),
+};
+extern void _ZN5cc7623fooEv();
+extern void _ZN5cc7623barEv();
+static VTBL_ENTRY _tg__ZTV5cc762__7ee77762[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&_ZN5cc7623fooEv,
+ (VTBL_ENTRY)&_ZN5cc7623barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv)();
+extern void ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__5cc762__7ee77762[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc762[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv),
+};
+static VTT_ENTRY vtt_ee77762[] = {
+ {&(_ZTV7ee77762[5]), 5,28},
+ {&(_ZTV7ee77762[13]), 13,28},
+ {&(_ZTV7ee77762[20]), 20,28},
+ {&(_ZTV7ee77762[26]), 26,28},
+ {&(_tg__ZTV6dd7762__7ee77762[4]), 4,6},
+ {&(_tg__ZTV5cc762__6dd7762__7ee77762[5]), 5,7},
+ {&(_tg__ZTV4bb62__6dd7762__7ee77762[4]), 4,6},
+ {&(_tg__ZTV5cc762__7ee77762[3]), 3,5},
+ {&(_tg__ZTV4bb62__5cc762__7ee77762[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77762[];
+extern VTBL_ENTRY _ZTV7ee77762[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77762[];
+static VTBL_ENTRY alt_thunk_names1395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7623barEv,_ZTv0_n16_N5cc7623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623barEv,_ZThn8_N5cc7623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7623fooEv,_ZTv0_n12_N5cc7623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7623fooEv,_ZThn8_N5cc7623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623barEv,_ZTv0_n16_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623barEv,_ZThn16_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77623fooEv,_ZTv0_n12_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77623fooEv,_ZThn16_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77623barEv,_ZTv0_n20_N6dd77623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623barEv,_ZThn8_N6dd77623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77623fooEv,_ZTv0_n16_N6dd77623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77623fooEv,_ZThn8_N6dd77623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777623barEv,_ZTv0_n16_N7ee777623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777623barEv,_ZThn24_N7ee777623barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777623fooEv,_ZTv0_n12_N7ee777623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777623fooEv,_ZThn24_N7ee777623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777623fooEv,_ZTv0_n16_N7ee777623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777623fooEv,_ZThn16_N7ee777623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777623fooEv,_ZTv0_n24_N7ee777623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777623fooEv,_ZThn8_N7ee777623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777623barEv,_ZTv0_n20_N7ee777623barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777623barEv,_ZThn16_N7ee777623barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777623barEv,_ZThn8_N7ee777623barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77762 = { "ee77762", // class name
+ bases_ee77762, 4,
+ &(vtc_ee77762[0]), // expected_vtbl_contents
+ &(vtt_ee77762[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77762),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77762),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77762),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1395,
+};
+#endif // __cplusplus
+
+//============================================================================
+